4.给 RAG 系统装上“黑匣子“:LangGraph + Langfuse 全链路可观测性实战

LangFuse部署与实践 LangFuse的原理主要是基于可观察性和分析技术来监控和优化低延迟消息(LLM)应用。它提供了一套完整的解决方案,通过收集、处理和分析LLM应用在运行过程中产生的各种数据,来生成实时的、深入的、可操作的见解。通过提供实时的、深入的见解和可视化的跟踪功能,LangFuse使得识别和解决应用性能问题变得更加简单和高效。总的来说,LangFuse的原理是通过综合运用可观察性和分析技术,来提供对LLM应用的全面监控和优化能力。这使得开发者和运维团队能够更加高效地管理和维护他们的应用,从而提升用户体验和业务效益。 阅读详情

前言

本文是 RAG 实战系列的第四篇。前几篇我们用 LangGraph 搭建了完整的 RAG 查询图(query变换 → 检索 → 文档评估 → 重排序 → 生成 → 幻觉检测),但有一个问题始终困扰着我:每次 LLM 调用到底花了多少时间?输入输出是什么?token 消耗了多少? 这些信息在日志里根本看不清楚。

这一篇,我们接入 Langfuse —— 一个开源的 LLM 可观测性平台,给 RAG 系统装上"黑匣子"。

一、为什么需要 Langfuse

RAG 系统不是一次 LLM 调用,而是一条多步骤的处理链。以我们的 LangGraph 查询图为例,一次查询最多涉及 4 次 LLM 调用:

用户提问
  → [LLM] Query 变换(rewrite/hyde)
  → 检索(vector/bm25/hybrid)
  → [LLM] 文档相关性评估
  → Reranker 重排序
  → [LLM] 生成回答
  → [LLM] 幻觉检测
  → 输出 / 重试 / 兜底

没有可观测性工具,你只能看到最终的回答,中间发生了什么完全是黑盒。接入 Langfuse 后,你可以在面板上看到:

  • 完整调用链路:每个节点的执行顺序和耗时
  • 每次 LLM 调用的输入/输出:prompt 长什么样,模型回了什么
  • Token 消耗和延迟:哪个节点最慢,哪个最费 token
  • 重试轨迹:幻觉检测失败后重试了几次,最终走了兜底还是通过

二、整体设计

2.1 核心思路:一次查询 = 一条 Trace

Langfuse 的核心概念是 Trace(链路)。我的设计是:

  • 每次 RAG 查询创建一个 CallbackHandler
  • 这个 handler 通过 LangGraph 的 State 在所有节点间传递
  • 每个涉及 LLM 调用的节点都使用同一个 handler
  • Langfuse 自动将同一个 handler 的所有 LLM 调用归到同一条 Trace 下
class RAGState(TypedDict):
    question: str
    search_query: str
    # ... 其他字段 ...
    # Langfuse 追踪:handler 在图中传递,所有节点共享同一条 trace
    langfuse_handler: Any

2.2 架构图

优快云 支持 Mermaid 渲染,直接粘贴以下代码块即可显示流程图。如果你的编辑器不支持,可以把代码粘贴到 mermaid.live 在线预览并导出图片。

Langfuse localhost:3000

LangGraph RAG 状态图

FastAPI 入口

有相关文档

无相关文档

通过

失败 < 2次

失败 ≥ 2次

handler 注入 State

自动上报

自动上报

自动上报

POST /query
(question, session_id, user_id)

创建 Langfuse CallbackHandler

🔗 transform_query
callbacks → LLM

retrieve
(vector / bm25 / hybrid)

🔗 grade_documents
callbacks → LLM

rerank
(Reranker API)

🔗 generate
callbacks → LLM

🔗 check_hallucination
callbacks → LLM

fallback 兜底回答

输出结果

Trace: rag-query

Generation: grade_documents

Generation: generate

Generation: check_hallucination

Generation: generate retry

2.3 设计原则

  1. 零侵入:Langfuse 未配置时,所有功能正常工作,callbacks 为空列表
  2. 共享 handler:同一次查询的所有 LLM 调用归到同一条 Trace
  3. 环境变量驱动:Langfuse v4 SDK 通过环境变量读取配置,不在代码中硬编码密钥

