Delen via


Code-interpreter voor de foundry-agentservice

Opmerking

Dit document verwijst naar de klassieke versie van de agents-API.

🔍 Bekijk de nieuwe code-interpreterdocumentatie.

Met code-interpreter kunnen de agents Python-code schrijven en uitvoeren in een omgeving met sandboxuitvoering. Als Code Interpreter is ingeschakeld, kan uw agent iteratief code uitvoeren om uitdagendere problemen met code, wiskunde en gegevensanalyse op te lossen of grafieken en grafieken te maken. 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 gedurende 1 uur actief met een time-out voor inactiviteit van 30 minuten.

Vereiste voorwaarden

Codevoorbeelden

Een agent maken met code-interpreter

code_interpreter = CodeInterpreterTool()

# An agent is created with the Code Interpreter capabilities:
agent = project_client.agents.create_agent(
    model=os.environ["MODEL_DEPLOYMENT_NAME"],
    name="my-agent",
    instructions="You are helpful agent",
    tools=code_interpreter.definitions,
    tool_resources=code_interpreter.resources,
)

Een bestand bijvoegen voor code-interpreter dat moet worden gebruikt

Als u een bestand wilt gebruiken met code-interpreter, kunt u de upload_and_poll functie gebruiken.

file = agents_client.files.upload_and_poll(file_path=asset_file_path, purpose=FilePurpose.AGENTS)
print(f"Uploaded file, file ID: {file.id}")

code_interpreter = CodeInterpreterTool(file_ids=[file.id])

Een agent maken met code-interpreter

var projectEndpoint = System.Environment.GetEnvironmentVariable("ProjectEndpoint");
var modelDeploymentName = System.Environment.GetEnvironmentVariable("ModelDeploymentName");

PersistentAgentsClient client = new(projectEndpoint, new DefaultAzureCredential());

PersistentAgent agent = client.Administration.CreateAgent(
    model: modelDeploymentName,
    name: "My Friendly Test Agent",
    instructions: "You politely help with math questions. Use the code interpreter tool when asked to visualize numbers.",
    tools: [new CodeInterpreterToolDefinition()]
);

Een bestand bijvoegen voor code-interpreter dat moet worden gebruikt

Als u een bestand wilt gebruiken met code-interpreter, kunt u het toevoegen aan uw bericht.

PersistentAgentFileInfo uploadedAgentFile = client.Files.UploadFile(
    filePath: "sample_file_for_upload.txt",
    purpose: PersistentAgentFilePurpose.Agents);
var fileId = uploadedAgentFile.Id;

var attachment = new MessageAttachment(
    fileId: fileId,
    tools: tools
);

// attach the file to the message
PersistentThreadMessage message = client.Messages.CreateMessage(
    threadId: thread.Id,
    role: MessageRole.User,
    content: "Can you give me the documented information in this file?",
    attachments: [attachment]
);

Een agent maken met code-interpreter

// Create the code interpreter tool
const codeInterpreterTool = ToolUtility.createCodeInterpreterTool();

// Enable the code interpreter tool during agent creation
const agent = await client.createAgent("gpt-4o", {
  name: "my-agent",
  instructions: "You are a helpful agent",
  tools: [codeInterpreterTool.definition],
  toolResources: codeInterpreterTool.resources,
});
console.log(`Created agent, agent ID: ${agent.id}`);

Een bestand bijvoegen voor code-interpreter dat moet worden gebruikt

Als u een bestand wilt gebruiken met code-interpreter, kunt u het toevoegen aan het hulpprogramma.

// Upload file and wait for it to be processed
const filePath = "./examplefile.csv";
const localFileStream = fs.createReadStream(filePath);
const localFile = await client.files.upload(localFileStream, "assistants", {
  fileName: "localFile",
});
// Create code interpreter tool
const codeInterpreterTool = ToolUtility.createCodeInterpreterTool([localFile.id]);

Een agent maken met het code-interpreter-hulpprogramma

curl --request POST \
  --url $AZURE_AI_FOUNDRY_PROJECT_ENDPOINT/assistants?api-version=$API_VERSION \
  -H "Authorization: Bearer $AGENT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "instructions": "You are an AI assistant that can write code to help answer math questions.",
    "tools": [
      { "type": "code_interpreter" }
    ],
    "model": "gpt-4o-mini",
    "tool_resources"{
      "code interpreter": {
      }
    }
  }'
String agentName = "code_interpreter_agent";
CodeInterpreterToolDefinition ciTool = new CodeInterpreterToolDefinition();
CreateAgentOptions createAgentOptions = new CreateAgentOptions(modelName).setName(agentName).setInstructions("You are a helpful agent").setTools(Arrays.asList(ciTool));
PersistentAgent agent = administrationClient.createAgent(createAgentOptions);

Een bestand bijvoegen voor code-interpreter dat moet worden gebruikt

Als u een bestand wilt gebruiken met code-interpreter, kunt u het toevoegen aan het hulpprogramma.

FileInfo uploadedFile = filesClient.uploadFile(new UploadFileRequest(
    new FileDetails(BinaryData.fromFile(htmlFile))
    .setFilename("sample.html"), FilePurpose.AGENTS));

MessageAttachment messageAttachment = new MessageAttachment(Arrays.asList(BinaryData.fromObject(ciTool))).setFileId(uploadedFile.getId());

PersistentAgentThread thread = threadsClient.createThread();
ThreadMessage createdMessage = messagesClient.createMessage(
    thread.getId(),
    MessageRole.USER,
    "What does the attachment say?",
    Arrays.asList(messageAttachment),
    null);

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.

Ondersteunde bestandstypen

Bestandsformaat 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