Sdílet prostřednictvím


Interpret kódu služby agenta Azure AI

Interpret kódu umožňuje agentům zapisovat a spouštět kód Pythonu v prostředí spouštění v izolovaném prostoru (sandbox). S povoleným interpretem kódu může váš agent iterativním způsobem spouštět kód a řešit náročnější problémy s kódem, matematikou a analýzou dat. Když váš agent napíše kód, který se nepodaří spustit, může iterovat tento kód úpravou a spuštěním jiného kódu, dokud se spuštění kódu nezdaří.

Důležité

Interpret kódu má další poplatky nad rámec poplatků založených na tokenech za využití Azure OpenAI. Pokud váš agent volá interpret kódu současně ve dvou různých vláknech, vytvoří se dvě relace interpretu kódu. Každá relace je ve výchozím nastavení aktivní po dobu jedné hodiny.

Podporované modely

Stránka modelů obsahuje nejaktuálnější informace o oblastech nebo modelech, kde se podporují agenti a interpret kódu.

Doporučujeme používat agenty s nejnovějšími modely, abyste mohli využívat nové funkce, větší kontextová okna a aktuální trénovací data.

Podpora využití

Podpora Azure AI Foundry Python SDK C# SDK JavaScript SDK REST API Základní nastavení agenta Nastavení standardního agenta
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Použití nástroje interpreta kódu s agentem

Nástroj interpreta kódu můžete do agenta přidat programově pomocí příkladů kódu uvedených v horní části tohoto článku nebo portálu Azure AI Foundry. Pokud chcete použít portál:

  1. Na obrazovce Vytvořit a ladit pro vašeho agenta se posuňte dolů do podokna Nastavení vpravo. Pak vyberte Přidat.

    Snímek obrazovky znázorňující dostupné kategorie nástrojů na portálu Azure AI Foundry

  2. Vyberte interpret kódu a podle pokynů přidejte nástroj.

    Snímek obrazovky s dostupnými nástroji akcí na portálu Azure AI Foundry

  3. Volitelně můžete nahrát soubory pro svého agenta, abyste mohli číst a interpretovat informace z datových sad, generovat kód a vytvářet grafy a grafy pomocí vašich dat.

    Snímek obrazovky zobrazující stránku pro nahrání interpreta kódu

Vytvoření klienta projektu

Pokud chcete použít interpret kódu, nejprve přidejte import příkazy uvedené v příkladu a vytvořte klienta projektu, který bude obsahovat připojovací řetězec do projektu AI a použije se k ověřování volání rozhraní API.

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

Odeslání souboru

Nahrajte soubor pomocí upload_and_poll() funkce, zadejte cestu k souboru a FilePurpose.AGENTS účel.

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

Vytvoření agenta pomocí nástroje interpretu kódu

code_interpreter Definujte nástroj s CodeInterpreterTool() ID souboru, který jste nahráli, a vložte ho. Potom vytvořte agenta s nastaveným toolscode_interpreter.definitions a tool_resources nastaveným na 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,
)

Vytvoření vlákna, zprávy a získání odpovědi agenta

Dále vytvořte vlákno a create_thread() připojte k němu zprávu pomocí create_message() , která aktivuje nástroj interpretu kódu. Potom vytvořte a spusťte spuštění s create_and_process_run(). Po dokončení spuštění můžete odstranit soubor z agenta delete_file() a uvolnit tak místo v agentu. Nakonec vytiskněte zprávy z agenta.

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

Stažení souborů vygenerovaných interpretem kódu

Soubory vygenerované interpretem kódu najdete v odpovědích na zprávu agenta. Soubor obrázku vygenerovaný interpretem kódu můžete stáhnout iterací prostřednictvím odpovědi image_contents a voláním save_file() s názvem a ID souboru.

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

Podporované typy souborů

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

Viz také