Sdílet prostřednictvím


Rychlý start: Vytvoření nového agenta

Služba agenta Azure AI Foundry umožňuje vytvářet agenty umělé inteligence přizpůsobené vašim potřebám prostřednictvím vlastních pokynů a rozšířená o pokročilé nástroje, jako je interpret kódu a vlastní funkce.

Požadavky

  • Předplatné Azure – Vytvořte si ho zdarma.
  • Ujistěte se, že jednotlivec, který vytváří účet a projekt, má v oboru předplatného roli Vlastník účtu Azure AI .
    • Tento požadavek splňuje také role Přispěvatel nebo Přispěvatel služeb Cognitive Services na úrovni předplatného.

Důležité

Portál Azure AI Foundry v současnosti podporuje pouze základní agenty. Pokud chcete provést standardní instalaci agenta, přečtěte si článek o nastavení prostředí , kde najdete další informace.

Vytvoření účtu a projektu Foundry na portálu Azure AI Foundry

Pokud chcete vytvořit účet a projekt v Azure AI Foundry, postupujte takto:

  1. Přejděte na Azure AI Foundry. Pokud se nacházíte v projektu, vyberte v levém horním rohu stránky Azure AI Foundry pro přechod na domovskou stránku.

  2. Chcete-li co nejrychleji začít, použijte proces vytvoření agenta. Klikněte na Vytvořit agenta.

    Snímek obrazovky s portálem Azure AI Foundry

  3. Zadejte název projektu. Pokud chcete přizpůsobit výchozí hodnoty, vyberte Upřesnit možnosti.

    Snímek obrazovky s rozšířenými možnostmi pro vytvoření projektu

  4. Vyberte Vytvořit.

  5. Počkejte, než se vaše prostředky zřídí.

    1. Účet a projekt (podřízený zdroj vašeho účtu) budou vytvořeny.
    2. Model gpt-4o se nasadí automaticky.
    3. Vytvoří se výchozí agent.
  6. cs-CZ: Jakmile dokončíte, dostanete se přímo do prostředí pro agenty a můžete začít vytvářet agenty.

    Snímek obrazovky s herním hřištěm agenta

    Poznámka:

    Pokud při pokusu o konfiguraci nebo vytvoření agentů dochází k chybě oprávnění, ujistěte se, že máte v projektu uživatele Azure AI .

| Referenční dokumentace | Vzorky | Zdrojový kód | knihovnyBalíček (NuGet) |

