LangSmith 的示例,展示如何通过SDK 调试和监控一个简单的 LLM 应用

以下是使用 LangSmith 的 Python 代码示例,展示如何通过其 SDK 调试和监控一个简单的 LLM 应用。此示例模拟一个电商客服机器人,根据用户输入分类问题类型并生成响应。

环境准备
首先安装必要的库:

bash
pip install langchain langsmith
示例代码:电商客服机器人调试
python
from langchain import PromptTemplate, LLMChain
from langchain.chat_models import ChatOpenAI
from langchain_community.utilities import GoogleSearchAPIWrapper
from langsmith import Client, run
from langsmith.scenarios import run_scenario

初始化 LangSmith 客户端

client = Client(
    base_url="https://api.smith.langchain.com",  # LangSmith 服务地址
    api_key="YOUR_API_KEY",  # 替换为你的 API Key
)

定义分类提示模板

classification_template = “”"
根据用户问题,分类到以下类别之一:

  • 退款
  • 物流
  • 商品推荐
用户问题:{question}
分类结果:
"""
classification_prompt = PromptTemplate(template=classification_template, input_variables=["question"])

定义响应生成提示模板

response_template = """
根据用户问题和分类结果,生成回答:
分类:{category}
用户问题:{question}
回答:
"""
response_prompt = PromptTemplate(template=response_template, input_variables=["category", "question"])

初始化 LLM 和工具

llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)
search = GoogleSearchAPIWrapper()

创建分类链

classification_chain = LLMChain(llm=llm, prompt=classification_prompt, output_key="category")

创建响应生成链

response_chain = LLMChain(llm=llm, prompt=response_prompt, output_key="response")

定义完整流程(分类 → 响应生成)

def customer_service_agent(question: str) -> str:
    # 分类问题
    category_result = classification_chain.run(question=question)
# 生成响应
response = response_chain.run(category=category_result, question=question)

# 模拟外部工具调用(例如搜索)
if category_result == "商品推荐":
    search_results = search.run(f"推荐 {question.split()[-1]} 相关商品")
    response += f"\n相关商品:{search_results}"

return response

使用 LangSmith 调试单个调用

@run(client=client, name="电商客服机器人调试")
def debug_customer_service(question: str):
    return customer_service_agent(question)

测试问题列表

test_questions = [
    "如何申请退款?",
    "我的包裹什么时候到?",
    "推荐适合夏天的护肤品",
]
 

运行调试并上传到 LangSmith

for question in test_questions:
    debug_customer_service(question)

在 LangSmith 中查看结果:

1. 访问 https://smith.langchain.com

2. 找到名为 “电商客服机器人调试” 的运行记录

3. 查看每个问题的输入、输出和中间步骤(如分类结果)

关键代码解释
LangSmith 客户端初始化
通过 Client 连接 LangSmith 服务,需提供 API Key(在 LangSmith 控制台获取)。
分类链与响应链
classification_chain:将用户问题分类为“退款”“物流”或“商品推荐”。
response_chain:根据分类结果生成回答。
外部工具集成
模拟调用 GoogleSearchAPIWrapper 在“商品推荐”场景中搜索相关商品。
调试与监控
使用 @run 装饰器将函数调用记录到 LangSmith,自动追踪输入、输出和中间结果。
在 LangSmith 控制台可查看每个问题的完整调用链和性能数据。
在 LangSmith 中的操作
查看运行记录
登录 LangSmith 控制台,找到名为“电商客服机器人调试”的运行。
点击单次运行,查看:
输入:用户问题(如“如何申请退款?”)。
输出:生成的回答。
中间步骤:分类结果(如“退款”)。
分析性能问题
如果发现分类错误,可在 LangSmith 中直接修改提示模板并重新运行测试。
通过“性能分析”标签页查看延迟和令牌消耗。
扩展场景
A/B 测试:修改提示模板后,用不同版本对比准确率和延迟。
错误处理:在 LangSmith 中标记错误响应(如分类错误),并添加自动重试逻辑。
通过此示例,你可以快速上手 LangSmith 的核心功能,并将其应用到更复杂的 LLM 应用中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小赖同学啊

感谢上帝的投喂

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值