三、Langfuse 部署(Docker Compose 一键启动)

Langfuse v3 的架构比 v2 复杂不少,需要 6 个服务:

服务作用端口
langfuse-web前端 + API3000
langfuse-worker后台任务处理3030
langfuse-db (PostgreSQL)元数据存储5433
langfuse-clickhouseTrace 数据分析8123/9000
langfuse-minioS3 兼容对象存储9090
langfuse-redis队列 & 缓存6380

我写了一个独立的 docker-compose-Langfuse.yml,一键启动:

cd rag-infra
docker compose -f docker-compose-Langfuse.yml up -d

等待约 30 秒,所有容器启动完成后,访问 http://localhost:3000 进入 Langfuse。

踩坑记录:Langfuse v3 要求 ENCRYPTION_KEY 必须是 64 位 hex 字符串(256 bits),用 openssl rand -hex 32 生成。如果用全零占位会报错启动不了。

3.1 注册管理员账号

首次访问会看到登录页面,点击底部的 Sign up 链接进入注册页面,填写邮箱和密码完成注册。第一个注册的账号自动成为管理员。

3.2 创建项目

登录后,点击 New Project,输入项目名称(比如 RAG-demo),点击创建。

3.3 获取 API Key

进入项目后,点击左侧 Settings → API Keys,可以看到系统自动生成的 Public Key 和 Secret Key。

把这两个 Key 填入项目根目录的 .env 文件:

LANGFUSE_SECRET_KEY=sk-lf-xxx   # 替换为你的 Secret Key
LANGFUSE_PUBLIC_KEY=pk-lf-xxx   # 替换为你的 Public Key
LANGFUSE_HOST=http://localhost:3000

四、代码实现

4.1 配置层(config.py)

# Langfuse 配置
LANGFUSE_SECRET_KEY = os.getenv("LANGFUSE_SECRET_KEY", "")
LANGFUSE_PUBLIC_KEY = os.getenv("LANGFUSE_PUBLIC_KEY", "")
LANGFUSE_HOST = os.getenv("LANGFUSE_HOST", "http://localhost:3000")

4.2 LLM 层(llm.py)—— 兼容 Langfuse v2/v4

Langfuse v4 SDK 有一个重大变化:CallbackHandler 不再通过构造函数接受 secret_key、host 等参数,改为读取环境变量。import 路径也从 langfuse.callback 变成了 langfuse.langchain。

# 兼容 v4 和 v2 的 import
try:
    from langfuse.langchain import CallbackHandler as LangfuseCallbackHandler
except (ImportError, ModuleNotFoundError):
    try:
        from langfuse.callback import CallbackHandler as LangfuseCallbackHandler
    except (ImportError, ModuleNotFoundError):
        LangfuseCallbackHandler = None

# Langfuse v4 通过环境变量读取配置
if LANGFUSE_SECRET_KEY:
    os.environ.setdefault("LANGFUSE_SECRET_KEY", LANGFUSE_SECRET_KEY)
if LANGFUSE_PUBLIC_KEY:
    os.environ.setdefault("LANGFUSE_PUBLIC_KEY", LANGFUSE_PUBLIC_KEY)
if LANGFUSE_HOST:
    os.environ.setdefault("LANGFUSE_HOST", LANGFUSE_HOST)

get_langfuse_handler() 函数负责创建 handler,失败时返回 None 不影响主流程:

def get_langfuse_handler(**kwargs):
    if not _is_langfuse_enabled():
        return None
    try:
        return LangfuseCallbackHandler()
    except Exception as e:
        logger.warning(f"Langfuse handler 创建失败: {e}")
        return None

4.3 RAG 图(rag_graph.py)—— 全节点接入

关键改动:在 RAGState 中新增 langfuse_handler 字段,通过辅助函数 _get_callbacks() 提取:

def _get_callbacks(state: RAGState) -> list:
    handler = state.get("langfuse_handler")
    return [handler] if handler else []

每个涉及 LLM 调用的节点都通过 config={"callbacks": callbacks} 传入:

