概述
您使用 LangChain 构建的许多应用程序将包含多个步骤,并多次调用 LLM 调用。随着这些应用程序变得越来越复杂,能够检查链或代理内部究竟发生了什么变得至关重要。最好的方法是使用 LangSmith。
LangSmith 是一个用于构建生产级 LLM 应用程序的平台。它允许您密切监控和评估您的应用程序,以便您可以快速而自信地交付。无需使用 LangChain,即单独使用 LangSmith 可以独立运行!
第一步:安装 LangSmith
!pip install -U langsmith
!pip install -U langchain langchain-openai
第二步:创建一个 API key
创建 API 密钥,前往 “LangSmith - 设置页面“。然后单击“创建 API 密钥”。
第三步:设置环境
import os
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com"
os.environ["LANGCHAIN_API_KEY"] = "<langsmith-api-key>" # 这里的 your-api-key 就是上一步获得的 api key
os.environ["LANGCHAIN_PROJECT"] = "project_name" # 这里输入在langsmith中创建的项目的名字
# The below examples use the OpenAI API, though it's not necessary in general
os.environ["OPENAI_API_KEY"] = "<openai-api-key>" # 这里需要 openai 的 api key
第四步:记录第一个跟踪
我们提供多种方式来跟踪记录到 LangSmith。下面,我们将重点介绍如何使用可跟踪。有关更多信息,请参阅 Annotate code for tracing。
下面这段代码的作用是使用 OpenAI 的 API 来处理用户输入,并使用 Langsmith 库对 LLM (大语言模型) 调用进行自动跟踪。具体解释如下:
import openai
from langsmith.wrappers import wrap_openai
from langsmith import traceable
这些导入语句引入了 OpenAI库 和 Langsmith库 中的相关模块。openai库 用于与 OpenAI 的 API 进行交互,而 langsmith 库则用于跟踪函数调用。
# Auto-trace LLM calls in-context
client = wrap_openai(openai.Client())
这一行代码使用 wrap_openai 函数将 OpenAI 的客户端进行包装,以便对 LLM 调用进行自动跟踪。wrap_openai 函数会返回一个经过包装的 OpenAI 客户端对象 client。
@traceable # Auto-trace this function
def pipeline(user_input: str):
result = client.chat.completions.create(
messages=[{"role": "user", "content": user_input}],
model="gpt-3.5-turbo"
)
return result.choices[0].message.content
这个部分定义了一个名为 pipeline 的函数,并使用 @traceable 装饰器对其进行标记,以便对该函数的调用进行自动跟踪。该函数接受一个字符串参数 user_input,然后通过 client.chat.completions.create 方法向 OpenAI 的 GPT-3.5-turbo 模型发送一个对话请求。请求的内容是一个包含用户输入的消息列表。函数最后返回模型生成的第一个回复消息的内容。
pipeline("Hello, world!")
# Out: Hello there! How can I assist you today?
这一行调用了pipeline函数,传入了字符串 “Hello, world!” 作为用户输入,并输出模型生成的回复:“Hello there! How can I assist you today?”
最后,如果运行成功,则可以在 LangSmith 中查看到对应的项目中的状态发生了更新。
总结
总结起来,这段代码的主要功能是:
- 初始化并包装OpenAI客户端以支持自动跟踪。
- 定义并自动跟踪一个函数 pipeline,该函数与 OpenAI 的 GPT-3.5-turbo 模型进行交互,处理用户输入并返回模型生成的回复。