Aracılığıyla paylaş


Hızlı Başlangıç: Yeni aracı oluşturma

Azure AI Foundry Agent Service, özel yönergelerle ihtiyaçlarınıza göre uyarlanmış ve kod yorumlayıcı ve özel işlevler gibi gelişmiş araçlarla geliştirilmiş yapay zeka aracıları oluşturmanıza olanak tanır.

Önkoşullar

  • Azure aboneliği - Ücretsiz bir abonelik oluşturun.
  • Hesabı ve projeyi oluşturan kişinin abonelik kapsamında Azure AI Hesabı Sahibi rolüne sahip olduğundan emin olun
    • Alternatif olarak, abonelik düzeyinde Katkıda Bulunan veya Bilişsel Hizmetler Katkıda Bulunanı rolüne sahip olmak da bu gereksinimi karşılar.

Önemli

Azure AI Foundry portalı şu anda yalnızca temel aracı kümesini destekler. Standart aracı kurulumu gerçekleştirmek istiyorsanız daha fazla bilgi edinmek için Ortam kurulumu makalesine bakın.

Azure AI Foundry portalında Bir Dökümhane hesabı ve projesi oluşturma

Azure AI Foundry'de hesap ve proje oluşturmak için şu adımları izleyin:

  1. Azure AI Foundry'ye gidin. Bir projedeyseniz, Giriş sayfasına gitmek için sayfanın sol üst kısmındaki Azure AI Foundry'yi seçin.

  2. En hızlı deneyim için Başlangıç Aracı oluşturma akışını kullanın. Aracı oluştur'a tıklayın.

    Azure AI Foundry portalının ekran görüntüsü.

  3. Proje için bir ad girin. Varsayılan değerleri özelleştirmek istiyorsanız Gelişmiş seçenekler'i seçin.

    Proje oluşturmaya yönelik gelişmiş seçeneklerin ekran görüntüsü.

  4. Oluştur'i seçin.

  5. Kaynaklarınızın sağlanmasını bekleyin.

    1. Bir hesap ve proje (hesabınızın alt kaynağı) oluşturulur.
    2. gpt-4o modeli otomatik olarak dağıtılacak
    3. Varsayılan aracı oluşturulacak
  6. İşlem tamamlandıktan sonra doğrudan ajan çalışma alanınıza ulaşırsınız ve ajan oluşturmaya başlayabilirsiniz.

    Agent Playground'un ekran görüntüsü.

    Uyarı

    Aracıları yapılandırmaya veya oluşturmaya çalışırken izin hatası alıyorsanız projede Azure AI Kullanıcısına sahip olduğunuzdan emin olun.

| Başvuru belgeleri | Örnekler | Kitaplık kaynak kodu | Paket (NuGet) |

