Tracing mit LangChain-Apps#
Die von Prompt Flow bereitgestellte Tracing-Funktion baut auf OpenTelemetry auf, was Ihnen vollständige Beobachtbarkeit über Ihre LLM-Anwendungen ermöglicht. Und es gibt bereits eine reichhaltige Sammlung von OpenTelemetry Instrumentierungspaketen im OpenTelemetry-Ökosystem.
In diesem Beispiel zeigen wir, wie das von Traceloop bereitgestellte Paket opentelemetry-instrumentation-langchain zur Instrumentierung von LangChain-Apps verwendet wird.
Lernziele - Nach Abschluss dieses Tutorials sollten Sie in der Lage sein:
Trace
LangChain-Anwendungen und visualisieren Sie den Trace Ihrer Anwendung in Prompt Flow.
Anforderungen#
Um dieses Notebook-Beispiel auszuführen, installieren Sie bitte die erforderlichen Abhängigkeiten
%%capture --no-stderr
%pip install -r ./requirements.txt
LangChain mit Promptflow tracen#
Starten Sie das Tracing mit promptflow.start_trace. Klicken Sie auf die ausgegebene URL, um die Trace-Benutzeroberfläche anzuzeigen.
from promptflow.tracing import start_trace
# start a trace session, and print a url for user to check trace
start_trace()
Standardmäßig protokolliert die opentelemetry-instrumentation-langchain-Instrumentierung Prompts, Vervollständigungen und Embeddings in Span-Attributen. Dies gibt Ihnen klare Einblicke in die Funktionsweise Ihrer LLM-Anwendung und erleichtert das Debugging und die Bewertung der Ausgabequalität.
# enable langchain instrumentation
from opentelemetry.instrumentation.langchain import LangchainInstrumentor
instrumentor = LangchainInstrumentor()
if not instrumentor.is_instrumented_by_opentelemetry:
instrumentor.instrument()
Eine einfache LangChain ausführen#
Im Folgenden finden Sie ein Beispiel, das auf eine AzureOpenAI-Ressource abzielt. Bitte konfigurieren Sie Ihren API_KEY mit einer .env-Datei. Weitere Informationen finden Sie unter ../.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?"})
Sie sollten die Traces der Kette jetzt in der Prompt Flow-Benutzeroberfläche sehen können. Überprüfen Sie die Zelle mit start_trace auf der Trace-Benutzeroberflächen-URL.
Nächste Schritte#
Bis dahin haben Sie LLM-Aufrufe in Ihrer App erfolgreich mit Prompt Flow getraced.
Sie können sich weitere Beispiele ansehen
Verfolgen Sie Ihren Flow: Verwenden Sie Promptflow @trace, um Ihre App strukturell zu verfolgen und die Auswertung mit einem Batch-Lauf durchzuführen.