def grade_documents(state: RAGState) -> dict:
    llm = get_llm()
    callbacks = _get_callbacks(state)  # 从 state 中取 handler
    
    chain = grade_prompt | llm | StrOutputParser()
    raw_result = chain.invoke(
        {"question": question, "documents": doc_list},
        config={"callbacks": callbacks},  # 传入 Langfuse callback
    )

入口函数 query_rag() 负责创建 handler 并注入到 initial_state:

def query_rag(question, ..., session_id=None, user_id=None):
    langfuse_handler = get_langfuse_handler(...)
    
    initial_state = {
        "question": question,
        # ... 其他字段 ...
        "langfuse_handler": langfuse_handler,  # 注入 handler
    }
    
    final_state = rag_graph.invoke(initial_state)

4.4 API 层(main.py)—— 支持 session_id / user_id

class QueryRequest(BaseModel):
    question: str
    retrieval_mode: Literal["vector", "bm25", "hybrid"] = "hybrid"
    query_transform: Literal["none", "rewrite", "hyde"] = "none"
    use_reranker: bool = False
    top_k: int = 5
    session_id: str | None = None   # 新增:会话追踪
    user_id: str | None = None      # 新增:用户标识

健康检查也加入了 Langfuse 状态:

{
  "status": "ok",
  "version": "0.7.0-langfuse",
  "services": {
    "llm": "ok",
    "embedding": "ok",
    "chroma": "ok (12 docs)",
    "langfuse": "ok (enabled)"
  }
}

五、验证测试

5.1 启动服务

# 1. 启动 Langfuse
cd rag-infra && docker compose -f docker-compose-Langfuse.yml up -d

# 2. 配置 .env
LANGFUSE_SECRET_KEY=sk-lf-xxx   # 从 Langfuse 面板获取
LANGFUSE_PUBLIC_KEY=pk-lf-xxx
LANGFUSE_HOST=http://localhost:3000

# 3. 启动 FastAPI
uvicorn app.main:app --reload

5.2 发送测试请求

curl -X POST http://localhost:8000/query \
  -H "Content-Type: application/json" \
  -d '{
    "question": "什么是RAG?",
    "session_id": "test-session-001",
    "user_id": "niannian"
  }'

返回结果中的 graph_steps 字段记录了完整的执行轨迹:

{
  "graph_steps": [
    "query_passthrough",
    "retrieve(hybrid) → 4 docs",
    "grade_documents(batch) → 4/4 relevant",
    "rerank_skipped",
    "generate",
    "hallucination_check → fail",
    "generate",
    "hallucination_check → fail",
    "fallback"
  ]
}

5.3 在 Langfuse 面板中查看

打开 http://localhost:3000,点击左侧 Tracing 菜单,可以看到:

Trace 列表视图:每条 trace 对应一次 RAG 查询,显示总耗时、状态、输入输出。

Trace 详情视图(点击某条 trace 进入):

这是最有价值的视图。你能看到一条 trace 下的所有 LLM 调用,以树状结构展开:

rag-query (Trace)
  ├── ChatOpenAI (Generation) — grade_documents
  │     Input: "你是一个文档相关性评估专家..."
  │     Output: "yes\nyes\nyes\nyes"
  │     Tokens: 1,234 input / 8 output
  │     Latency: 1.2s
  │
  ├── ChatOpenAI (Generation) — generate
  │     Input: "你是一个知识库问答助手..."
  │     Output: "RAG是检索增强生成技术..."
  │     Tokens: 2,048 input / 256 output
  │     Latency: 3.5s
  │
  ├── ChatOpenAI (Generation) — check_hallucination
  │     Input: "你是一个事实核查专家..."
  │     Output: "no"
  │     Latency: 0.8s
  │
  ├── ChatOpenAI (Generation) — generate (retry)
  │     Latency: 3.2s
  │
  └── ChatOpenAI (Generation) — check_hallucination (retry)
        Output: "no"
        → 触发 fallback

六、从 Langfuse 面板中我们能看到什么

在这里插入图片描述
在这里插入图片描述

6.1 性能瓶颈一目了然

