Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure AI Foundry Agent Service lehetővé teszi az igényeinek megfelelő AI-ügynökök létrehozását egyéni utasításokon keresztül, fejlett eszközökkel, például kódértelmezővel és egyéni függvényekkel kiegészítve.
Előfeltételek
- Azure-előfizetés – Hozzon létre egyet ingyenesen.
- Győződjön meg arról, hogy a fiókot és projektet létrehozó személy rendelkezik azure AI-fióktulajdonosi szerepkörrel az előfizetés hatókörében
- Alternatívaként, ha az előfizetési szinten rendelkezik a közreműködő vagy Cognitive Services-közreműködő szerepkörrel, az is megfelel ennek a követelménynek.
Fontos
Az Azure AI Foundry portál jelenleg csak az alapszintű ügynökkészletet támogatja. Ha szabványos ügynökbeállítást szeretne végrehajtani, további információkért tekintse meg a Környezet beállítása című cikket.
Foundry-fiók és -projekt létrehozása az Azure AI Foundry portálon
Ha fiókot és projektet szeretne létrehozni az Azure AI Foundryben, kövesse az alábbi lépéseket:
Nyissa meg az Azure AI Foundryt. Ha projektben van, válassza a lap bal felső részén található Azure AI Foundry lehetőséget a kezdőlapra való ugráshoz.
Használja az ügyfélszolgálati munkatárs gyors indulási folyamatát a leggyorsabb élmény érdekében. Kattintson az Ügynök létrehozása elemre.
Adjon meg a projekt nevét. Ha testre szeretné szabni az alapértelmezett értékeket, válassza a Speciális beállítások lehetőséget.
Válassza a Create gombot.
Várjon, amíg az erőforrások rendelkezésre állnak.
- Létrejön egy fiók és projekt (a fiók gyermekerőforrása).
- A gpt-4o modell automatikusan üzembe lesz helyezve
- Létrejön egy alapértelmezett ügynök
A befejezés után közvetlenül az ügynökök játszóterére jut, és elkezdheti létrehozni az ügynököket.
Megjegyzés:
Ha az ügynökök konfigurálásakor vagy létrehozásakor engedélyhiba jelenik meg, győződjön meg arról, hogy rendelkezik az Azure AI-felhasználóval a projektben.
| Referenciadokumentáció | Példák | Kódtár forráskód | Csomag (NuGet) |
Előfeltételek
- Egy beállított ügynökkörnyezet
- Rendelje hozzá az Azure AI-felhasználóiRBAC-szerepkört minden olyan csapattaghoz, akinek ügynököket kell létrehoznia vagy szerkesztenie az SDK vagy az Agent Playground használatával
- Ezt a szerepkört a projekt hatókörében kell hozzárendelni
- Minimálisan szükséges engedélyek: ügynökök/*/olvasás, ügynökök/*/művelet, ügynökök/*/törlés
Ügynök konfigurálása és futtatása
Összetevő | Leírás |
---|---|
Ügynök | Egyéni AI, amely AI-modelleket használ az eszközökkel együtt. |
Eszköz | Az eszközök segítenek kiterjeszteni az ügynök azon képességét, hogy megbízhatóan és pontosan válaszoljon a beszélgetés során. Ilyen például a felhasználó által definiált tudásbázis csatlakoztatása a modell alapozásához, vagy a webes keresés engedélyezése az aktuális információk megadásához. |
Szál | Egy ügynök és egy felhasználó közötti beszélgetési munkamenet. A szálak tárolják az üzeneteket, és automatikusan kezelik a csonkolást, hogy a tartalom illeszkedjen a modell környezetébe. |
Üzenet | Ügynök vagy felhasználó által létrehozott üzenet. Az üzenetek tartalmazhatnak szöveget, képeket és más fájlokat. Az üzenetek listaként vannak tárolva a szálon. |
Fuss! | Ügynök aktiválása a szál tartalma alapján a futás megkezdéséhez. Az ügynök a konfigurációjával és a szál üzeneteivel hajtja végre a feladatokat modellek és eszközök meghívásával. A futtatás részeként az ügynök hozzáfűzi az üzeneteket a szálhoz. |
Hozzon létre egy .NET-konzolprojektet.
dotnet new console
Telepítse a .NET-csomagot a projektbe. Ha például a .NET CLI-t használja, futtassa a következő parancsot.
dotnet add package Azure.AI.Agents.Persistent
dotnet add package Azure.Identity
Ezután az API-kérések hitelesítéséhez és a program futtatásához használja az az login parancsot az Azure-előfizetésbe való bejelentkezéshez.
az login
Ügynök létrehozásához és futtatásához használja az alábbi kódot. A kód futtatásához le kell kérnie a projekt végpontját. Ennek a karaktersornak a formátuma:
https://<AIFoundryResourceName>.services.ai.azure.com/api/projects/<ProjectName>
A végpontot az Azure AI Foundry portálon, az Azure AI Foundrykódtárak területén találja meg a projekt >.
A végpont például a következőképpen nézhet ki:
https://myresource.services.ai.azure.com/api/projects/myproject
Állítsa be ezt a végpontot egy környezeti változó nevű ProjectEndpoint
változóban.
Szüksége lesz a modell üzembe helyezésének nevére is. A bal oldali navigációs menü Modellek + Végpontok területén található.
Mentse a modell üzembehelyezési nevének nevét egy környezeti változó neveként.ModelDeploymentName
using Azure;
using Azure.AI.Agents.Persistent;
using Azure.Identity;
using Microsoft.Extensions.Configuration;
using System.Diagnostics;
IConfigurationRoot configuration = new ConfigurationBuilder()
.SetBasePath(AppContext.BaseDirectory)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.Build();
var projectEndpoint = configuration["ProjectEndpoint"];
var modelDeploymentName = configuration["ModelDeploymentName"];
//Create a PersistentAgentsClient and PersistentAgent.
PersistentAgentsClient client = new(projectEndpoint, new DefaultAzureCredential());
//Give PersistentAgent a tool to execute code using CodeInterpreterToolDefinition.
PersistentAgent agent = client.Administration.CreateAgent(
model: modelDeploymentName,
name: "My Test Agent",
instructions: "You politely help with math questions. Use the code interpreter tool when asked to visualize numbers.",
tools: [new CodeInterpreterToolDefinition()]
);
//Create a thread to establish a session between Agent and a User.
PersistentAgentThread thread = client.Threads.CreateThread();
//Ask a question of the Agent.
client.Messages.CreateMessage(
thread.Id,
MessageRole.User,
"Hi, Agent! Draw a graph for a line with a slope of 4 and y-intercept of 9.");
//Have Agent beging processing user's question with some additional instructions associated with the ThreadRun.
ThreadRun run = client.Runs.CreateRun(
thread.Id,
agent.Id,
additionalInstructions: "Please address the user as Jane Doe. The user has a premium account.");
//Poll for completion.
do
{
Thread.Sleep(TimeSpan.FromMilliseconds(500));
run = client.Runs.GetRun(thread.Id, run.Id);
}
while (run.Status == RunStatus.Queued
|| run.Status == RunStatus.InProgress
|| run.Status == RunStatus.RequiresAction);
//Get the messages in the PersistentAgentThread. Includes Agent (Assistant Role) and User (User Role) messages.
Pageable<PersistentThreadMessage> messages = client.Messages.GetMessages(
threadId: thread.Id,
order: ListSortOrder.Ascending);
//Display each message and open the image generated using CodeInterpreterToolDefinition.
foreach (PersistentThreadMessage threadMessage in messages)
{
foreach (MessageContent content in threadMessage.ContentItems)
{
switch (content)
{
case MessageTextContent textItem:
Console.WriteLine($"[{threadMessage.Role}]: {textItem.Text}");
break;
case MessageImageFileContent imageFileContent:
Console.WriteLine($"[{threadMessage.Role}]: Image content file ID = {imageFileContent.FileId}");
BinaryData imageContent = client.Files.GetFileContent(imageFileContent.FileId);
string tempFilePath = Path.Combine(AppContext.BaseDirectory, $"{Guid.NewGuid()}.png");
File.WriteAllBytes(tempFilePath, imageContent.ToArray());
client.Files.DeleteFile(imageFileContent.FileId);
ProcessStartInfo psi = new()
{
FileName = tempFilePath,
UseShellExecute = true
};
Process.Start(psi);
break;
}
}
}
//Clean up test resources.
client.Threads.DeleteThread(threadId: thread.Id);
client.Administration.DeleteAgent(agentId: agent.Id);
| Referenciadokumentáció | Példák | Könyvtár forráskódja | Csomag (PyPi) |
Előfeltételek
- Egy beállított ügynökkörnyezet
- Rendelje hozzá az Azure AI-felhasználóiRBAC-szerepkört minden olyan csapattaghoz, akinek ügynököket kell létrehoznia vagy szerkesztenie az SDK vagy az Agent Playground használatával
- Ezt a szerepkört a projekt hatókörében kell hozzárendelni
- Minimálisan szükséges engedélyek: ügynökök/*/olvasás, ügynökök/*/művelet, ügynökök/*/törlés
Ügynök konfigurálása és futtatása
Összetevő | Leírás |
---|---|
Ügynök | Egyéni AI, amely AI-modelleket használ az eszközökkel együtt. |
Eszköz | Az eszközök segítenek kiterjeszteni az ügynök azon képességét, hogy megbízhatóan és pontosan válaszoljon a beszélgetés során. Ilyen például a felhasználó által definiált tudásbázis csatlakoztatása a modell alapozásához, vagy a webes keresés engedélyezése az aktuális információk megadásához. |
Szál | Egy ügynök és egy felhasználó közötti beszélgetési munkamenet. A szálak tárolják az üzeneteket, és automatikusan kezelik a csonkolást, hogy a tartalom illeszkedjen a modell környezetébe. |
Üzenet | Ügynök vagy felhasználó által létrehozott üzenet. Az üzenetek tartalmazhatnak szöveget, képeket és más fájlokat. Az üzenetek listaként vannak tárolva a szálon. |
Fuss! | Ügynök aktiválása a szál tartalma alapján a futás megkezdéséhez. Az ügynök a konfigurációjával és a szál üzeneteivel hajtja végre a feladatokat modellek és eszközök meghívásával. A futtatás részeként az ügynök hozzáfűzi az üzeneteket a szálhoz. |
Futtatás lépése | Az ügynök által a feladat részeként végrehajtott lépések részletes listája. Az ügynök a futtatása során eszközöket hívhat vagy üzeneteket hozhat létre. A folyamatlépések megvizsgálásával megértheti, hogyan jut el az ügynök az eredményekhez. |
Futtassa az alábbi parancsokat a Python-csomagok telepítéséhez.
pip install azure-ai-projects
pip install azure-identity
Ezután az API-kérések hitelesítéséhez és a program futtatásához használja az az login parancsot az Azure-előfizetésbe való bejelentkezéshez.
az login
Ügynök létrehozásához és futtatásához használja az alábbi kódot. A kód futtatásához le kell kérnie a projekt végpontját. Ennek a karaktersornak a formátuma:
https://<AIFoundryResourceName>.services.ai.azure.com/api/projects/<ProjectName>
A végpontot az Azure AI Foundry portálon, az Azure AI Foundrykódtárak területén találja meg a projekt >.
A végpont például a következőképpen nézhet ki:
https://myresource.services.ai.azure.com/api/projects/myproject
Állítsa be ezt a végpontot a következő nevű PROJECT_ENDPOINT
környezeti változóként: .
import os
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from azure.ai.agents.models import CodeInterpreterTool
# Create an Azure AI Client from an endpoint, copied from your Azure AI Foundry project.
# You need to login to Azure subscription via Azure CLI and set the environment variables
project_endpoint = os.environ["PROJECT_ENDPOINT"] # Ensure the PROJECT_ENDPOINT environment variable is set
# Create an AIProjectClient instance
project_client = AIProjectClient(
endpoint=project_endpoint,
credential=DefaultAzureCredential(), # Use Azure Default Credential for authentication
)
code_interpreter = CodeInterpreterTool()
with project_client:
# Create an agent with the Bing Grounding tool
agent = project_client.agents.create_agent(
model=os.environ["MODEL_DEPLOYMENT_NAME"], # Model deployment name
name="my-agent", # Name of the agent
instructions="You are a helpful agent", # Instructions for the agent
tools=code_interpreter.definitions, # Attach the tool
)
print(f"Created agent, ID: {agent.id}")
# Create a thread for communication
thread = project_client.agents.threads.create()
print(f"Created thread, ID: {thread.id}")
# Add a message to the thread
message = project_client.agents.messages.create(
thread_id=thread.id,
role="user", # Role of the message sender
content="What is the weather in Seattle today?", # Message content
)
print(f"Created message, ID: {message['id']}")
# Create and process an agent run
run = project_client.agents.runs.create_and_process(thread_id=thread.id, agent_id=agent.id)
print(f"Run finished with status: {run.status}")
# Check if the run failed
if run.status == "failed":
print(f"Run failed: {run.last_error}")
# Fetch and log all messages
messages = project_client.agents.messages.list(thread_id=thread.id)
for message in messages:
print(f"Role: {message.role}, Content: {message.content}")
# Delete the agent when done
project_client.agents.delete_agent(agent.id)
print("Deleted agent")
| Referenciadokumentáció | Minták | Könyvtárforráskód | Csomag (npm) |
Előfeltételek
- Egy beállított ügynökkörnyezet
- Rendelje hozzá az Azure AI-felhasználóiRBAC-szerepkört minden olyan csapattaghoz, akinek ügynököket kell létrehoznia vagy szerkesztenie az SDK vagy az Agent Playground használatával
- Ezt a szerepkört a projekt hatókörében kell hozzárendelni
- Minimálisan szükséges engedélyek: ügynökök/*/olvasás, ügynökök/*/művelet, ügynökök/*/törlés
Ügynök konfigurálása és futtatása
Összetevő | Leírás |
---|---|
Ügynök | Egyéni AI, amely AI-modelleket használ eszközökkel. |
Eszköz | Az eszközök segítenek kiterjeszteni az ügynök azon képességét, hogy megbízhatóan és pontosan válaszoljon a beszélgetés során. Ilyen például a felhasználó által definiált tudásbázis csatlakoztatása a modell alapozásához, vagy a webes keresés engedélyezése az aktuális információk megadásához. |
Szál | Egy ügynök és egy felhasználó közötti beszélgetési munkamenet. A szálak tárolják az üzeneteket, és automatikusan kezelik a csonkolást, hogy a tartalom illeszkedjen a modell környezetébe. |
Üzenet | Ügynök vagy felhasználó által létrehozott üzenet. Az üzenetek tartalmazhatnak szöveget, képeket és más fájlokat. Az üzenetek listaként vannak tárolva a szálon. |
Fuss! | Ügynök aktiválása a szál tartalma alapján a futás megkezdéséhez. Az ügynök a konfigurációjával és a szál üzeneteivel hajtja végre a feladatokat modellek és eszközök meghívásával. A futtatás részeként az ügynök hozzáfűzi az üzeneteket a szálhoz. |
Futtatás lépése | Az ügynök által a feladat részeként végrehajtott lépések részletes listája. Az ügynök a futtatása során eszközöket hívhat vagy üzeneteket hozhat létre. A folyamatlépések megvizsgálásával megértheti, hogyan jut el az ügynök az eredményekhez. |
A kód legfontosabb objektumai a következők:
Először inicializáljon egy új projektet a következő futtatásával:
npm init -y
Futtassa az alábbi parancsokat a szükséges npm-csomagok telepítéséhez.
npm install @azure/ai-agents @azure/identity
npm install dotenv
Ezután az API-kérések hitelesítéséhez és a program futtatásához használja az az login parancsot az Azure-előfizetésbe való bejelentkezéshez.
az login
Az alábbi kód használatával hozzon létre és futtasson egy ügynököt, amely feltölt egy CSV-adatfájlt , majd létrehoz egy sávdiagramot az adatokból. A kód futtatásához le kell kérnie a projekt végpontját. Ennek a karaktersornak a formátuma:
https://<AIFoundryResourceName>.services.ai.azure.com/api/projects/<ProjectName>
A végpontot az Azure AI Foundry portálon, az Azure AI Foundrykódtárak területén találja meg a projekt >.
A végpont például a következőképpen néz ki:
https://myresource.services.ai.azure.com/api/projects/myproject
Állítsa be ezt a végpontot egy PROJECT_ENDPOINT
fájlban, mint .env
nevű környezeti változót.
Fontos
- Ez a gyorsindító kód környezeti változókat használ az érzékeny konfigurációhoz. Soha ne adja hozzá a
.env
fájlt a verziókövető rendszerbe, és győződjön meg róla, hogy a.env
szerepel a.gitignore
fájlban. - Ne feledje: Ha véletlenül bizalmas információkat követ el, tekintse a hitelesítő adatokat veszélyeztetettnek, és azonnal cserélje le őket.
Ezután hozzon létre egy index.js
fájlt, és illessze be a következő kódba:
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
/**
* This sample demonstrates how to use agent operations with code interpreter from the Azure Agents service.
*
* @summary demonstrates how to use agent operations with code interpreter.
*/
// @ts-nocheck
import type {
MessageDeltaChunk,
MessageDeltaTextContent,
MessageImageFileContent,
MessageTextContent,
ThreadRun,
} from "@azure/ai-agents";
import {
RunStreamEvent,
MessageStreamEvent,
DoneEvent,
ErrorEvent,
AgentsClient,
isOutputOfType,
ToolUtility,
} from "@azure/ai-agents";
import { DefaultAzureCredential } from "@azure/identity";
import * as fs from "fs";
import path from "node:path";
import "dotenv/config";
const projectEndpoint = process.env["PROJECT_ENDPOINT"] || "<project endpoint>";
const modelDeploymentName = process.env["MODEL_DEPLOYMENT_NAME"] || "gpt-4o";
export async function main(): Promise<void> {
// Create an Azure AI Client
const client = new AgentsClient(projectEndpoint, new DefaultAzureCredential());
// Upload file and wait for it to be processed
const filePath = "./data/nifty500QuarterlyResults.csv";
const localFileStream = fs.createReadStream(filePath);
const localFile = await client.files.upload(localFileStream, "assistants", {
fileName: "myLocalFile",
});
console.log(`Uploaded local file, file ID : ${localFile.id}`);
// Create code interpreter tool
const codeInterpreterTool = ToolUtility.createCodeInterpreterTool([localFile.id]);
// Notice that CodeInterpreter must be enabled in the agent creation, otherwise the agent will not be able to see the file attachment
const agent = await client.createAgent(modelDeploymentName, {
name: "my-agent",
instructions: "You are a helpful agent",
tools: [codeInterpreterTool.definition],
toolResources: codeInterpreterTool.resources,
});
console.log(`Created agent, agent ID: ${agent.id}`);
// Create a thread
const thread = await client.threads.create();
console.log(`Created thread, thread ID: ${thread.id}`);
// Create a message
const message = await client.messages.create(
thread.id,
"user",
"Could you please create a bar chart in the TRANSPORTATION sector for the operating profit from the uploaded CSV file and provide the file to me?",
);
console.log(`Created message, message ID: ${message.id}`);
// Create and execute a run
const streamEventMessages = await client.runs.create(thread.id, agent.id).stream();
for await (const eventMessage of streamEventMessages) {
switch (eventMessage.event) {
case RunStreamEvent.ThreadRunCreated:
console.log(`ThreadRun status: ${(eventMessage.data as ThreadRun).status}`);
break;
case MessageStreamEvent.ThreadMessageDelta:
{
const messageDelta = eventMessage.data as MessageDeltaChunk;
messageDelta.delta.content.forEach((contentPart) => {
if (contentPart.type === "text") {
const textContent = contentPart as MessageDeltaTextContent;
const textValue = textContent.text?.value || "No text";
console.log(`Text delta received:: ${textValue}`);
}
});
}
break;
case RunStreamEvent.ThreadRunCompleted:
console.log("Thread Run Completed");
break;
case ErrorEvent.Error:
console.log(`An error occurred. Data ${eventMessage.data}`);
break;
case DoneEvent.Done:
console.log("Stream completed.");
break;
}
}
// Delete the original file from the agent to free up space (note: this does not delete your version of the file)
await client.files.delete(localFile.id);
console.log(`Deleted file, file ID : ${localFile.id}`);
// Print the messages from the agent
const messagesIterator = client.messages.list(thread.id);
const messagesArray = [];
for await (const m of messagesIterator) {
messagesArray.push(m);
}
console.log("Messages:", messagesArray);
// Get most recent message from the assistant
// Get most recent message from the assistant
const assistantMessage = messagesArray.find((msg) => msg.role === "assistant");
if (assistantMessage) {
// Look for an image file in the assistant's message
const imageFileOutput = assistantMessage.content.find(content =>
content.type === "image_file" && content.imageFile?.fileId);
if (imageFileOutput) {
try {
// Save the newly created file
console.log(`Saving new files...`);
const imageFile = imageFileOutput.imageFile.fileId;
const imageFileName = path.resolve(
"./data/" + (await client.files.get(imageFile)).filename + "ImageFile.png",
);
console.log(`Image file name : ${imageFileName}`);
const fileContent = await client.files.getContent(imageFile).asNodeStream();
if (fileContent && fileContent.body) {
const chunks = [];
for await (const chunk of fileContent.body) {
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
}
const buffer = Buffer.concat(chunks);
fs.writeFileSync(imageFileName, buffer);
console.log(`Successfully saved image to ${imageFileName}`);
} else {
console.error("No file content available in the response");
}
} catch (error) {
console.error("Error saving image file:", error);
}
} else {
console.log("No image file found in assistant's message");
}
} else {
console.log("No assistant message found");
}
// Iterate through messages and print details for each annotation
console.log(`Message Details:`);
messagesArray.forEach((m) => {
console.log(`File Paths:`);
console.log(`Type: ${m.content[0].type}`);
if (isOutputOfType<MessageTextContent>(m.content[0], "text")) {
const textContent = m.content[0] as MessageTextContent;
console.log(`Text: ${textContent.text.value}`);
}
console.log(`File ID: ${m.id}`);
// firstId and lastId are properties of the paginator, not the messages array
// Removing these references as they don't exist in this context
});
// Delete the agent once done
await client.deleteAgent(agent.id);
console.log(`Deleted agent, agent ID: ${agent.id}`);
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
Futtassa a kódot a következővel: node index.js
. Ez a kód létrehoz egy sávdiagram PNG-képfájlt a közlekedési szektorban a feltöltött CSV-fájl működési nyereségéhez, és átadja Önnek a fájlt. Teljes mintaforráskód érhető el.
Előfeltételek
- Egy beállított ügynökkörnyezet
- Rendelje hozzá az Azure AI-felhasználóiRBAC-szerepkört minden olyan csapattaghoz, akinek ügynököket kell létrehoznia vagy szerkesztenie az SDK vagy az Agent Playground használatával
- Ezt a szerepkört a projekt hatókörében kell hozzárendelni
- Minimálisan szükséges engedélyek: ügynökök/*/olvasás, ügynökök/*/művelet, ügynökök/*/törlés
Ügynök konfigurálása és futtatása
Összetevő | Leírás |
---|---|
Ügynök | Egyéni AI, amely AI-modelleket használ az eszközökkel együtt. |
Eszköz | Az eszközök segítenek kiterjeszteni az ügynök azon képességét, hogy megbízhatóan és pontosan válaszoljon a beszélgetés során. Ilyen például a felhasználó által definiált tudásbázis csatlakoztatása a modell alapozásához, vagy a webes keresés engedélyezése az aktuális információk megadásához. |
Szál | Egy ügynök és egy felhasználó közötti beszélgetési munkamenet. A szálak tárolják az üzeneteket, és automatikusan kezelik a csonkolást, hogy a tartalom illeszkedjen a modell környezetébe. |
Üzenet | Ügynök vagy felhasználó által létrehozott üzenet. Az üzenetek tartalmazhatnak szöveget, képeket és más fájlokat. Az üzenetek listaként vannak tárolva a szálon. |
Fuss! | Ügynök aktiválása a szál tartalma alapján a futás megkezdéséhez. Az ügynök a konfigurációjával és a szál üzeneteivel hajtja végre a feladatokat modellek és eszközök meghívásával. A futtatás részeként az ügynök hozzáfűzi az üzeneteket a szálhoz. |
Futtatás lépése | Az ügynök által a feladat részeként végrehajtott lépések részletes listája. Az ügynök a futtatása során eszközöket hívhat vagy üzeneteket hozhat létre. A folyamatlépések megvizsgálásával megértheti, hogyan jut el az ügynök az eredményekhez. |
API-hívás adatai
Az API-kérések hitelesítéséhez használja az az login parancsot az Azure-előfizetésbe való bejelentkezéshez.
az login
Ezután le kell kérnie az Entra ID-jogkivonatot, hogy engedélyként megadhassa az API-hívásokhoz. A tokent szerezze be a CLI parancs segítségével:
az account get-access-token --resource 'https://ai.azure.com' | jq -r .accessToken | tr -d '"'
Állítsa be a hozzáférési tokent egy AGENT_TOKEN
nevű környezeti változóként.
Az Azure AI Foundry Agent Service-be irányuló REST API-hívások sikeres indításához a végpontot az alábbiak szerint kell használnia:
https://<your_ai_service_name>.services.ai.azure.com/api/projects/<your_project_name>
A végpont például a következőképpen nézhet ki:
https://exampleaiservice.services.ai.azure.com/api/projects/project
Állítsa be ezt a végpontot a következő nevű AZURE_AI_FOUNDRY_PROJECT_ENDPOINT
környezeti változóként: .
Megjegyzés:
- Paraméter esetén
api-version
a GA API verziója és2025-05-01
a legújabb előzetes API-verzió.2025-05-15-preview
Az előzetes verziójú API-t kell használnia az előzetes verzióban lévő eszközökhöz. - Fontolja meg az API-verzió környezeti változóvá tételét, például
$API_VERSION
.
Ügynök létrehozása
Megjegyzés:
Az Azure AI Agents Service-ben a model
paraméterhez modelltelepítési név szükséges. Ha a modell központi telepítési neve eltér az alapul szolgáló modell nevéétől, akkor a kódot a következőre "model": "{your-custom-model-deployment-name}"
kell módosítania: .
curl --request POST \
--url $AZURE_AI_FOUNDRY_PROJECT_ENDPOINT/assistants?api-version=2025-05-01 \
-H "Authorization: Bearer $AGENT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"instructions": "You are a helpful agent.",
"name": "my-agent",
"tools": [{"type": "code_interpreter"}],
"model": "gpt-4o-mini"
}'
Szál létrehozása
curl --request POST \
--url $AZURE_AI_FOUNDRY_PROJECT_ENDPOINT/threads?api-version=2025-05-01 \
-H "Authorization: Bearer $AGENT_TOKEN" \
-H "Content-Type: application/json" \
-d ''
Felhasználói kérdés hozzáadása a szálhoz
curl --request POST \
--url $AZURE_AI_FOUNDRY_PROJECT_ENDPOINT/threads/thread_abc123/messages?api-version=2025-05-01 \
-H "Authorization: Bearer $AGENT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"role": "user",
"content": "I need to solve the equation `3x + 11 = 14`. Can you help me?"
}'
A szál futtatása
curl --request POST \
--url $AZURE_AI_FOUNDRY_PROJECT_ENDPOINT/threads/thread_abc123/runs?api-version=2025-05-01 \
-H "Authorization: Bearer $AGENT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"assistant_id": "asst_abc123",
}'
A folyamat állapotának lekérése
curl --request GET \
--url $AZURE_AI_FOUNDRY_PROJECT_ENDPOINT/threads/thread_abc123/runs/run_abc123?api-version=2025-05-01 \
-H "Authorization: Bearer $AGENT_TOKEN"
Az ügynök válaszának lekérése
curl --request GET \
--url $AZURE_AI_FOUNDRY_PROJECT_ENDPOINT/threads/thread_abc123/messages?api-version=2025-05-01 \
-H "Authorization: Bearer $AGENT_TOKEN"