【Agent】使用 LangSmith 跟踪 LLM 应用

使用 LangChain 构建的许多应用程序,可能会包含多个步骤和多次的 LLM 调用。随着这些应用程序变得越来越复杂,作为开发者,我们能够检查链或代理内部到底发生了什么变得至关重要。最好的方法是使用 LangSmith。

LangSmith 与框架无关,它可以与 langchain 和 langgraph 一起使用,也可以不使用。LangSmith 是一个用于帮助我们构建生产级 LLM 应用程序的平台,它将密切监控和评估我们的应用。

LangSmith 平台地址:https://smith.langchain.com/ (新用户需要注册)

要想让 LangSmith 跟踪 LLM 应用,第一步申请 LangSmith API Key,点击 Settings,就会跳转到"API Keys"设置页面,若没有跳转,可以在左侧 tab 栏中找到进入。

创建完成后,保存好你的 API Key。

接下来配置两个环境变量:

env 复制代码
LANGSMITH_TRACING="true"
LANGSMITH_API_KEY="你的 LangSmith API Key"

配置完成后,执行示例代码:

python 复制代码
from langchain_openai import ChatOpenAI
from pydantic import BaseModel, Field
from langchain_core.tools import tool
from langchain_core.messages import HumanMessage

# 定义大模型
model = ChatOpenAI(model="gpt-4o-mini")

# 结构输出对象
class SearchResult(BaseModel):
    """结构化搜索结果。"""
    query: str = Field(description="搜索查询")
    findings: str = Field(description="调查结果摘要")

@tool
def web_search(query: str) -> str:
    """在网上搜索信息。
    Args:
        query: 搜索查询
    """
    return "西安今天多云转小雨,气温18-23度,东南风2级,空气质量良好"

# 手动将工具结果加入消息列表
model_with_search = model.bind_tools([web_search])
messages = [
    HumanMessage("搜索当前最新的西安的天气")
]
ai_msg = model_with_search.invoke(messages)
messages.append(ai_msg)

for tool_call in ai_msg.tool_calls:
    tool_msg = web_search.invoke(tool_call)
    messages.append(tool_msg)

structured_search_model = model_with_search.with_structured_output(SearchResult)
result = structured_search_model.invoke(messages)
print(result)

查看 LangSmith 平台,这将在 LangSmith 的默认跟踪项目中生成调用的跟踪。点击最新一次的调用追踪:

跟踪会以瀑布流形式展示调用的完整步骤,以及每个步骤的详细信息和耗时。让我们能够检查内部到底发生了什么!

解释

  • RunnableSequence :可运行序列,就是我们之前讲过的链,即我们将 model_with_search.invoke() 的结果(构造成 ToolMessage),当作入参传递给 structured_search_model.invoke()。
    • 说明:本次调用是RunnableSequence。但不是每次都展示RunnableSequence,根据实际情况而定。
  • ChatOpenAI:实际处理的第一步内容,调用聊天模型,生成结果。
  • RunnableLambda:实际处理的第二步内容,表示将 python 可调用对象转换为 Runnable,其实就是将 AI 生成的结果转换成为结构化对象。

可以看到我们在使用 LangSmith 时没有代码介入,只需要配置下环境,就可以直接监控我们的应用。

相关推荐
BD_Marathon2 小时前
【RAG开发】RAG介绍
langchain
似水流年QC7 小时前
LangChain 入门与实战
服务器·数据库·langchain
染指11108 小时前
151.Agent-LangGraph-Send发送(Map-Reduce模式)
人工智能·python·langchain·状态模式·agents
BD_Marathon18 小时前
OpenAI库基础使用
langchain
BD_Marathon1 天前
LangChain的简介
langchain
ikun_文1 天前
LangChain-常用场景
langchain·agent
刘 大 望1 天前
Agent 的规划与执行范式:Plan-Execute-Replan 与 ReAct
java·python·ai·chatgpt·langchain·ai编程
昭昭日月明1 天前
使用 Ragas 量化 RAG
python·langchain·ai编程
云水初1 天前
【agent篇】RAG Agent避坑指南(附高级RAG Agent汇总)
开发语言·笔记·python·学习·langchain·agent·rag