通过每个 Generation 的 Latency,可以立刻定位最慢的环节。通常 generate 节点最慢(因为输出最长),而 grade_documents 和 check_hallucination 相对较快(只输出 yes/no)。

6.2 Token 消耗分布

Langfuse 自动统计每次调用的 input/output token 数。你会发现 grade_documents 的 input token 很高(因为要把所有检索到的文档都塞进 prompt),这是优化的重点方向。

6.3 幻觉检测的重试链路

这是最有意思的部分。Langfuse 记录了每次 LLM 调用的完整 Input 和 Output,你可以逐个展开查看:

  • 第一次生成的回答是什么
  • 幻觉检测的 Input(prompt + 参考文档 + 回答)和 Output(yes/no)
  • 重试后生成了什么不同的回答
  • 最终是通过了检测还是走了 fallback

Langfuse 本身不会告诉你"为什么"幻觉检测判了 no,但它把所有原材料都摆在你面前,让你自己对比分析。

实际案例:在我的测试中,问"什么是RAG?",generate 节点生成了一段基于文档的回答(提到了减少幻觉、知识可热更新、回答可溯源等),但 check_hallucination 节点却输出了 no。
在这里插入图片描述

如果没有 Langfuse,你只会看到最终的兜底回答"抱歉,知识库中没有找到相关信息",完全不知道哪里出了问题。但现在,点开 Langfuse 中这个 Generation 的详情,你能看到:

  1. Input 中的 documents 字段:完整的参考文档内容 —— RAG 是检索增强生成技术……减少幻觉……知识可热更新……
  2. Input 中的 answer 字段:生成的回答 —— RAG 的主要优势包括:减少幻觉、知识可热更新、回答可溯源……
  3. Output:no

你自己肉眼对比一下 documents 和 answer —— 回答的内容明明就来自参考文档,没有编造,为什么模型判了 no?

到这一步,Langfuse 的作用已经完成了:它帮你把问题精确定位到了 check_hallucination 这一个节点。你知道了"不是检索的问题,不是生成的问题,就是幻觉检测这一步判错了"。

接下来需要回到代码里看这个节点的 prompt(Langfuse 的 Input 记录的是传给 LLM 的变量值,prompt 模板本身需要看代码):

# app/rag_graph.py - check_hallucination 节点
"请判断以下回答是否完全基于提供的参考文档,没有编造信息。"

为什么内容吻合却判了 no?可能的原因有几个:

  • prompt 措辞过严:“完全基于"要求太高,回答对原文做了概括和重组,模型可能认为不算"完全基于”
  • 模型判断能力不足:不同模型对"有依据"的理解不同,换一个模型可能就通过了
  • 回答中存在微妙的推理延伸:比如"知识可热更新"是对"只需更新知识库,无需重新训练模型"的概括,模型可能认为这算"改写"

具体是哪个原因,可以通过修改 prompt 措辞、换模型、或者简化回答来逐一排除。但关键是 —— 没有 Langfuse,你连排查方向都没有。

总结这次排查路径:

  1. Langfuse 面板:看到 check_hallucination 输出 no → 定位到出问题的节点
  2. Langfuse 面板:对比 Input 中的 documents 和 answer → 确认内容是吻合的,不是生成的问题
  3. 回到代码:看 prompt 模板 → 发现"完全基于"措辞过严

没有 Langfuse,第 1 步和第 2 步都做不到,你只能对着一个兜底回答干瞪眼。

6.4 变量内容审查

每个 Generation 的 Input 都记录了传给 LLM 的完整变量值。你可以检查:

  • 检索到的文档内容是否真的和问题相关
  • 上下文是否太长导致模型"迷路"
  • 不同节点之间传递的数据是否符合预期

6.5 会话维度分析

通过 session_id,可以在 Langfuse 的 Sessions 视图中查看同一用户的多轮对话,分析用户的提问模式和系统的回答质量。

七、踩坑总结

问题原因解决方案
Langfuse 启动报 500ENCRYPTION_KEY 不是 64 位 hex用 openssl rand -hex 32 生成
langfuse 显示 disabledSDK 未安装pip install langfuse
import 报错 No module named 'langfuse.callback'Langfuse v4 改了 import 路径改用 from langfuse.langchain import CallbackHandler
Handler 创建成功但 Trace 页面无数据v4 不再通过构造函数传 secret_key改用环境变量 os.environ.setdefault(...)
docker compose restart 不生效restart 不重新读取 yml用 down + up 代替