Požadavky

  • Nastavení prostředí agenta
  • Přiřaďte roli RBACuživatele Azure AI každému členovi týmu, který potřebuje vytvářet nebo upravovat agenty pomocí sady SDK nebo Agent Playground.
    • Tato role musí být přiřazena v oboru projektu.
    • Minimální požadovaná oprávnění: agents/*/read, agents/*/action, agents/*/delete

Nakonfigurujte a spusťte agenta

Součást Popis
Agenta Vlastní AI, které používá AI modely ve spojení s nástroji.
Nástroj Nástroje pomáhají rozšířit schopnost agenta spolehlivě a přesně reagovat během konverzace. Například připojení k uživatelsky definovaným znalostním základnám pro ukotvení modelu, nebo umožnění webového vyhledávání pro poskytnutí aktuálních informací.
Vlákno Konverzační sezení mezi agentem a uživatelem. Vlákna ukládají zprávy a automaticky zpracovávají zkracování, aby se obsah vešel do kontextu modelu.
Zpráva Zpráva vytvořená agentem nebo uživatelem. Zprávy mohou obsahovat text, obrázky a další soubory. Zprávy jsou ukládány jako seznam na vlákně.
Běž! Aktivace agenta k zahájení běhu na základě obsahu vlákna. Agent používá svou konfiguraci a zprávy vláken ke splnění úkolů voláním modelů a nástrojů. Jako součást běhu agent připojuje zprávy k vláknu.

Vytvořte projekt konzoly .NET.

dotnet new console

Nainstalujte balíček .NET do svého projektu. Pokud například používáte rozhraní příkazového řádku .NET, spusťte následující příkaz.

dotnet add package Azure.AI.Agents.Persistent
dotnet add package Azure.Identity

Dále, k ověření vašich API požadavků a spuštění programu, použijte příkaz az login pro přihlášení k vašemu Azure předplatnému.

az login

Použijte následující kód pro vytvoření a spuštění agenta. Pokud chcete tento kód spustit, budete muset získat koncový bod pro váš projekt. Tento řetězec je ve formátu:

https://<AIFoundryResourceName>.services.ai.azure.com/api/projects/<ProjectName>

Koncový bod najdete v přehledu projektu na portálu Azure AI Foundry v části Knihovny>Azure AI Foundry.

Snímek obrazovky znázorňující koncový bod na portálu Azure AI Foundry

Například váš koncový bod může vypadat nějak takto:

https://myresource.services.ai.azure.com/api/projects/myproject

Nastavte tento koncový bod v proměnné prostředí pojmenované ProjectEndpoint.

Potřebujete také název nasazení modelu. Najdete ho v levé navigační nabídce v modelech a koncových bodech .

Snímek obrazovky s nasazením modelu na portálu AI Foundry

Uložte jméno nasazení modelu jako proměnnou prostředí pojmenovanou 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);

| Referenční dokumentace | Vzorky | Zdrojový kód | knihovnyBalíček (PyPi) |

Požadavky

  • Nastavení prostředí agenta
  • Přiřaďte roli RBACuživatele Azure AI každému členovi týmu, který potřebuje vytvářet nebo upravovat agenty pomocí sady SDK nebo Agent Playground.
    • Tato role musí být přiřazena v oboru projektu.
    • Minimální požadovaná oprávnění: agents/*/read, agents/*/action, agents/*/delete

Nakonfigurujte a spusťte agenta

Součást Popis
Agenta Vlastní AI, které používá AI modely ve spojení s nástroji.
Nástroj Nástroje pomáhají rozšířit schopnost agenta spolehlivě a přesně reagovat během konverzace. Například připojení k uživatelsky definovaným znalostním základnám pro ukotvení modelu, nebo umožnění webového vyhledávání pro poskytnutí aktuálních informací.
Vlákno Konverzační sezení mezi agentem a uživatelem. Vlákna ukládají zprávy a automaticky zpracovávají zkracování, aby se obsah vešel do kontextu modelu.
Zpráva Zpráva vytvořená agentem nebo uživatelem. Zprávy mohou obsahovat text, obrázky a další soubory. Zprávy jsou ukládány jako seznam na vlákně.
Běž! Aktivace agenta k zahájení běhu na základě obsahu vlákna. Agent používá svou konfiguraci a zprávy vláken ke splnění úkolů voláním modelů a nástrojů. Jako součást běhu agent připojuje zprávy k vláknu.
Spusťte krok Podrobný seznam kroků, které agent podnikl jako součást běhu. Agent může během svého běhu volat nástroje nebo vytvářet zprávy. Zkoumání kroků běhu vám umožňuje pochopit, jak agent dosahuje svých výsledků.

Spusťte následující příkazy k instalaci balíčků Python.

pip install azure-ai-projects
pip install azure-identity

Dále, k ověření vašich API požadavků a spuštění programu, použijte příkaz az login pro přihlášení k vašemu Azure předplatnému.

az login

Použijte následující kód pro vytvoření a spuštění agenta. Pokud chcete tento kód spustit, budete muset získat koncový bod pro váš projekt. Tento řetězec je ve formátu:

https://<AIFoundryResourceName>.services.ai.azure.com/api/projects/<ProjectName>

Koncový bod najdete v přehledu projektu na portálu Azure AI Foundry v části Knihovny>Azure AI Foundry.

Snímek obrazovky znázorňující koncový bod na portálu Azure AI Foundry

