Azure KI Agent Service Code Interpreter
Code Interpreter ermöglicht es den Agents, Python-Code in einer Sandkastenausführungsumgebung zu schreiben und auszuführen. Mit aktiviertem Code Interpreter kann Ihr Agent Code iterativ ausführen, um anspruchsvolleren Code, Mathe und Datenanalyseprobleme zu bearbeiten. Wenn Ihr Agent Code schreibt, der nicht ausgeführt werden kann, kann er diesen Code durchlaufen, indem er unterschiedlichen Code ändert und ausführt, bis die Codeausführung erfolgreich ist.
Wichtig
Für den Codeinterpreter fallen zusätzliche Gebühren an, die über die tokenbasierten Gebühren für die Azure OpenAI-Nutzung hinausgehen. Wenn Ihr Agent Code Interpreter gleichzeitig in zwei verschiedenen Threads aufruft, werden zwei Code Interpreter-Sitzungen erstellt. Jede Sitzung ist standardmäßig für eine Stunde aktiv.
Unterstützte Modelle
Die Modellseite enthält die aktuellsten Informationen zu Regionen/Modellen, in denen Agents und Code Interpreter unterstützt werden.
Es wird empfohlen, Agents mit den neuesten Modellen zu verwenden, um die neuen Features sowie die größeren Kontextfenster und aktuellere Trainingsdaten zu nutzen.
Definieren von Importen und Erstellen eines Projektclients
Um Code Interpreter zu verwenden, fügen Sie zuerst die im Beispiel gezeigten import
-Anweisungen hinzu, und erstellen Sie einen Projektclient, der eine Verbindungszeichenfolge zu Ihrem KI-Projekt enthält und zum Authentifizieren von API-Aufrufen verwendet wird.
import os
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import CodeInterpreterTool
from azure.ai.projects.models import FilePurpose
from azure.identity import DefaultAzureCredential
from pathlib import Path
# Create an Azure AI Client from a connection string, copied from your Azure AI Foundry project.
# At the moment, it should be in the format "<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<HubName>"
# Customer needs to login to Azure subscription via Azure CLI and set the environment variables
project_client = AIProjectClient.from_connection_string(
credential=DefaultAzureCredential(), conn_str=os.environ["PROJECT_CONNECTION_STRING"]
)
Hochladen einer Datei
Laden Sie die Datei mithilfe der upload_and_poll()
-Funktion hoch, und geben Sie den Dateipfad und den FilePurpose.AGENTS
-Zweck an.
# Upload a file and add it to the client
file = project_client.agents.upload_file_and_poll(
file_path="nifty_500_quarterly_results.csv", purpose=FilePurpose.AGENTS
)
print(f"Uploaded file, file ID: {file.id}")
Erstellen eines Agents mit dem Code-Interpreter-Tool
Definieren Sie das code_interpreter
-Tool mit CodeInterpreterTool()
, und schließen Sie die Datei-ID der Datei ein, die Sie hochgeladen haben. Erstellen Sie anschließend den Agent mit tools
festgelegt auf code_interpreter.definitions
und tool_resources
festgelegt auf code_interpreter.resources
.
code_interpreter = CodeInterpreterTool(file_ids=[file.id])
# create agent with code interpreter tool and tools_resources
agent = project_client.agents.create_agent(
model="gpt-4o-mini",
name="my-agent",
instructions="You are helpful agent",
tools=code_interpreter.definitions,
tool_resources=code_interpreter.resources,
)
Erstellen eines Threads, einer Nachricht und Abrufen der Agent-Antwort
Erstellen Sie als Nächstes einen Thread mit create_thread()
, und fügen Sie eine Nachricht mithilfe von create_message()
an, die das Code-Interpreter-Tool auslöst. Erstellen und führen Sie anschließend eine Ausführung mit create_and_process_run()
aus. Sobald die Ausführung abgeschlossen ist, können Sie die Datei aus dem Agent mit delete_file()
löschen, um Speicherplatz im Agent freizugeben. Drucken Sie schließlich die Nachrichten vom Agent.
# create a thread
thread = project_client.agents.create_thread()
print(f"Created thread, thread ID: {thread.id}")
# create a message
message = project_client.agents.create_message(
thread_id=thread.id,
role="user",
content="Could you please create bar chart in the TRANSPORTATION sector for the operating profit from the uploaded csv file and provide file to me?",
)
print(f"Created message, message ID: {message.id}")
# create and execute a run
run = project_client.agents.create_and_process_run(thread_id=thread.id, assistant_id=agent.id)
print(f"Run finished with status: {run.status}")
if run.status == "failed":
# Check if you got "Rate limit is exceeded.", then you want to get more quota
print(f"Run failed: {run.last_error}")
# delete the original file from the agent to free up space (note: this does not delete your version of the file)
project_client.agents.delete_file(file.id)
print("Deleted file")
# print the messages from the agent
messages = project_client.agents.list_messages(thread_id=thread.id)
print(f"Messages: {messages}")
# get the most recent message from the assistant
last_msg = messages.get_last_text_message_by_sender("assistant")
if last_msg:
print(f"Last Message: {last_msg.text.value}")
Herunterladen von Dateien, die vom Code Interpreter generiert wurden
Dateien, die von Code Interpreter generiert werden, finden Sie in den Antworten des Agents auf Nachrichten. Sie können die Bilddatei herunterladen, die von Code Interpreter generiert wurde, indem Sie die image_contents
der Antwort durchlaufen und save_file()
mit einem Namen und der Datei-ID aufrufen.
# save the newly created file
for image_content in messages.image_contents:
print(f"Image File ID: {image_content.image_file.file_id}")
file_name = f"{image_content.image_file.file_id}_image_file.png"
project_client.agents.save_file(file_id=image_content.image_file.file_id, file_name=file_name)
print(f"Saved image file to: {Path.cwd() / file_name}")
Unterstützte Dateitypen
Dateiformat | MIME-Typ |
---|---|
.c |
text/x-c |
.cpp |
text/x-c++ |
.csv |
application/csv |
.docx |
application/vnd.openxmlformats-officedocument.wordprocessingml.document |
.html |
text/html |
.java |
text/x-java |
.json |
application/json |
.md |
text/markdown |
.pdf |
application/pdf |
.php |
text/x-php |
.pptx |
application/vnd.openxmlformats-officedocument.presentationml.presentation |
.py |
text/x-python |
.py |
text/x-script.python |
.rb |
text/x-ruby |
.tex |
text/x-tex |
.txt |
text/plain |
.css |
text/css |
.jpeg |
image/jpeg |
.jpg |
image/jpeg |
.js |
text/javascript |
.gif |
image/gif |
.png |
image/png |
.tar |
application/x-tar |
.ts |
application/typescript |
.xlsx |
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
.xml |
application/xml oder text/xml |
.zip |
application/zip |
Siehe auch
- Erfahren Sie mehr über Agents.