八、完整代码

本文代码已开源:github.com/daixueyun3377/RAG-demo,dev-Langfuse 分支。

git clone https://github.com/daixueyun3377/RAG-demo.git
git checkout dev-Langfuse
langfuse使用零星记录 langfuse使用过程的一些坑点,做一些记录,便于日后回顾查找,也为同样在学习的小伙伴们异同一些可能的帮助。期望在学习使用一段时间之后,可以系统性的写一些更有价值的内容出来。一些说明:这里不是主要记录如何使用langfuse,主要是针对过程出现的问题记录,这样产生的作用与价值更大。一、langfuse是什么?LangFuse 是一个开源的大型语言模型(LLM)工程平台,主要用于帮助团队更快地构建生产级的 LLM 应用程序。 阅读详情

相关推荐

工业级AI系统开发:Dify局限性与LangGraph+LangFuse+RAGFlow解决方案

在构建工业级AI系统时,开发者常面临扩展性、监控和性能等核心挑战。传统低代码平台如Dify虽然适合快速原型开发,但在处理复杂业务逻辑和高并发场景时存在明显局限。现代AI工程化实践强调工作流引擎(如基于DAG的LangGraph)、全链路可观测性(通过LangFuse实现)和知识增强(采用RAGFlow的多模态检索)等技术组合。这些方案不仅能提升系统可靠性至99.99% SLA,还能实现百毫秒级响应和动态流程编排。特别在金融、电商等领域,结合弹性扩缩容和细粒度监控的架构,可使检索准确率提升20%以上,同时将故

weixin_31715171的博客 281

教你本地化部署与使用一款免费的LLM应用工程化平台

平台已经就绪,现在需要让应用与Langfuse集成起来,以能够跟踪、评估与分析我们的应用。使用Langfuse的SDK/API,Langfuse能够与现有的任意应用做集成,但如果你的应用是基于LangChain、LlamaIndex这样的开发框架,那么使用起来会更加方便,这里先介绍与LangChain应用集成。随着LLM应用的不断成熟,特别是在B端企业场景中的逐渐落地,其不再停留在原型与验证阶段,将面临着更高的工程化要求,无论是输出的稳定性、性能、以及成本控制等,都需要实现真正的“生产就绪”;

m0_63171455的博客 1万+

工业级AI系统开发:Dify的局限与LangGraph等专业工具的优势

在AI系统开发领域,模块化工具如Dify虽然降低了入门门槛,但在工业级应用中面临扩展性、监控调试和分布式协同等核心挑战。现代AI系统需要处理高并发、复杂业务逻辑和多模块协同,这要求基础架构具备强大的扩展性和灵活性。LangGraph通过基于有向无环图(DAG)的编排引擎,支持动态流程调整和并行执行,显著提升系统性能。结合LangFuse的全链路追踪和RAGFlow的知识增强解决方案,开发者可以构建出既高效又可靠的工业级AI应用。这些工具在电商推荐、金融风控等场景中已得到验证,能够有效应对每秒5000+请求的

weixin_26968079的博客 215

LLM大模型应用监控---LangFuse使用指南

LangFuse是一个开源的大语言模型工程平台,提供调用跟踪、评估、指标和提示词管理等功能。它支持多框架接入,包括Java Spring AI,并可通过SDK快速集成。核心功能包括:跟踪LLM调用和会话、可视化的智能体工作流程、用户反馈收集、提示词版本管理、数据集实验和性能监控。相比于同类产品,LangFuse的优势在于完全开源,支持本地部署和云端使用。通过时间轴视图、仪表盘和评估工具,开发者可以调试延迟问题、优化提示词并持续改进模型性能。

leonhongliang806的博客 9190

Langfuse使用说明看这一篇就够了:从入门到深度的LLM应用运维指南