Například váš koncový bod může vypadat nějak takto:

https://myresource.services.ai.azure.com/api/projects/myproject

Nastavte tento koncový bod jako proměnnou prostředí pojmenovanou PROJECT_ENDPOINT.

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

| Referenční dokumentace | Vzorky | Zdrojový kód | knihovnyBalíček (npm) |

Požadavky

  • Nastavení prostředí agenta
  • Přiřaďte roli RBACuživatele Azure AI každému členovi týmu, který potřebuje vytvářet nebo upravovat agenty pomocí sady SDK nebo Agent Playground.
    • Tato role musí být přiřazena v oboru projektu.
    • Minimální požadovaná oprávnění: agents/*/read, agents/*/action, agents/*/delete

Nakonfigurujte a spusťte agenta

Součást Popis
Agenta Vlastní AI, která používá modely AI s nástroji.
Nástroj Nástroje pomáhají rozšířit schopnost agenta spolehlivě a přesně reagovat během konverzace. Například připojení k uživatelsky definovaným znalostním základnám pro ukotvení modelu, nebo umožnění webového vyhledávání pro poskytnutí aktuálních informací.
Vlákno Konverzační sezení mezi agentem a uživatelem. Vlákna ukládají zprávy a automaticky zpracovávají zkracování, aby se obsah vešel do kontextu modelu.
Zpráva Zpráva vytvořená agentem nebo uživatelem. Zprávy mohou obsahovat text, obrázky a další soubory. Zprávy jsou ukládány jako seznam na vlákně.
Běž! Aktivace agenta k zahájení běhu na základě obsahu vlákna. Agent používá svou konfiguraci a zprávy vláken ke splnění úkolů voláním modelů a nástrojů. Jako součást běhu agent připojuje zprávy k vláknu.
Spusťte krok Podrobný seznam kroků, které agent podnikl jako součást běhu. Agent může během svého běhu volat nástroje nebo vytvářet zprávy. Zkoumání kroků běhu vám umožňuje pochopit, jak agent dosahuje svých výsledků.

Klíčové objekty v tomto kódu zahrnují:

Nejprve inicializujte nový projekt spuštěním:

npm init -y

Spusťte následující příkazy k instalaci požadovaných balíčků npm.

npm install @azure/ai-agents @azure/identity
npm install dotenv

Dále, k ověření vašich API požadavků a spuštění programu, použijte příkaz az login pro přihlášení k vašemu Azure předplatnému.

az login

Pomocí následujícího kódu vytvořte a spusťte agenta, který nahraje soubor CSV dat a potom z těchto dat vygeneruje pruhový graf. Abyste mohli tento kód spustit, budete muset získat koncový bod pro váš projekt. Tento řetězec je ve formátu:

https://<AIFoundryResourceName>.services.ai.azure.com/api/projects/<ProjectName>

Koncový bod najdete v přehledu projektu na portálu Azure AI Foundry v části Knihovny>Azure AI Foundry.

Snímek obrazovky znázorňující koncový bod na portálu Azure AI Foundry

Například koncový bod vypadá nějak takto:

https://myresource.services.ai.azure.com/api/projects/myproject

Tento koncový bod nastavte jako proměnnou prostředí pojmenovanou PROJECT_ENDPOINT.env v souboru.

Důležité

  • Tento úvodní kód používá proměnné prostředí pro citlivou konfiguraci. Nikdy nepřidávejte soubor .env do verzování tím, že zajistíte, že .env je uveden ve vašem souboru .gitignore.
  • Pamatujte: Pokud omylem nasdílíte citlivé informace, považujte tyto přihlašovací údaje za kompromitované a okamžitě je změňte.

Dále vytvořte index.js soubor a vložte následující kód:

// 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);
});

Spusťte kód pomocí node index.js. Tento kód vygeneruje soubor obrázku PNG pruhového grafu v sektoru doprava pro provozní zisk z nahraného souboru CSV a poskytne vám tento soubor. K dispozici je úplný ukázkový zdrojový kód .

| Referenční dokumentace |

Požadavky

  • Nastavení prostředí agenta
  • Přiřaďte roli RBACuživatele Azure AI každému členovi týmu, který potřebuje vytvářet nebo upravovat agenty pomocí sady SDK nebo Agent Playground.
    • Tato role musí být přiřazena v oboru projektu.
    • Minimální požadovaná oprávnění: agents/*/read, agents/*/action, agents/*/delete

