Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga
Ten dokument odnosi się do agentów Microsoft Foundry (klasycznych).
🔍 Wyświetl nową dokumentację interpretera kodu. Agenci (wersja klasyczna) są teraz przestarzali i zostaną wycofani 31 marca 2027 r. Użyj nowych agentów w ogólnie dostępnej usłudze Microsoft Foundry Agents Service. Postępuj zgodnie z przewodnikiem migracji , aby zaktualizować obciążenia.
Interpreter kodu umożliwia agentom pisanie i uruchamianie kodu Python w środowisku wykonywania w trybie piaskownicy. Po włączeniu interpretera kodu agent może uruchomić iteracyjny kod, aby rozwiązać trudniejsze problemy z kodem, matematyką i analizą danych lub tworzyć grafy i wykresy. Gdy agent zapisuje kod, który nie może uruchomić, może iterować ten kod, modyfikując i uruchamiając inny kod do momentu pomyślnego wykonania kodu.
Ważne
Interpreter kodu ma dodatkowe opłaty poza opłatami opartymi na tokenach za użycie Azure OpenAI. Jeśli agent wywołuje interpreter kodu jednocześnie w dwóch różnych wątkach, tworzone są dwie sesje interpretera kodu. Każda sesja jest domyślnie aktywna przez 1 godzinę z limitem czasu bezczynności 30 minut.
Wymagania wstępne
Przykłady kodu
Tworzenie agenta z interpreterem kodu
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,
)
Dołączanie pliku interpretera kodu do użycia
Jeśli chcesz, aby plik był używany z interpreterem kodu, możesz użyć upload_and_poll funkcji .
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])
Tworzenie agenta z interpreterem kodu
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()]
);
Dołączanie pliku interpretera kodu do użycia
Jeśli chcesz, aby plik był używany z interpreterem kodu, możesz dołączyć go do wiadomości.
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]
);
Tworzenie agenta z interpreterem kodu
// 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}`);
Dołączanie pliku interpretera kodu do użycia
Jeśli chcesz, aby plik był używany z interpreterem kodu, możesz dołączyć go do narzędzia.
// 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]);
Tworzenie agenta za pomocą narzędzia interpretera kodu
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);
Dołączanie pliku interpretera kodu do użycia
Jeśli chcesz, aby plik był używany z interpreterem kodu, możesz dołączyć go do narzędzia.
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);
Obsługiwane modele
Strona modeli zawiera najbardziej aktualne informacje dotyczące regionów i modeli, gdzie obsługiwani są agenci oraz interpreter kodu.
Zalecamy używanie Agentów z najnowszymi modelami, aby korzystać z nowych funkcji, większych okien kontekstowych oraz z bardziej aktualnych danych treningowych.
Obsługiwane typy plików
| Format pliku | 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 Lub text/xml |
.zip |
application/zip |