Langfuse是一款开源LLM工程平台,专为解决大模型应用开发中的痛点而设计。文章从快速入门到核心功能深度解析,全面介绍了如何使用Langfuse提升LLM应用开发效率。 主要内容包括: 快速上手:提供两种部署方式(云服务和本地Docker),5分钟即可完成基础监控配置 核心功能: 观测与追踪(Tracing):支持LangChain、OpenAI等主流框架的无缝集成,可记录完整调用链路 提示词管理:实现Prompt与代码解耦,支持版本控制和动态更新 优势特点:开源免费、兼容性强、私有化部署、UI友好,覆

FYL_HH的博客 2404

Langfuse-开源AI观测分析平台,结合dify工作流

Langfuse是一个开源的LLM(大型语言模型)工程平台,由Langfuse公司开发。它旨在帮助用户更好地管理、调试和优化他们的LLM应用程序。Langfuse的核心产品包括追踪、可观察性、评估、提示管理和API/SDK等。作为一款开源项目,Langfuse能够解决数据安全和隐私问题,用户可以选择自行托管。它适用于希望对LLM应用程序进行迭代和改进的企业和个人开发者。

shykevin的博客 1404

大模型 Agent 是不是就是各种 Prompt 的堆叠?

作者:北方的郎链接:https://www.zhihu.com/question/1894891236617332066/answer/1897665876154622135来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。现在常见的Agent,包括Manus大部分都是LLM+Wrapper、Function Call,MCPetc,不过未来未必。下面是现在最流行的 5 种Agent 设计模式。让我们在下面了解它们!

jennycisp的博客 988

【AI大模型应用开发】【LangFuse: LangSmith平替,生产级AI应用维护平台】0. 快速上手 - 基本功能全面介绍与实践(附代码)

全面介绍了Langfuse平台的基本功能:从程序运行监控、跟踪,到数据集的创建、建立自己的评估标准,再到实际运行一个测试,得到测试结果。简单的使用,相信大家能对langfuse平台有一个全面的认识。

同学小张的博客 8285

大模型维护平台LangFuse简介

LangFuse 为大型语言模型的维护和管理提供了一站式解决方案,帮助用户在生产环境中高效、安全地部署和优化语言模型。通过其强大的功能和灵活的架构,LangFuse 能够满足不同应用场景的需求,为用户带来更加便捷和可靠的模型管理体验。实时监控:提供实时监控工具,监控模型的运行情况,包括响应时间、错误率、资源使用等指标。自动更新:支持自动化的模型更新和部署流程,确保模型和依赖项始终保持最新。实时数据监控:监控输入数据的变化,确保模型能够适应新的数据分布和趋势。自然语言处理(NLP)应用。

金木AI 2190

【人工智能】Langfuse,一个开源的 LLM(大型语言模型)工程平台,专注于为基于 LLM 的应用提供可观测性、测试、监控和提示管理功能。

Langfuse 是一个开源的 LLM(大型语言模型)工程平台,专注于为基于 LLM 的应用提供可观测性、测试、监控和提示管理功能。Langfuse 通过开源灵活性和生产级功能,成为 LLM 应用全生命周期管理的重要工具,尤其适合需要精细化监控与协作优化的团队。

奶爸的编程之路,也就一周冷个三天 2459

中科蓝讯Downloader配置实战:从软硬开关机到ANC降噪的完整指南

本文提供了中科蓝讯Downloader工具的详细配置实战指南。内容涵盖从基础的软硬开关机选择与配置,到核心的EQ音效调试、触摸按键与入耳检测优化,以及高阶的ANC降噪与电源管理设置。旨在帮助开发者快速掌握关键配置项,高效完成蓝牙耳机产品的功能调试与优化。

s4t5u6v7的博客 508

Langfuse-GitHub 上星标最多的开源 LLMOps 工具

Langfuse是一款开源LLM工程平台,专注于AI应用全生命周期管理,包括开发、监控、评估和调试。其核心优势在于轻量化部署(几分钟内完成自托管)和实战可靠性,已在大量实际场景中验证。平台提供三大核心功能:可观测性(Trace/Session/User三级追踪)、提示词管理(版本控制/动态拉取)和自动化评估(LLM-as-a-Referee评分)。技术栈采用NextJS14前端+PostgreSQL/ClickHouse双数据库架构,支持JS/Python/Java等多语言SDK。

