Tracing mit AutoGen#
AutoGen bietet konversationsfähige Agenten, die von LLM, Tools oder Menschen angetrieben werden und zur gemeinsamen Erledigung von Aufgaben durch automatisierten Chat verwendet werden können. Dieses Framework ermöglicht Tool-Nutzung und menschliche Teilnahme durch Multi-Agenten-Konversation. Dokumentation zu dieser Funktion finden Sie hier.
Lernziele - Nach Abschluss dieses Tutorials sollten Sie in der Lage sein:
LLM-Aufrufe (OpenAI) nachverfolgen und den Trace Ihrer Anwendung visualisieren.
Anforderungen#
AutoGen erfordert Python>=3.8. Um dieses Notebook-Beispiel auszuführen, installieren Sie bitte die erforderlichen Abhängigkeiten
%%capture --no-stderr
%pip install -r ./requirements.txt
API-Endpunkt festlegen#
Sie können die Konfigurationsdatei mit dem Namen OAI_CONFIG_LIST.json aus der Beispieldatei erstellen: OAI_CONFIG_LIST.json.example.
Der folgende Code verwendet die Funktion config_list_from_json, um eine Liste von Konfigurationen aus einer Umgebungsvariable oder einer JSON-Datei zu laden.
import autogen
# please ensure you have a json config file
env_or_file = "OAI_CONFIG_LIST.json"
# filters the configs by models (you can filter by other keys as well). Only the gpt-4 models are kept in the list based on the filter condition.
# gpt4
# config_list = autogen.config_list_from_json(
# env_or_file,
# filter_dict={
# "model": ["gpt-4", "gpt-4-0314", "gpt4", "gpt-4-32k", "gpt-4-32k-0314", "gpt-4-32k-v0314"],
# },
# )
# gpt35
config_list = autogen.config_list_from_json(
env_or_file,
filter_dict={
"model": {
"gpt-35-turbo",
"gpt-3.5-turbo",
"gpt-3.5-turbo-16k",
"gpt-3.5-turbo-0301",
"chatgpt-35-turbo-0301",
"gpt-35-turbo-v0301",
},
},
)
Agenten konstruieren#
import os
os.environ["AUTOGEN_USE_DOCKER"] = "False"
llm_config = {"config_list": config_list, "cache_seed": 42}
user_proxy = autogen.UserProxyAgent(
name="User_proxy",
system_message="A human admin.",
code_execution_config={
"last_n_messages": 2,
"work_dir": "groupchat",
"use_docker": False,
}, # Please set use_docker=True if docker is available to run the generated code. Using docker is safer than running the generated code directly.
human_input_mode="TERMINATE",
)
coder = autogen.AssistantAgent(
name="Coder",
llm_config=llm_config,
)
pm = autogen.AssistantAgent(
name="Product_manager",
system_message="Creative in software product ideas.",
llm_config=llm_config,
)
groupchat = autogen.GroupChat(agents=[user_proxy, coder, pm], messages=[], max_round=12)
manager = autogen.GroupChatManager(groupchat=groupchat, llm_config=llm_config)
Chat mit Prompt Flow Trace starten#
from promptflow.tracing import start_trace
# start a trace session, and print a url for user to check trace
# traces will be collected into below collection name
start_trace(collection="autogen-groupchat")
Öffnen Sie die URL, die Sie in der Ausgabe von start_trace erhalten, wenn Sie den folgenden Code ausführen. Sie werden dann neue Traces in der Benutzeroberfläche sehen.
from opentelemetry import trace
import json
tracer = trace.get_tracer("my_tracer")
# Create a root span
with tracer.start_as_current_span("autogen") as span:
message = "Find a latest paper about gpt-4 on arxiv and find its potential applications in software."
user_proxy.initiate_chat(
manager,
message=message,
clear_history=True,
)
span.set_attribute("custom", "custom attribute value")
# recommend to store inputs and outputs as events
span.add_event(
"promptflow.function.inputs", {"payload": json.dumps(dict(message=message))}
)
span.add_event(
"promptflow.function.output", {"payload": json.dumps(user_proxy.last_message())}
)
# type exit to terminate the chat
Nächste Schritte#
Damit haben Sie LLM-Aufrufe in Ihrer Anwendung mit Prompt Flow erfolgreich nachverfolgt.
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.

