Delen via


Code-interpreter voor Azure AI Agent-service

Met code-interpreter kunnen de agents Python-code schrijven en uitvoeren in een omgeving met sandboxuitvoering. Als Code Interpreter is ingeschakeld, kan uw agent code iteratief uitvoeren om uitdagendere problemen met code, wiskunde en gegevensanalyse op te lossen. Wanneer uw agent code schrijft die niet kan worden uitgevoerd, kan deze code worden herhaald door verschillende code te wijzigen en uit te voeren totdat de uitvoering van de code is geslaagd.

Belangrijk

Code interpreter heeft extra kosten naast de kosten op basis van tokens voor Azure OpenAI-gebruik. Als uw agent code-interpreter tegelijk aanroept in twee verschillende threads, worden er twee code-interpretersessies gemaakt. Elke sessie is standaard één uur actief.

Ondersteunde modellen

De pagina modellen bevat de meest recente informatie over regio's/modellen waarin agents en code-interpreters worden ondersteund.

We raden u aan agents te gebruiken met de nieuwste modellen om te profiteren van de nieuwe functies, grotere contextvensters en meer actuele trainingsgegevens.

Gebruiksondersteuning

Ondersteuning voor Azure AI Foundry Python SDK C# SDK JavaScript SDK REST-API Basisagent instellen Standaardagent instellen
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Het hulpprogramma code-interpreter gebruiken met een agent

U kunt het hulpprogramma voor code-interpreters programmatisch toevoegen aan een agent met behulp van de codevoorbeelden bovenaan dit artikel of de Azure AI Foundry-portal. Als u de portal wilt gebruiken:

  1. Schuif in het scherm Maken en foutopsporing voor uw agent omlaag in het deelvenster Setup aan de rechterkant om actie te ondernemen. Selecteer vervolgens Toevoegen.

    Een schermopname van de beschikbare hulpprogrammacategorieën in de Azure AI Foundry-portal.

  2. Selecteer Code-interpreter en volg de aanwijzingen om het hulpprogramma toe te voegen.

    Een schermopname van de beschikbare actiehulpprogramma's in de Azure AI Foundry-portal.

  3. U kunt eventueel bestanden voor uw agent uploaden om informatie uit gegevenssets te lezen en te interpreteren, code te genereren en grafieken en grafieken te maken met behulp van uw gegevens.

    Een schermopname van de uploadpagina van de code-interpreter.

Een projectclient maken

Als u code-interpreter wilt gebruiken, voegt u eerst de import instructies toe die in het voorbeeld worden weergegeven en maakt u een projectclient, die een verbindingsreeks bevat voor uw AI-project en wordt gebruikt om API-aanroepen te verifiëren.

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

Een bestand uploaden

Upload het bestand met behulp van de upload_and_poll() functie, waarbij u het bestandspad en het FilePurpose.AGENTS doel opgeeft.

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

Een agent maken met het code-interpreter-hulpprogramma

Definieer het code_interpreter hulpprogramma met CodeInterpreterTool() en neem de bestands-id op van het bestand dat u hebt geüpload. Maak daarna de agent met tools de set op code_interpreter.definitions en tool_resources stel deze in op 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,
)

Een thread, bericht maken en het antwoord van de agent ophalen

Vervolgens maakt u een thread met create_thread() en voegt u er een bericht aan toe met behulp daarvan create_message() wordt het hulpprogramma voor de code-interpreter geactiveerd. Maak en voer daarna een uitvoering uit met create_and_process_run(). Zodra de uitvoering is voltooid, kunt u het bestand uit de agent verwijderen om delete_file() ruimte vrij te maken in de agent. Druk ten slotte de berichten van de agent af.

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

Bestanden downloaden die zijn gegenereerd door code-interpreter

Bestanden die door code-interpreter worden gegenereerd, zijn te vinden in de antwoorden van de agentberichten. U kunt het afbeeldingsbestand downloaden dat is gegenereerd door de code-interpreter, door het antwoord image_contents te doorlopen en aan te roepen save_file() met een naam en de bestands-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}") 

Ondersteunde bestandstypen

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

Zie ook