Dela via


Kodtolkare för Azure AI-agenttjänst

Med kodtolkaren kan agenterna skriva och köra Python-kod i en miljö med begränsat läge. När kodtolkaren är aktiverad kan agenten köra kod iterativt för att lösa mer utmanande problem med kod-, matematik- och dataanalys. När din agent skriver kod som inte kan köras kan den iterera på den här koden genom att ändra och köra annan kod tills kodkörningen lyckas.

Viktigt!

Kodtolken har ytterligare avgifter utöver de tokenbaserade avgifterna för Azure OpenAI-användning. Om din agent anropar kodtolkaren samtidigt i två olika trådar skapas två kodtolkarsessioner. Varje session är aktiv som standard i en timme.

Modeller som stöds

Sidan modeller innehåller den senaste informationen om regioner/modeller där agenter och kodtolkare stöds.

Vi rekommenderar att du använder agenter med de senaste modellerna för att dra nytta av de nya funktionerna, större kontextfönster och mer aktuella träningsdata.

Användningsstöd

Stöd för Azure AI Foundry Python SDK C#-SDK JavaScript SDK REST-API Grundläggande agentkonfiguration Standardagentkonfiguration
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Använda kodtolkarverktyget med en agent

Du kan lägga till kodtolkarverktyget i en agent programatiskt med hjälp av kodexemplen som visas överst i den här artikeln eller Azure AI Foundry-portalen. Om du vill använda portalen:

  1. På skärmen Skapa och felsöka för din agent rullar du nedåt i fönstret Installation till höger för att utföra åtgärden. Välj Lägg till.

    En skärmbild som visar tillgängliga verktygskategorier i Azure AI Foundry-portalen.

  2. Välj Kodtolk och följ anvisningarna för att lägga till verktyget.

    En skärmbild som visar tillgängliga åtgärdsverktyg i Azure AI Foundry-portalen.

  3. Du kan också ladda upp filer för din agent för att läsa och tolka information från datauppsättningar, generera kod och skapa diagram och diagram med dina data.

    En skärmbild som visar uppladdningssidan för kodtolkaren.

Skapa en projektklient

Om du vill använda kodtolk lägger du först till de import instruktioner som visas i exemplet och skapar en projektklient som innehåller en anslutningssträng i AI-projektet och kommer att användas för att autentisera API-anrop.

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"]
)

Ladda upp en fil

Ladda upp filen med hjälp av upload_and_poll() funktionen och ange filsökvägen och syftet FilePurpose.AGENTS .

# 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}")

Skapa en agent med kodtolkarverktyget

code_interpreter Definiera verktyget med CodeInterpreterTool() och inkludera fil-ID:t för den fil som du laddade upp. Skapa sedan agenten med tools inställt på code_interpreter.definitions och tool_resources inställt på 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,
)

Skapa en tråd, ett meddelande och hämta agentsvaret

Skapa sedan en tråd med create_thread() och bifoga ett meddelande till den med hjälp av create_message() som utlöser kodtolkarverktyget. Skapa och kör sedan en körning med create_and_process_run(). När körningen är klar kan du ta bort filen från agenten med delete_file() för att frigöra utrymme i agenten. Skriv slutligen ut meddelandena från agenten.

# 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}")

Ladda ned filer som genereras av kodtolkare

Filer som genereras av kodtolkaren finns i agentmeddelandesvaren. Du kan ladda ned en bildfil som genereras av kodtolkaren genom att iterera genom svarets image_contents och anropa save_file() med ett namn och fil-ID.

# 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}") 

Filtyper som stöds

File format 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 eller text/xml
.zip application/zip

Se även