Nakonfigurujte a spusťte agenta

Součást Popis
Agenta Vlastní AI, které používá AI modely ve spojení s nástroji.
Nástroj Nástroje pomáhají rozšířit schopnost agenta spolehlivě a přesně reagovat během konverzace. Například připojení k uživatelsky definovaným znalostním základnám pro ukotvení modelu, nebo umožnění webového vyhledávání pro poskytnutí aktuálních informací.
Vlákno Konverzační sezení mezi agentem a uživatelem. Vlákna ukládají zprávy a automaticky zpracovávají zkracování, aby se obsah vešel do kontextu modelu.
Zpráva Zpráva vytvořená agentem nebo uživatelem. Zprávy mohou obsahovat text, obrázky a další soubory. Zprávy jsou ukládány jako seznam na vlákně.
Běž! Aktivace agenta k zahájení běhu na základě obsahu vlákna. Agent používá svou konfiguraci a zprávy vláken ke splnění úkolů voláním modelů a nástrojů. Jako součást běhu agent připojuje zprávy k vláknu.
Spusťte krok Podrobný seznam kroků, které agent podnikl jako součást běhu. Agent může během svého běhu volat nástroje nebo vytvářet zprávy. Zkoumání kroků běhu vám umožňuje pochopit, jak agent dosahuje svých výsledků.

Informace o volání rozhraní API

Aby vaše požadavky na API byly ověřeny, použijte příkaz az login k přihlášení do vašeho předplatného Azure.

az login

Dále budete muset získat token Entra ID pro poskytnutí autorizace k voláním API. Získejte token pomocí příkazové řádky:

az account get-access-token --resource 'https://ai.azure.com' | jq -r .accessToken | tr -d '"'

Nastavte přístupový token jako proměnnou prostředí s názvem AGENT_TOKEN.

Pokud chcete úspěšně provést volání rozhraní REST API do služby agenta Azure AI Foundry, budete muset použít koncový bod, jak je znázorněno níže:

https://<your_ai_service_name>.services.ai.azure.com/api/projects/<your_project_name>

Například váš koncový bod může vypadat nějak takto:

https://exampleaiservice.services.ai.azure.com/api/projects/project

Nastavte tento koncový bod jako proměnnou prostředí pojmenovanou AZURE_AI_FOUNDRY_PROJECT_ENDPOINT.

Poznámka:

  • Pro api-version parametr je verze 2025-05-01 rozhraní API GA a nejnovější verze rozhraní API Preview je 2025-05-15-preview. Pro nástroje, které jsou ve verzi Preview, musíte použít rozhraní API ve verzi Preview.
  • Zvažte vytvoření verze rozhraní API jako proměnnou prostředí, například $API_VERSION.

Vytvořit agenta

Poznámka:

Ve službě Azure AI Agents vyžaduje parametr model název nasazení modelu. Pokud je název nasazení modelu jiný než název základního modelu, pak byste upravili svůj kód na "model": "{your-custom-model-deployment-name}".

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"
  }'

Vytvořit vlákno

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 ''

Přidejte dotaz uživatele do vlákna

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?"
    }'

Spustit vlákno

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",
  }'

Zjistit stav běhu

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"

Načtěte odpověď agenta

curl --request GET \
  --url $AZURE_AI_FOUNDRY_PROJECT_ENDPOINT/threads/thread_abc123/messages?api-version=2025-05-01 \
  -H "Authorization: Bearer $AGENT_TOKEN"