Önkoşullar

  • Aracı ortamını ayarlama
  • SDK veya Aracı Oyun Alanı'nı kullanarak aracı oluşturması veya düzenlemesi gereken her ekip üyesine Azure AI KullanıcıRBAC rolünü atayın
    • Bu rol proje kapsamında atanmalıdır
    • Gerekli en düşük izinler: aracılar/*/okuma, aracılar/*/eylem, aracılar/*/delete

Ajana yapılandır ve çalıştır

Bileşen Açıklama
Temsilci Araçlarla birlikte kullanılan yapay zeka modellerini içeren kişiselleştirilmiş yapay zeka.
Araç Bir çalışanın sohbet esnasında güvenilir ve doğru yanıt verme yeteneğini arttırmasına araçlar yardımcı olur. Modeli temel almak için kullanıcı tanımlı bilgi bankası bağlanma veya geçerli bilgileri sağlamak için web aramasını etkinleştirme gibi.
Konu Temsilci ile kullanıcı arasındaki sohbet oturumu. İş parçacıkları Mesajları saklar ve içeriği bir modelin bağlamına sığdırmak için kesmeyi otomatik olarak gerçekleştirir.
Mesaj Temsilci veya kullanıcı tarafından oluşturulan mesaj. İletiler metin, resim ve diğer dosyaları içerebilir. İletiler, İleti Dizisinde bir liste olarak depolanır.
Koş! Thread içeriğine göre bir aracı çalıştırmak için etkinleştirme. Aracı, yapılandırmasını ve İş Parçacığının Mesajlarını kullanarak modelleri ve araçları çağırıp görevleri gerçekleştirir. Bir Çalıştırma'nın parçası olarak, aracı İletileri ipliğe ekler.

.NET Konsol projesi oluşturun.

dotnet new console

.NET paketini projenize yükleyin. Örneğin. .NET CLI kullanıyorsanız aşağıdaki komutu çalıştırın.

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

Ardından API isteklerinizin kimliğini doğrulamak ve programı çalıştırmak için az login komutunu kullanarak Azure aboneliğinizde oturum açın.

az login

Aracı oluşturup çalıştırmak için aşağıdaki kodu kullanın. Bu kodu çalıştırmak için projenizin uç noktasını almanız gerekir. Bu dize şu biçimdedir:

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

Tavsiye

Projenize genel bakış bölümü altında Azure AI Foundry portalındaki Kitaplıklar>Azure AI Foundry bölümünde uç noktanızı bulabilirsiniz. Azure AI Foundry portalında uç noktayı gösteren ekran görüntüsü.

Örneğin, uç noktanız şuna benzer olabilir:

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

Bu uç noktayı ProjectEndpoint adlı bir uygulama ayarı değişkeninde ayarlayın.

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

| Referans belgeleri | Örnekler | Kitaplık kaynak kodu | Paket (PyPi) |

Önkoşullar

  • Aracı ortamını ayarlama
  • SDK veya Aracı Oyun Alanı'nı kullanarak aracı oluşturması veya düzenlemesi gereken her ekip üyesine Azure AI KullanıcıRBAC rolünü atayın
    • Bu rol proje kapsamında atanmalıdır
    • Gerekli en düşük izinler: aracılar/*/okuma, aracılar/*/eylem, aracılar/*/delete

Ajana yapılandır ve çalıştır

Bileşen Açıklama
Temsilci Araçlarla birlikte kullanılan yapay zeka modellerini içeren kişiselleştirilmiş yapay zeka.
Araç Bir çalışanın sohbet esnasında güvenilir ve doğru yanıt verme yeteneğini arttırmasına araçlar yardımcı olur. Modeli temel almak için kullanıcı tanımlı bilgi bankası bağlanma veya geçerli bilgileri sağlamak için web aramasını etkinleştirme gibi.
Konu Temsilci ile kullanıcı arasındaki sohbet oturumu. İş parçacıkları Mesajları saklar ve içeriği bir modelin bağlamına sığdırmak için kesmeyi otomatik olarak gerçekleştirir.
Mesaj Temsilci veya kullanıcı tarafından oluşturulan mesaj. İletiler metin, resim ve diğer dosyaları içerebilir. İletiler, İleti Dizisinde bir liste olarak depolanır.
Koş! Thread içeriğine göre bir aracı çalıştırmak için etkinleştirme. Aracı, yapılandırmasını ve İş Parçacığının Mesajlarını kullanarak modelleri ve araçları çağırıp görevleri gerçekleştirir. Bir Çalıştırma'nın parçası olarak, aracı İletileri ipliğe ekler.
Adımı Çalıştır Ajanın bir çalışmanın parçası olarak uyguladığı adımların ayrıntılı listesi. Aracı, çalışması sırasında araçları çağırabilir veya mesajlar oluşturabilir. Çalıştırma Adımlarını incelemek, aracının sonuçlarına nasıl ulaştığını anlamanıza olanak tanır.

Python paketlerini yüklemek için aşağıdaki komutları çalıştırın.

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

Ardından API isteklerinizin kimliğini doğrulamak ve programı çalıştırmak için az login komutunu kullanarak Azure aboneliğinizde oturum açın.

az login

Aracı oluşturup çalıştırmak için aşağıdaki kodu kullanın. Bu kodu çalıştırmak için projenizin uç noktasını almanız gerekir. Bu dize şu biçimdedir:

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

Tavsiye

Projenize genel bakış bölümünde uç noktanızı, Azure AI Foundry portalındaki Kitaplıklar>, Azure AI Foundry altında bulabilirsiniz. Azure AI Foundry portalında uç noktayı gösteren ekran görüntüsü.