wend的博客 2704

Qoder CN 完全指南:阿里云AI智能体的全景拆解

阿里云旗下AI编程助手"通义灵码"于2026年5月20日升级为QoderCN,转型为覆盖软件开发与办公场景的AI智能体产品矩阵。该平台具备四大核心能力:代码补全、智能问答、文件编辑和智能体模式,支持GLM、DeepSeek等多模型切换。特色功能包括Quest2.0任务委派、专家团协作和记忆感知,满足金融、政务等行业的合规需求。产品形态涵盖IDE插件、CLI工具、办公助手和数字员工,形成"全家桶"式解决方案。相比Cursor等海外产品,QoderCN更注重全链路覆盖,个

几十年资深高级架构师,技术专家的技术笔记。专注C、Java、Python、微服务、云原生、AI工程化及高并发系统分布式架构实战,分享源码剖析、性能调优与架构治理经验。 938

5个Lang:2-LangFuse基本使用

本文介绍了开源AI应用维护平台LangFuse的使用方法,该平台可作为LangSmith的替代方案,支持与LangChain集成或直接对接OpenAI API。主要内容包括:1) 环境准备步骤,包括注册账号、创建项目、生成密钥和安装依赖包;2) 两种集成方式(OpenAI API和LangChain)的具体实现方法;3) 通过代码示例演示如何设置环境变量、创建跟踪记录并与OpenAI API交互。该平台可帮助开发者有效监控和管理AI应用运行状态。

2429

基于STM32与毫米波雷达的非接触式睡眠监测系统

物联网和嵌入式系统技术正在推动医疗健康设备的智能化发展。通过传感器网络采集生理信号,结合信号处理算法实现健康监测已成为主流技术方案。毫米波雷达凭借其非接触检测特性,在呼吸、心率等生命体征监测中展现出独特优势。STM32系列MCU凭借丰富外设和低功耗特性,成为医疗级嵌入式设备的首选平台。本系统整合60GHz毫米波雷达、红外测温与无线传输模块,构建了完整的睡眠质量评估解决方案,其硬件架构设计、信号处理算法和低功耗优化策略对可穿戴医疗设备开发具有参考价值。

weixin_36369848的博客 613

基于Pixi.js的Live2D看板娘离线加载实战指南

本文详细介绍了基于Pixi.js实现Live2D看板娘离线加载的完整方案,涵盖环境搭建、模型加载、交互功能实现及常见问题解决。通过Pixi.js的硬件加速优势,开发者可在Web和Electron项目中无缝集成离线运行的Live2D模型,提升用户体验并避免网络依赖问题。

weixin_29001423的博客 343

七、LLM维护平台LangFuse实战

项目地址:https://github.com/langfuse。官方网站:https://langfuse.com/通过docker compose up -d安装。将解析数据上传至创建的数据集my_dataset。实际调用,判断是否为新问题,需要回答。构建 PromptTemplate。创建自己的项目获得API Key。初始化大纲和问题列表。加载prompt测试。

挑大梁的专栏 6459

【WebApi + Sqlserver】 使用C#编写WebApi并打开sqlserver数据库进行访问,代码适用于简单练习,真实开发需自行完善

【WebApi + Sqlserver】 使用C#编写WebApi并打开sqlserver数据库进行访问,代码适用于简单练习,真实开发需自行完善

2302_78387246的博客 3592

Langfuse:开源LLM应用调试神器,手把手带你部署并实现langfuse跟踪监控本地LLM系统

Langfuse是一个开源的LLM工程平台,旨在帮助团队协作调试、分析和优化LLM应用程序。它支持任何模型和框架,提供嵌套跟踪功能,能有效定位问题根源。平台特点包括完全开源、生产级优化、多语言SDK支持、主流框架集成以及多模态数据跟踪能力。 部署流程包括:1)通过Docker本地部署服务;2)创建项目获取API密钥;3)配置环境变量;4)安装依赖包;5)使用@observe装饰器自动跟踪应用。测试结果显示平台能成功捕获LLM应用的输入输出数据,为开发调试提供可视化支持。整个方案实现了对本地LLM应用的性能监

