使用 LangChain 应用程序进行跟踪#
Prompt flow 提供的跟踪功能基于 OpenTelemetry 构建,可让您全面观察您的 LLM 应用程序。并且 OpenTelemetry 生态系统中已经有一套丰富的 OpenTelemetry 检测包可用。
在此示例中,我们将演示如何使用 Traceloop 提供的 opentelemetry-instrumentation-langchain 包来检测 LangChain 应用程序。
学习目标 - 完成本教程后,您应该能够
跟踪
LangChain
应用程序并在 prompt flow 中可视化您的应用程序的跟踪。
要求#
要运行此笔记本示例,请安装所需的依赖项
%%capture --no-stderr
%pip install -r ./requirements.txt
使用 promptflow 开始跟踪 LangChain#
使用 promptflow.start_trace
开始跟踪,单击打印的 URL 以查看跟踪 UI。
from promptflow.tracing import start_trace
# start a trace session, and print a url for user to check trace
start_trace()
默认情况下,opentelemetry-instrumentation-langchain
检测将提示、完成和嵌入记录到 span 属性中。这使您可以清楚地了解您的 LLM 应用程序是如何工作的,并且可以轻松地调试和评估输出的质量。
# enable langchain instrumentation
from opentelemetry.instrumentation.langchain import LangchainInstrumentor
instrumentor = LangchainInstrumentor()
if not instrumentor.is_instrumented_by_opentelemetry:
instrumentor.instrument()
运行一个简单的 LangChain#
以下是一个针对 AzureOpenAI 资源的示例。请使用 .env
文件配置您的 API_KEY
,请参阅 ../.env.example
。
import os
from langchain.chat_models import AzureChatOpenAI
from langchain.prompts.chat import ChatPromptTemplate
from langchain.chains import LLMChain
from dotenv import load_dotenv
if "AZURE_OPENAI_API_KEY" not in os.environ:
# load environment variables from .env file
load_dotenv()
llm = AzureChatOpenAI(
deployment_name=os.environ["CHAT_DEPLOYMENT_NAME"],
openai_api_key=os.environ["AZURE_OPENAI_API_KEY"],
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
openai_api_type="azure",
openai_api_version="2023-07-01-preview",
temperature=0,
)
prompt = ChatPromptTemplate.from_messages(
[
("system", "You are world class technical documentation writer."),
("user", "{input}"),
]
)
chain = LLMChain(llm=llm, prompt=prompt, output_key="metrics")
chain({"input": "What is ChatGPT?"})
您现在应该能够在 promptflow UI 中看到链的跟踪。在带有 start_trace
的单元格中检查跟踪 UI URL。
后续步骤#
至此,您已成功使用 prompt flow 跟踪应用程序中的 LLM 调用。
您可以查看更多示例
追踪您的流:使用 promptflow @trace 以结构化方式追踪您的应用程序,并使用批处理运行对其进行评估。