Örneğin, uç noktanız şuna benzer olabilir:

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

Bu uç noktayı adlı PROJECT_ENDPOINTbir ortam değişkeni olarak ayarlayın.

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

| Başvuru belgeleri | Örnekler | Kütüphane kaynak kodu | Paket (npm) |

Önkoşullar

  • Aracı ortamını ayarlama
  • SDK veya Aracı Oyun Alanı'nı kullanarak aracı oluşturması veya düzenlemesi gereken her ekip üyesine Azure AI KullanıcıRBAC rolünü atayın
    • Bu rol proje kapsamında atanmalıdır
    • Gerekli en düşük izinler: aracılar/*/okuma, aracılar/*/eylem, aracılar/*/delete

Ajana yapılandır ve çalıştır

Bileşen Açıklama
Temsilci Araçlarla yapay zeka modellerini kullanan özel yapay zeka.
Araç Bir çalışanın sohbet esnasında güvenilir ve doğru yanıt verme yeteneğini arttırmasına araçlar yardımcı olur. Modeli temel almak için kullanıcı tanımlı bilgi bankası bağlanma veya geçerli bilgileri sağlamak için web aramasını etkinleştirme gibi.
Konu Temsilci ile kullanıcı arasındaki sohbet oturumu. İş parçacıkları Mesajları saklar ve içeriği bir modelin bağlamına sığdırmak için kesmeyi otomatik olarak gerçekleştirir.
Mesaj Temsilci veya kullanıcı tarafından oluşturulan mesaj. İletiler metin, resim ve diğer dosyaları içerebilir. İletiler, İleti Dizisinde bir liste olarak depolanır.
Koş! Thread içeriğine göre bir aracı çalıştırmak için etkinleştirme. Aracı, yapılandırmasını ve İş Parçacığının Mesajlarını kullanarak modelleri ve araçları çağırıp görevleri gerçekleştirir. Bir Çalıştırma'nın parçası olarak, aracı İletileri ipliğe ekler.
Adımı Çalıştır Ajanın bir çalışmanın parçası olarak uyguladığı adımların ayrıntılı listesi. Aracı, çalışması sırasında araçları çağırabilir veya mesajlar oluşturabilir. Çalıştırma Adımlarını incelemek, aracının sonuçlarına nasıl ulaştığını anlamanıza olanak tanır.

Bu koddaki anahtar nesneler şunlardır:

İlk olarak, komutunu çalıştırarak yeni bir proje başlatın:

npm init -y

Gerekli npm paketlerini yüklemek için aşağıdaki komutları çalıştırın.

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

Ardından API isteklerinizin kimliğini doğrulamak ve programı çalıştırmak için az login komutunu kullanarak Azure aboneliğinizde oturum açın.

az login

Aşağıdaki kodu kullanarak, CSV veri dosyasını karşıya yükleyen ve ardından bu verilerden bir çubuk grafik oluşturan bir aracı oluşturun ve çalıştırın. Bu kodu çalıştırmak için projenizin uç noktasını almanız gerekir. Bu dize şu biçimdedir:

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

Tavsiye

Projeniz için Azure AI Foundry portalındaki genel bakış bölümünde, Kitaplıklar altında Azure AI Foundry'da uç noktanızı bulabilirsiniz. Azure AI Foundry portalında uç noktayı gösteren ekran görüntüsü.

Örneğin uç noktanız şuna benzer:

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

Bu uç noktayı bir dosyada adlı PROJECT_ENDPOINT bir .env ortam değişkeni olarak ayarlayın.

Önemli

  • Bu hızlı başlangıç kodu, hassas yapılandırma için ortam değişkenlerini kullanır. Dosyanızda .env listelendiğinden emin olarak, .env dosyanızı hiçbir zaman sürüm denetimine işlemeyin .gitignore.
  • Unutmayın: Hassas bilgileri yanlışlıkla işlerseniz, bu kimlik bilgilerinin gizliliğinin ihlal edilmiş olduğunu göz önünde bulundurun ve bunları hemen döndürün.

Ardından bir index.js dosya oluşturun ve aşağıdaki kodu yapıştırın:

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

kullanarak node index.jskodu çalıştırın. Bu kod, TRANSPORTATION sektöründeki işletim kârı için yüklenen CSV dosyasından bir çubuk grafik PNG görüntü dosyası oluşturur ve dosyayı size sunar. Tam örnek kaynak kodu kullanılabilir.

| Başvuru belgeleri |

Önkoşullar

  • Aracı ortamını ayarlama
  • SDK veya Aracı Oyun Alanı'nı kullanarak aracı oluşturması veya düzenlemesi gereken her ekip üyesine Azure AI KullanıcıRBAC rolünü atayın
    • Bu rol proje kapsamında atanmalıdır
    • Gerekli en düşük izinler: aracılar/*/okuma, aracılar/*/eylem, aracılar/*/delete