m0_69966537的博客 5333

学习十八-UJA107xA简介及移植-0

目录 1、UJA107xA系列手册 1、介绍 2.2.1 BAT引脚功能 2.4.1 V1、V2稳压器 2.5.1 CAN收发器 3.1 Startup Operation 3.2 Normal Operation 5.1 Attached Files 5.2 NXP UJA107xA Example Software 6、main() 1、UJA107xA系列手册 看完手册关于使用还是没有头绪的,只是想SPI发送指令将V2驱动起来,进而驱动起来CAN收...

m0_56344230的博客 1707

RAG系统中Embedding模型选型实战

本文详细介绍了RAG系统中Embedding模型选型实战,希望能对学习RAG的同学们有所帮助。 文章目录 1. 前言 2. 思路解析 3. 测评数据集构建 3.1 步骤一 3.2 步骤二 3.3 数据示例 3.4 总结 4. 实战代码 4.1 本地模型 4.2 使用第三方的Embedding模型API

herosunly的博客 17万+

Langfuse:开源LLM工程平台全解析

Langfuse是一个开源的LLM可观测性平台,提供五大核心功能:追踪执行链路、提示词管理、输出评估、监控分析和数据集管理。支持本地Docker部署或云服务,通过简单SDK集成即可实现LLM应用的全面监控和优化。典型应用场景包括优化聊天机器人回答准确率、监控问答系统性能等,帮助开发者快速定位问题并持续改进LLM应用表现。

ZhangJiqun&191cm&85kg 1675

2026年高教社杯数学建模国赛A题解题思路:从物理方程推导到MATLAB高效求解的全流程实战指南

□所有代码能够从头运行到尾,不报错(清除workspace重新跑一遍)□论文中的每个图号、表号、公式编号与正文引用一致□附录中附上核心代码(注意:不是全部代码,而是关键求解器和后处理部分)□支撑材料压缩包包含完整代码、数据文件、README说明□摘要字数严格控制在1000字以内,突出创新点和核心结果□。

YOLO 110

LLM大模型应用监控---LangFuse本地部署指南

本文详细介绍了LangFuse大模型应用监控工具的本地化部署方法。部署支持三种方式:1) Docker Compose本地/虚拟机部署,适合小规模项目;2) Kubernetes Helm Chart部署,适合生产环境;3) 多云平台部署。核心架构包含Web应用、Worker进程及Postgres、Clickhouse等存储组件,并可选配LLM API。重点讲解了Docker Compose本地部署步骤,包括版本要求检查、docker-compose.yml文件配置以及关键环境变量的设置。部署需注意修改默认

leonhongliang806的博客 5994

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

LangFuse对比LangSmith:LLM工程平台全面分析-精简版

📌如果您重视开源自由和部署灵活性:选择LangFuse,尤其是当您需要自托管解决方案或有预算限制时。📌如果您需要框架无关的统一平台:选择LangSmith,特别是当您希望从原型快速过渡到生产时。📌如果您的项目涉及多种LLM框架:LangFuse的广泛集成可能更适合您的需求。📌如果您优先考虑企业级服务和支持:LangSmith的托管服务可能更符合您的期望。从0到1!想入门大模型(LLM)却不知道从哪开始?

Libra1313的博客 604

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

AI Agent——可观测性链路集成&评测体系搭建(Langfuse)

本文介绍了开源LLM工程化平台Langfuse作为LangSmith的替代方案,特别适合内网部署项目。Langfuse支持自托管部署,提供全生命周期管理功能,包括链路追踪、提示词版本管理、数据集评测等核心能力。通过Docker Compose等工具可快速搭建测试环境,生产环境建议结合K8s部署。该平台能与LangChain/LangGraph无缝集成,实现多智能体系统的无侵入式监控,是注重数据隐私和定制化需求项目的理想选择。文章详细说明了Langfuse的各项功能特点及落地实施建议。

weixin_42681866的博客 1467

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

上一篇: 3.给 RAG 装上“质检员“:幻觉检测、自动重试、智能切分|基于 LangGraph + DeepSeek 的实战笔记
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值