Ajana yapılandır ve çalıştır

Bileşen Açıklama
Temsilci Araçlarla birlikte kullanılan yapay zeka modellerini içeren kişiselleştirilmiş yapay zeka.
Araç Bir çalışanın sohbet esnasında güvenilir ve doğru yanıt verme yeteneğini arttırmasına araçlar yardımcı olur. Modeli temel almak için kullanıcı tanımlı bilgi bankası bağlanma veya geçerli bilgileri sağlamak için web aramasını etkinleştirme gibi.
Konu Temsilci ile kullanıcı arasındaki sohbet oturumu. İş parçacıkları Mesajları saklar ve içeriği bir modelin bağlamına sığdırmak için kesmeyi otomatik olarak gerçekleştirir.
Mesaj Temsilci veya kullanıcı tarafından oluşturulan mesaj. İletiler metin, resim ve diğer dosyaları içerebilir. İletiler, İleti Dizisinde bir liste olarak depolanır.
Koş! Thread içeriğine göre bir aracı çalıştırmak için etkinleştirme. Aracı, yapılandırmasını ve İş Parçacığının Mesajlarını kullanarak modelleri ve araçları çağırıp görevleri gerçekleştirir. Bir Çalıştırma'nın parçası olarak, aracı İletileri ipliğe ekler.
Adımı Çalıştır Ajanın bir çalışmanın parçası olarak uyguladığı adımların ayrıntılı listesi. Aracı, çalışması sırasında araçları çağırabilir veya mesajlar oluşturabilir. Çalıştırma Adımlarını incelemek, aracının sonuçlarına nasıl ulaştığını anlamanıza olanak tanır.

API çağrı bilgileri

API isteklerinizin kimliğini doğrulamak için az login komutunu kullanarak Azure aboneliğinizde oturum açın.

az login

Ardından, API çağrılarına yetkilendirme sağlamak için Entra Id belirtecini getirmeniz gerekir. CLI komutunu kullanarak belirteci getirin:

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

Erisim belirtecini bir ortam değişkeni olarak AGENT_TOKEN adıyla ayarlayın.

Azure AI Foundry Agent Service'e REST API çağrılarını başarıyla yapmak için uç noktayı aşağıdaki gibi kullanmanız gerekir:

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

Örneğin, uç noktanız şuna benzer olabilir:

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

Bu uç noktayı adlı AZURE_AI_FOUNDRY_PROJECT_ENDPOINTbir ortam değişkeni olarak ayarlayın.

Uyarı

  • api-version parametresi için GA API sürümü 2025-05-01 ve en son önizleme API sürümü 2025-05-15-preview. Önizleme aşamasındaki araçlar için önizleme API'sini kullanmanız gerekir.
  • API sürümünüzü $API_VERSION gibi bir ortam değişkeni yapmayı düşünün.

Bir aracı oluştur

Uyarı

Azure AI Aracıları Hizmeti ile model parametre için model dağıtım adı gerekir. Model dağıtım adınız temel alınan model adından farklıysa kodunuzu olarak "model": "{your-custom-model-deployment-name}"ayarlayabilirsiniz.

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

Bir konu oluştur

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

Konuya bir kullanıcı sorusu ekle

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

İpliği çalıştır

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

Çalıştırmanın durumunu kontrol et

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"

Temsilcinin yanıtını al

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