Delen via


Quickstart: Een nieuwe agent maken (preview)

Met azure AI Agent Service kunt u AI-agents maken die zijn afgestemd op uw behoeften via aangepaste instructies en uitgebreid met geavanceerde hulpprogramma's zoals code-interpreter en aangepaste functies.

Vereisten

Basisondersteuning voor het instellen van agents

Voordat u aan de slag gaat, moet u bepalen of u een basisagentinstallatie of een standaardagentinstallatie wilt uitvoeren. Azure AI Foundry biedt alleen ondersteuning voor het instellen van de basisagent.

Basisinstallatie: agents maken gebruik van zoek- en opslagbronnen met meerdere tenants die volledig worden beheerd door Microsoft. U hebt geen zichtbaarheid of controle over deze onderliggende Azure-resources. U kunt een basisinstallatie maken met behulp van de Azure AI Foundry-portal of een geautomatiseerde bicep-sjabloon.

Standaardinstallatie: agents maken gebruik van zoek- en opslagbronnen die eigendom zijn van één tenant. Met deze installatie hebt u volledige controle en zichtbaarheid van deze resources, maar er worden kosten in rekening gebracht op basis van uw gebruik. Standaardinstallatie kan alleen worden uitgevoerd met behulp van een geautomatiseerde bicep-sjabloon.

Belangrijk

De Azure AI Foundry-portal biedt momenteel alleen ondersteuning voor basisinstellingen. Als u een standaardagentinstallatie wilt uitvoeren, gebruikt u de andere tabbladen bovenaan het artikel voor meer informatie over de standaardagentconfiguratie.

Een hub en project maken in de Azure AI Foundry-portal

Als u een nieuwe hub en een nieuw project wilt maken, hebt u de rol Eigenaar of Inzender voor de resourcegroep of op een bestaande hub nodig. Als u geen hub kunt maken vanwege machtigingen, neemt u contact op met uw beheerder.

Voer de volgende stappen uit om een project te maken in Azure AI Foundry:

  1. Ga naar Azure AI Foundry. Als u zich in een project bevindt, selecteert u Azure AI Foundry linksboven op de pagina om naar de startpagina te gaan.

  2. Selecteer + Project maken.

  3. Voer een naam in voor het project.

  4. Als u een hub hebt, ziet u de hub die u het laatst hebt geselecteerd.

  5. Als u toegang hebt tot meer dan één hub, kunt u een andere hub selecteren in de vervolgkeuzelijst.

  6. Als u een nieuwe wilt maken, selecteert u Nieuwe hub maken en geeft u een naam op. Als u de standaardwaarden wilt aanpassen, raadpleegt u de documentatie van Azure AI Foundry.

    Schermopname van de pagina projectdetails in het dialoogvenster Project maken.

  7. Selecteer Maken.

Een model implementeren

  1. Meld u aan bij Azure AI Foundry.

  2. Ga naar uw project of maak een nieuw project in de Azure AI Foundry-portal.

  3. Selecteer agents in uw projectoverzicht, die zich onder Bouwen en aanpassen bevinden.

  4. Selecteer uw Azure OpenAI-resource.

    Een schermopname van het eerste scherm Agents.

  5. Selecteer een modelimplementatie voor de agent die u wilt gebruiken. Als u nog geen model hebt, wordt er een scherm geopend om een nieuw model te implementeren. Anders kunt u Een model implementeren selecteren.

    Een schermopname van het scherm voor modelselectie.

    Een schermopname van de beschikbare modellen.

De agentspeelplaats gebruiken

Met de agents-speeltuin kunt u agents verkennen, prototypen en testen zonder dat u code hoeft uit te voeren. Op deze pagina kunt u snel nieuwe ideeën herhalen en experimenteren.

  1. Selecteer uw agent in het scherm Maken en fouten opsporen in uw agents of maak een nieuwe met de nieuwe agent. In het deelvenster Setup aan de rechterkant kunt u de parameters en hulpprogramma's wijzigen.

    U kunt uw agent desgewenst een andere naam geven dan de agent die hiervoor is gegenereerd en instructies toevoegen om de prestaties te verbeteren. Geef uw agent duidelijke aanwijzingen voor wat u moet doen en hoe u dit doet. Neem specifieke taken, hun volgorde en eventuele speciale instructies op, zoals toon- of afspraakstijl.

    Een schermopname van het scherm Agents maken en fouten opsporen.

    Tip

    Uw agent heeft toegang tot meerdere hulpprogramma's, zoals code-interpreter , waarmee de mogelijkheden worden uitgebreid, zoals de mogelijkheid om op internet te zoeken met Bing, code uit te voeren en meer. Schuif in het deelvenster Setup omlaag naar kennis en actie en selecteer Toevoegen om de hulpprogramma's te zien die beschikbaar zijn voor gebruik. Een schermopname van de opties van het hulpprogramma Agents.

Zie ook

Bekijk de modellen die u met agents kunt gebruiken.

| ReferentiedocumentatieVoorbeeldenbibliotheek | | broncodepakket | (NuGet) |

Vereisten

Uw Azure AI Hub- en Agent-project instellen

In de volgende sectie ziet u hoe u de vereiste resources instelt om aan de slag te gaan met de Azure AI Agent-service:

  1. Een Azure AI Hub maken om uw app-omgeving en Azure-resources in te stellen.

  2. Als u een Azure AI-project maakt onder uw Hub, maakt u een eindpunt voor uw app om aan te roepen en stelt u app-services in voor toegang tot resources in uw tenant.

  3. Een Azure OpenAI-resource of een Azure AI Services-resource verbinden

Basis- of standaardagentinstellingen kiezen

Basisinstallatie: agents maken gebruik van zoek- en opslagbronnen met meerdere tenants die volledig worden beheerd door Microsoft. U hebt geen zichtbaarheid of controle over deze onderliggende Azure-resources.

Standaardinstallatie: agents maken gebruik van zoek- en opslagbronnen die eigendom zijn van één tenant. Met deze installatie hebt u volledige controle en zichtbaarheid van deze resources, maar er worden kosten in rekening gebracht op basis van uw gebruik.

Notitie

U kunt de volgende geautomatiseerde bicep-sjablonen gebruiken om een standaard- of basisagent uit te voeren. U kunt ook een basisagent maken met behulp van de Azure AI Foundry-portal. Azure AI Foundry biedt momenteel geen ondersteuning voor het instellen van de standaardagent.

Beschrijving en automatisch implementeren Diagram (klik om in te zoomen)
Implementeer een basisagentinstallatie die gebruikmaakt van beheerde identiteit voor verificatie. Resources voor de AI-hub, het AI-project, het opslagaccount en AI Services worden voor u gemaakt.

Het AI Services-account is verbonden met uw project en hub en er wordt een gpt-4o-minimodel geïmplementeerd in de regio Eastus. Een door Microsoft beheerde sleutelkluis wordt standaard gebruikt.

Implementeren op Azure
Een architectuurdiagram voor het instellen van de basisagent.
Implementeer een standaardagentinstallatie die gebruikmaakt van Beheerde identiteit voor verificatie.

Resources voor de AI-hub, het AI-project, de sleutelkluis, het opslagaccount, AI Services en AI Search worden voor u gemaakt.

De AI Services, AI Search, key vault en het opslagaccount zijn verbonden met uw project en hub. Er wordt een gpt-4o-minimodel geïmplementeerd in de regio Eastus.

Implementeren op Azure
Een architectuurdiagram voor het instellen van de standaardagent.

[Optioneel] Modelselectie in sjabloon voor automatisch implementeren

U kunt het model dat door uw agent wordt gebruikt aanpassen door de modelparameters te bewerken in de sjabloon voor automatisch implementeren. Als u een ander model wilt implementeren, moet u ten minste de modelName en modelVersion parameters bijwerken.

Standaard wordt de implementatiesjabloon geconfigureerd met de volgende waarden:

Modelparameter Standaardwaarde
modelName gpt-4o-mini
modelOpmaak OpenAI (voor Azure OpenAI)
modelVersion 2024-07-18
modelSkuName GlobalStandard
modelLocation eastus

Belangrijk

Wijzig de parameter modelFormat niet.

De sjablonen ondersteunen alleen de implementatie van Azure OpenAI-modellen. Bekijk welke Azure OpenAI-modellen worden ondersteund in de azure AI Agent Service-modelondersteuningsdocumentatie .

[Optioneel] Uw eigen resources gebruiken tijdens het instellen van de agent

Notitie

Als u een bestaande AI Services- of Azure OpenAI-resource gebruikt, wordt er geen model geïmplementeerd. U kunt een model implementeren in de resource nadat de installatie van de agent is voltooid.

Gebruik een bestaande AI Services-, Azure OpenAI-, AI Search- en/of Azure Blob Storage-resource door de volledige arm-resource-id op te geven in het parameterbestand:

  • aiServiceAccountResourceId
  • aiSearchServiceResourceId
  • aiStorageAccountResourceId

Als u een bestaande Azure OpenAI-resource wilt gebruiken, moet u de aiServiceAccountResourceId parameters in het parameterbestand bijwerken.aiServiceKind De aiServiceKind parameter moet worden ingesteld op AzureOpenAI.

Zie voor meer informatie hoe u uw eigen resources gebruikt.

Een agent configureren en uitvoeren

Onderdeel Beschrijving
Agent Aangepaste AI die AI-modellen gebruikt in combinatie met hulpprogramma's.
Hulpprogramma Hulpprogramma's helpen de mogelijkheid van een agent om betrouwbaar en nauwkeurig te reageren tijdens het gesprek. Zoals het maken van verbinding met door de gebruiker gedefinieerde Knowledge Bases om het model te baseren of het mogelijk maken van zoeken op internet actuele informatie te bieden.
Thread Een gesprekssessie tussen een agent en een gebruiker. Threads slaan berichten op en verwerken automatisch afkapping zodat inhoud in de context van een model past.
Bericht Een bericht dat is gemaakt door een agent of een gebruiker. Berichten kunnen tekst, afbeeldingen en andere bestanden bevatten. Berichten worden opgeslagen als een lijst op de thread.
Uitvoeren Activering van een agent die wordt uitgevoerd op basis van de inhoud van Thread. De agent gebruikt de configuratie en berichten van Thread om taken uit te voeren door modellen en hulpprogramma's aan te roepen. Als onderdeel van een run voegt de agent berichten toe aan de thread.
Stap uitvoeren Een gedetailleerde lijst met stappen die de agent heeft uitgevoerd als onderdeel van een uitvoering. Een agent kan hulpprogramma's aanroepen of berichten maken tijdens de uitvoering. Als u de uitvoeringsstappen bekijkt, kunt u begrijpen hoe de agent de resultaten krijgt.

Installeer het .NET-pakket in uw project. Als u bijvoorbeeld de .NET CLI gebruikt, voert u de volgende opdracht uit.

dotnet add package Azure.AI.Projects
dotnet add package Azure.Identity

Als u vervolgens uw API-aanvragen wilt verifiëren en het programma wilt uitvoeren, gebruikt u de opdracht az login om u aan te melden bij uw Azure-abonnement.

az login

Gebruik de volgende code om een agent te maken en uit te voeren. Als u deze code wilt uitvoeren, moet u een verbindingsreeks maken met behulp van gegevens uit uw project. Deze tekenreeks heeft de volgende notatie:

<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>

Tip

U vindt uw verbindingsreeks ook in het overzicht van uw project in de Azure AI Foundry-portal, onder Projectdetails>Project verbindingsreeks. Een schermopname van de verbindingsreeks in de Azure AI Foundry-portal.

HostName kunt u vinden door naar uw discovery_url te navigeren en de voorloop https:// - en volgvolging te /discoveryverwijderen. Voer de volgende CLI-opdracht uit om uw discovery_urlte vinden:

az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url

Uw verbindingsreeks ziet er bijvoorbeeld ongeveer als volgt uit:

eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name

Stel deze verbindingsreeks in als een omgevingsvariabele met de naam PROJECT_CONNECTION_STRING.

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

#nullable disable

using Azure.Identity;

namespace Azure.AI.Projects.Tests;

public class Sample_Agent
{
    static async Task Main()
    {
        var connectionString = Environment.GetEnvironmentVariable("PROJECT_CONNECTION_STRING");

        AgentsClient client = new AgentsClient(connectionString, new DefaultAzureCredential());

        // Step 1: Create an agent
        Response<Agent> agentResponse = await client.CreateAgentAsync(
            model: "gpt-4o-mini",
            name: "My Agent",
            instructions: "You are a helpful agent.",
            tools: new List<ToolDefinition> { new CodeInterpreterToolDefinition() });
        Agent agent = agentResponse.Value;

        // Intermission: agent should now be listed

        Response<PageableList<Agent>> agentListResponse = await client.GetAgentsAsync();

        //// Step 2: Create a thread
        Response<AgentThread> threadResponse = await client.CreateThreadAsync();
        AgentThread thread = threadResponse.Value;

        // Step 3: Add a message to a thread
        Response<ThreadMessage> messageResponse = await client.CreateMessageAsync(
            thread.Id,
            MessageRole.User,
            "I need to solve the equation `3x + 11 = 14`. Can you help me?");
        ThreadMessage message = messageResponse.Value;

        // Intermission: message is now correlated with thread
        // Intermission: listing messages will retrieve the message just added

        Response<PageableList<ThreadMessage>> messagesListResponse = await client.GetMessagesAsync(thread.Id);
        //Assert.That(messagesListResponse.Value.Data[0].Id == message.Id);

        // Step 4: Run the agent
        Response<ThreadRun> runResponse = await client.CreateRunAsync(
            thread.Id,
            agent.Id,
            additionalInstructions: "");
        ThreadRun run = runResponse.Value;

        do
        {
            await Task.Delay(TimeSpan.FromMilliseconds(500));
            runResponse = await client.GetRunAsync(thread.Id, runResponse.Value.Id);
        }
        while (runResponse.Value.Status == RunStatus.Queued
            || runResponse.Value.Status == RunStatus.InProgress);

        Response<PageableList<ThreadMessage>> afterRunMessagesResponse
            = await client.GetMessagesAsync(thread.Id);
        IReadOnlyList<ThreadMessage> messages = afterRunMessagesResponse.Value.Data;

        // Note: messages iterate from newest to oldest, with the messages[0] being the most recent
        foreach (ThreadMessage threadMessage in messages)
        {
            Console.Write($"{threadMessage.CreatedAt:yyyy-MM-dd HH:mm:ss} - {threadMessage.Role,10}: ");
            foreach (MessageContent contentItem in threadMessage.ContentItems)
            {
                if (contentItem is MessageTextContent textItem)
                {
                    Console.Write(textItem.Text);
                }
                else if (contentItem is MessageImageFileContent imageFileItem)
                {
                    Console.Write($"<image from ID: {imageFileItem.FileId}");
                }
                Console.WriteLine();
            }
        }
    }
}

| Referentiedocumentatie | Samples | Library source code | Package (PyPi) |

Vereisten

Uw Azure AI Hub- en Agent-project instellen

In de volgende sectie ziet u hoe u de vereiste resources instelt om aan de slag te gaan met de Azure AI Agent-service:

  1. Een Azure AI Hub maken om uw app-omgeving en Azure-resources in te stellen.

  2. Als u een Azure AI-project maakt onder uw Hub, maakt u een eindpunt voor uw app om aan te roepen en stelt u app-services in voor toegang tot resources in uw tenant.

  3. Een Azure OpenAI-resource of een Azure AI Services-resource verbinden

Basis- of standaardagentinstellingen kiezen

Basisinstallatie: agents maken gebruik van zoek- en opslagbronnen met meerdere tenants die volledig worden beheerd door Microsoft. U hebt geen zichtbaarheid of controle over deze onderliggende Azure-resources.

Standaardinstallatie: agents maken gebruik van zoek- en opslagbronnen die eigendom zijn van één tenant. Met deze installatie hebt u volledige controle en zichtbaarheid van deze resources, maar er worden kosten in rekening gebracht op basis van uw gebruik.

Notitie

U kunt de volgende geautomatiseerde bicep-sjablonen gebruiken om een standaard- of basisagent uit te voeren. U kunt ook een basisagent maken met behulp van de Azure AI Foundry-portal. Azure AI Foundry biedt momenteel geen ondersteuning voor het instellen van de standaardagent.

Beschrijving en automatisch implementeren Diagram (klik om in te zoomen)
Implementeer een basisagentinstallatie die gebruikmaakt van beheerde identiteit voor verificatie. Resources voor de AI-hub, het AI-project, het opslagaccount en AI Services worden voor u gemaakt.

Het AI Services-account is verbonden met uw project en hub en er wordt een gpt-4o-minimodel geïmplementeerd in de regio Eastus. Een door Microsoft beheerde sleutelkluis wordt standaard gebruikt.

Implementeren op Azure
Een architectuurdiagram voor het instellen van de basisagent.
Implementeer een standaardagentinstallatie die gebruikmaakt van Beheerde identiteit voor verificatie.

Resources voor de AI-hub, het AI-project, de sleutelkluis, het opslagaccount, AI Services en AI Search worden voor u gemaakt.

De AI Services, AI Search, key vault en het opslagaccount zijn verbonden met uw project en hub. Er wordt een gpt-4o-minimodel geïmplementeerd in de regio Eastus.

Implementeren op Azure
Een architectuurdiagram voor het instellen van de standaardagent.

[Optioneel] Modelselectie in sjabloon voor automatisch implementeren

U kunt het model dat door uw agent wordt gebruikt aanpassen door de modelparameters te bewerken in de sjabloon voor automatisch implementeren. Als u een ander model wilt implementeren, moet u ten minste de modelName en modelVersion parameters bijwerken.

Standaard wordt de implementatiesjabloon geconfigureerd met de volgende waarden:

Modelparameter Standaardwaarde
modelName gpt-4o-mini
modelOpmaak OpenAI (voor Azure OpenAI)
modelVersion 2024-07-18
modelSkuName GlobalStandard
modelLocation eastus

Belangrijk

Wijzig de parameter modelFormat niet.

De sjablonen ondersteunen alleen de implementatie van Azure OpenAI-modellen. Bekijk welke Azure OpenAI-modellen worden ondersteund in de azure AI Agent Service-modelondersteuningsdocumentatie .

[Optioneel] Uw eigen resources gebruiken tijdens het instellen van de agent

Notitie

Als u een bestaande AI Services- of Azure OpenAI-resource gebruikt, wordt er geen model geïmplementeerd. U kunt een model implementeren in de resource nadat de installatie van de agent is voltooid.

Gebruik een bestaande AI Services-, Azure OpenAI-, AI Search- en/of Azure Blob Storage-resource door de volledige arm-resource-id op te geven in het parameterbestand:

  • aiServiceAccountResourceId
  • aiSearchServiceResourceId
  • aiStorageAccountResourceId

Als u een bestaande Azure OpenAI-resource wilt gebruiken, moet u de aiServiceAccountResourceId parameters in het parameterbestand bijwerken.aiServiceKind De aiServiceKind parameter moet worden ingesteld op AzureOpenAI.

Zie voor meer informatie hoe u uw eigen resources gebruikt.

Een agent configureren en uitvoeren

Onderdeel Beschrijving
Agent Aangepaste AI die AI-modellen gebruikt in combinatie met hulpprogramma's.
Hulpprogramma Hulpprogramma's helpen de mogelijkheid van een agent om betrouwbaar en nauwkeurig te reageren tijdens het gesprek. Zoals het maken van verbinding met door de gebruiker gedefinieerde Knowledge Bases om het model te baseren of het mogelijk maken van zoeken op internet actuele informatie te bieden.
Thread Een gesprekssessie tussen een agent en een gebruiker. Threads slaan berichten op en verwerken automatisch afkapping zodat inhoud in de context van een model past.
Bericht Een bericht dat is gemaakt door een agent of een gebruiker. Berichten kunnen tekst, afbeeldingen en andere bestanden bevatten. Berichten worden opgeslagen als een lijst op de thread.
Uitvoeren Activering van een agent die wordt uitgevoerd op basis van de inhoud van Thread. De agent gebruikt de configuratie en berichten van Thread om taken uit te voeren door modellen en hulpprogramma's aan te roepen. Als onderdeel van een run voegt de agent berichten toe aan de thread.
Stap uitvoeren Een gedetailleerde lijst met stappen die de agent heeft uitgevoerd als onderdeel van een uitvoering. Een agent kan hulpprogramma's aanroepen of berichten maken tijdens de uitvoering. Als u de uitvoeringsstappen bekijkt, kunt u begrijpen hoe de agent de resultaten krijgt.

Voer de volgende opdrachten uit om de Python-pakketten te installeren.

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

Als u vervolgens uw API-aanvragen wilt verifiëren en het programma wilt uitvoeren, gebruikt u de opdracht az login om u aan te melden bij uw Azure-abonnement.

az login

Gebruik de volgende code om een agent te maken en uit te voeren. Als u deze code wilt uitvoeren, moet u een verbindingsreeks maken met behulp van gegevens uit uw project. Deze tekenreeks heeft de volgende notatie:

<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>

Tip

U vindt uw verbindingsreeks ook in het overzicht van uw project in de Azure AI Foundry-portal, onder Projectdetails>Project verbindingsreeks. Een schermopname van de verbindingsreeks in de Azure AI Foundry-portal.

HostName kunt u vinden door naar uw discovery_url te navigeren en de voorloop https:// - en volgvolging te /discoveryverwijderen. Voer de volgende CLI-opdracht uit om uw discovery_urlte vinden:

az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url

Uw verbindingsreeks ziet er bijvoorbeeld ongeveer als volgt uit:

eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name

Stel deze verbindingsreeks in als een omgevingsvariabele met de naam PROJECT_CONNECTION_STRING.

import os
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import CodeInterpreterTool
from azure.identity import DefaultAzureCredential
from typing import Any
from pathlib import Path

# Create an Azure AI Client from a connection string, copied from your Azure AI Foundry project.
# At the moment, it should be in the format "<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>"
# HostName can be found by navigating to your discovery_url and removing the leading "https://" and trailing "/discovery"
# To find your discovery_url, run the CLI command: az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
# Project Connection example: eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
# Customer needs to login to Azure subscription via Azure CLI and set the environment variables

project_client = AIProjectClient.from_connection_string(
    credential=DefaultAzureCredential(), conn_str=os.environ["PROJECT_CONNECTION_STRING"]
)

with project_client:
    # Create an instance of the CodeInterpreterTool
    code_interpreter = CodeInterpreterTool()

    # The CodeInterpreterTool needs to be included in creation of the agent
    agent = project_client.agents.create_agent(
        model="gpt-4o-mini",
        name="my-agent",
        instructions="You are helpful agent",
        tools=code_interpreter.definitions,
        tool_resources=code_interpreter.resources,
    )
    print(f"Created agent, agent ID: {agent.id}")

    # Create a thread
    thread = project_client.agents.create_thread()
    print(f"Created thread, thread ID: {thread.id}")

    # Create a message
    message = project_client.agents.create_message(
        thread_id=thread.id,
        role="user",
        content="Could you please create a bar chart for the operating profit using the following data and provide the file to me? Company A: $1.2 million, Company B: $2.5 million, Company C: $3.0 million, Company D: $1.8 million",
    )
    print(f"Created message, message ID: {message.id}")

    # Run the agent
    run = project_client.agents.create_and_process_run(thread_id=thread.id, assistant_id=agent.id)
    print(f"Run finished with status: {run.status}")

    if run.status == "failed":
        # Check if you got "Rate limit is exceeded.", then you want to get more quota
        print(f"Run failed: {run.last_error}")

    # Get messages from the thread
    messages = project_client.agents.list_messages(thread_id=thread.id)
    print(f"Messages: {messages}")

    # Get the last message from the sender
    last_msg = messages.get_last_text_message_by_role("assistant")
    if last_msg:
        print(f"Last Message: {last_msg.text.value}")

    # Generate an image file for the bar chart
    for image_content in messages.image_contents:
        print(f"Image File ID: {image_content.image_file.file_id}")
        file_name = f"{image_content.image_file.file_id}_image_file.png"
        project_client.agents.save_file(file_id=image_content.image_file.file_id, file_name=file_name)
        print(f"Saved image file to: {Path.cwd() / file_name}")

    # Print the file path(s) from the messages
    for file_path_annotation in messages.file_path_annotations:
        print(f"File Paths:")
        print(f"Type: {file_path_annotation.type}")
        print(f"Text: {file_path_annotation.text}")
        print(f"File ID: {file_path_annotation.file_path.file_id}")
        print(f"Start Index: {file_path_annotation.start_index}")
        print(f"End Index: {file_path_annotation.end_index}")
        project_client.agents.save_file(file_id=file_path_annotation.file_path.file_id, file_name=Path(file_path_annotation.text).name)

    # Delete the agent once done
    project_client.agents.delete_agent(agent.id)
    print("Deleted agent")

| Referentiedocumentatiebibliotheek | broncodepakket | (PyPi) |

Vereisten

Uw Azure AI Hub- en Agent-project instellen

In de volgende sectie ziet u hoe u de vereiste resources instelt om aan de slag te gaan met de Azure AI Agent-service:

  1. Een Azure AI Hub maken om uw app-omgeving en Azure-resources in te stellen.

  2. Als u een Azure AI-project maakt onder uw Hub, maakt u een eindpunt voor uw app om aan te roepen en stelt u app-services in voor toegang tot resources in uw tenant.

  3. Een Azure OpenAI-resource of een Azure AI Services-resource verbinden

Basis- of standaardagentinstellingen kiezen

Basisinstallatie: agents maken gebruik van zoek- en opslagbronnen met meerdere tenants die volledig worden beheerd door Microsoft. U hebt geen zichtbaarheid of controle over deze onderliggende Azure-resources.

Standaardinstallatie: agents maken gebruik van zoek- en opslagbronnen die eigendom zijn van één tenant. Met deze installatie hebt u volledige controle en zichtbaarheid van deze resources, maar er worden kosten in rekening gebracht op basis van uw gebruik.

Notitie

U kunt de volgende geautomatiseerde bicep-sjablonen gebruiken om een standaard- of basisagent uit te voeren. U kunt ook een basisagent maken met behulp van de Azure AI Foundry-portal. Azure AI Foundry biedt momenteel geen ondersteuning voor het instellen van de standaardagent.

Beschrijving en automatisch implementeren Diagram (klik om in te zoomen)
Implementeer een basisagentinstallatie die gebruikmaakt van beheerde identiteit voor verificatie. Resources voor de AI-hub, het AI-project, het opslagaccount en AI Services worden voor u gemaakt.

Het AI Services-account is verbonden met uw project en hub en er wordt een gpt-4o-minimodel geïmplementeerd in de regio Eastus. Een door Microsoft beheerde sleutelkluis wordt standaard gebruikt.

Implementeren op Azure
Een architectuurdiagram voor het instellen van de basisagent.
Implementeer een standaardagentinstallatie die gebruikmaakt van Beheerde identiteit voor verificatie.

Resources voor de AI-hub, het AI-project, de sleutelkluis, het opslagaccount, AI Services en AI Search worden voor u gemaakt.

De AI Services, AI Search, key vault en het opslagaccount zijn verbonden met uw project en hub. Er wordt een gpt-4o-minimodel geïmplementeerd in de regio Eastus.

Implementeren op Azure
Een architectuurdiagram voor het instellen van de standaardagent.

[Optioneel] Modelselectie in sjabloon voor automatisch implementeren

U kunt het model dat door uw agent wordt gebruikt aanpassen door de modelparameters te bewerken in de sjabloon voor automatisch implementeren. Als u een ander model wilt implementeren, moet u ten minste de modelName en modelVersion parameters bijwerken.

Standaard wordt de implementatiesjabloon geconfigureerd met de volgende waarden:

Modelparameter Standaardwaarde
modelName gpt-4o-mini
modelOpmaak OpenAI (voor Azure OpenAI)
modelVersion 2024-07-18
modelSkuName GlobalStandard
modelLocation eastus

Belangrijk

Wijzig de parameter modelFormat niet.

De sjablonen ondersteunen alleen de implementatie van Azure OpenAI-modellen. Bekijk welke Azure OpenAI-modellen worden ondersteund in de azure AI Agent Service-modelondersteuningsdocumentatie .

[Optioneel] Uw eigen resources gebruiken tijdens het instellen van de agent

Notitie

Als u een bestaande AI Services- of Azure OpenAI-resource gebruikt, wordt er geen model geïmplementeerd. U kunt een model implementeren in de resource nadat de installatie van de agent is voltooid.

Gebruik een bestaande AI Services-, Azure OpenAI-, AI Search- en/of Azure Blob Storage-resource door de volledige arm-resource-id op te geven in het parameterbestand:

  • aiServiceAccountResourceId
  • aiSearchServiceResourceId
  • aiStorageAccountResourceId

Als u een bestaande Azure OpenAI-resource wilt gebruiken, moet u de aiServiceAccountResourceId parameters in het parameterbestand bijwerken.aiServiceKind De aiServiceKind parameter moet worden ingesteld op AzureOpenAI.

Zie voor meer informatie hoe u uw eigen resources gebruikt.

Een agent configureren en uitvoeren

Onderdeel Beschrijving
Agent Aangepaste AI die AI-modellen gebruikt in combinatie met hulpprogramma's.
Hulpprogramma Hulpprogramma's helpen de mogelijkheid van een agent om betrouwbaar en nauwkeurig te reageren tijdens het gesprek. Zoals het maken van verbinding met door de gebruiker gedefinieerde Knowledge Bases om het model te baseren of het mogelijk maken van zoeken op internet actuele informatie te bieden.
Thread Een gesprekssessie tussen een agent en een gebruiker. Threads slaan berichten op en verwerken automatisch afkapping zodat inhoud in de context van een model past.
Bericht Een bericht dat is gemaakt door een agent of een gebruiker. Berichten kunnen tekst, afbeeldingen en andere bestanden bevatten. Berichten worden opgeslagen als een lijst op de thread.
Uitvoeren Activering van een agent die wordt uitgevoerd op basis van de inhoud van Thread. De agent gebruikt de configuratie en berichten van Thread om taken uit te voeren door modellen en hulpprogramma's aan te roepen. Als onderdeel van een run voegt de agent berichten toe aan de thread.
Stap uitvoeren Een gedetailleerde lijst met stappen die de agent heeft uitgevoerd als onderdeel van een uitvoering. Een agent kan hulpprogramma's aanroepen of berichten maken tijdens de uitvoering. Als u de uitvoeringsstappen bekijkt, kunt u begrijpen hoe de agent de resultaten krijgt.

Voer de volgende opdrachten uit om de Python-pakketten te installeren.

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

Als u vervolgens uw API-aanvragen wilt verifiëren en het programma wilt uitvoeren, gebruikt u de opdracht az login om u aan te melden bij uw Azure-abonnement.

az login

Gebruik de volgende code om een agent te maken en uit te voeren. Als u deze code wilt uitvoeren, moet u een verbindingsreeks maken met behulp van gegevens uit uw project. Deze tekenreeks heeft de volgende notatie:

<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>

Tip

U vindt uw verbindingsreeks ook in het overzicht van uw project in de Azure AI Foundry-portal, onder Projectdetails>Project verbindingsreeks. Een schermopname van de verbindingsreeks in de Azure AI Foundry-portal.

HostName kunt u vinden door naar uw discovery_url te navigeren en de voorloop https:// - en volgvolging te /discoveryverwijderen. Voer de volgende CLI-opdracht uit om uw discovery_urlte vinden:

az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url

Uw verbindingsreeks ziet er bijvoorbeeld ongeveer als volgt uit:

eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name

Stel deze verbindingsreeks in als een omgevingsvariabele met de naam PROJECT_CONNECTION_STRING.

import os, time
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from openai import AzureOpenAI


with AIProjectClient.from_connection_string(
    credential=DefaultAzureCredential(),
    conn_str=os.environ["PROJECT_CONNECTION_STRING"],
) as project_client:

    # Explicit type hinting for IntelliSense
    client: AzureOpenAI = project_client.inference.get_azure_openai_client(
        # The latest API version is 2024-10-01-preview
        api_version = os.environ.get("AZURE_OPENAI_API_VERSION"),
    )

    with client:
        agent = client.beta.assistants.create(
            model="gpt-4o-mini", name="my-agent", instructions="You are a helpful agent"
        )
        print(f"Created agent, agent ID: {agent.id}")

        thread = client.beta.threads.create()
        print(f"Created thread, thread ID: {thread.id}")

        message = client.beta.threads.messages.create(thread_id=thread.id, role="user", content="Hello, tell me a joke")
        print(f"Created message, message ID: {message.id}")

        run = client.beta.threads.runs.create(thread_id=thread.id, assistant_id=agent.id)

        # Poll the run while run status is queued or in progress
        while run.status in ["queued", "in_progress", "requires_action"]:
            time.sleep(1)  # Wait for a second
            run = client.beta.threads.runs.retrieve(thread_id=thread.id, run_id=run.id)
            print(f"Run status: {run.status}")

        client.beta.assistants.delete(agent.id)
        print("Deleted agent")

        messages = client.beta.threads.messages.list(thread_id=thread.id)
        print(f"Messages: {messages}")

| Referentiedocumentatie | Samples | Library source code | Package (npm) |

Vereisten

Uw Azure AI Hub- en Agent-project instellen

In de volgende sectie ziet u hoe u de vereiste resources instelt om aan de slag te gaan met de Azure AI Agent-service:

  1. Een Azure AI Hub maken om uw app-omgeving en Azure-resources in te stellen.

  2. Als u een Azure AI-project maakt onder uw Hub, maakt u een eindpunt voor uw app om aan te roepen en stelt u app-services in voor toegang tot resources in uw tenant.

  3. Een Azure OpenAI-resource of een Azure AI Services-resource verbinden

Basis- of standaardagentinstellingen kiezen

Basisinstallatie: agents maken gebruik van zoek- en opslagbronnen met meerdere tenants die volledig worden beheerd door Microsoft. U hebt geen zichtbaarheid of controle over deze onderliggende Azure-resources.

Standaardinstallatie: agents maken gebruik van zoek- en opslagbronnen die eigendom zijn van één tenant. Met deze installatie hebt u volledige controle en zichtbaarheid van deze resources, maar er worden kosten in rekening gebracht op basis van uw gebruik.

Notitie

U kunt de volgende geautomatiseerde bicep-sjablonen gebruiken om een standaard- of basisagent uit te voeren. U kunt ook een basisagent maken met behulp van de Azure AI Foundry-portal. Azure AI Foundry biedt momenteel geen ondersteuning voor het instellen van de standaardagent.

Beschrijving en automatisch implementeren Diagram (klik om in te zoomen)
Implementeer een basisagentinstallatie die gebruikmaakt van beheerde identiteit voor verificatie. Resources voor de AI-hub, het AI-project, het opslagaccount en AI Services worden voor u gemaakt.

Het AI Services-account is verbonden met uw project en hub en er wordt een gpt-4o-minimodel geïmplementeerd in de regio Eastus. Een door Microsoft beheerde sleutelkluis wordt standaard gebruikt.

Implementeren op Azure
Een architectuurdiagram voor het instellen van de basisagent.
Implementeer een standaardagentinstallatie die gebruikmaakt van Beheerde identiteit voor verificatie.

Resources voor de AI-hub, het AI-project, de sleutelkluis, het opslagaccount, AI Services en AI Search worden voor u gemaakt.

De AI Services, AI Search, key vault en het opslagaccount zijn verbonden met uw project en hub. Er wordt een gpt-4o-minimodel geïmplementeerd in de regio Eastus.

Implementeren op Azure
Een architectuurdiagram voor het instellen van de standaardagent.

[Optioneel] Modelselectie in sjabloon voor automatisch implementeren

U kunt het model dat door uw agent wordt gebruikt aanpassen door de modelparameters te bewerken in de sjabloon voor automatisch implementeren. Als u een ander model wilt implementeren, moet u ten minste de modelName en modelVersion parameters bijwerken.

Standaard wordt de implementatiesjabloon geconfigureerd met de volgende waarden:

Modelparameter Standaardwaarde
modelName gpt-4o-mini
modelOpmaak OpenAI (voor Azure OpenAI)
modelVersion 2024-07-18
modelSkuName GlobalStandard
modelLocation eastus

Belangrijk

Wijzig de parameter modelFormat niet.

De sjablonen ondersteunen alleen de implementatie van Azure OpenAI-modellen. Bekijk welke Azure OpenAI-modellen worden ondersteund in de azure AI Agent Service-modelondersteuningsdocumentatie .

[Optioneel] Uw eigen resources gebruiken tijdens het instellen van de agent

Notitie

Als u een bestaande AI Services- of Azure OpenAI-resource gebruikt, wordt er geen model geïmplementeerd. U kunt een model implementeren in de resource nadat de installatie van de agent is voltooid.

Gebruik een bestaande AI Services-, Azure OpenAI-, AI Search- en/of Azure Blob Storage-resource door de volledige arm-resource-id op te geven in het parameterbestand:

  • aiServiceAccountResourceId
  • aiSearchServiceResourceId
  • aiStorageAccountResourceId

Als u een bestaande Azure OpenAI-resource wilt gebruiken, moet u de aiServiceAccountResourceId parameters in het parameterbestand bijwerken.aiServiceKind De aiServiceKind parameter moet worden ingesteld op AzureOpenAI.

Zie voor meer informatie hoe u uw eigen resources gebruikt.

Een agent configureren en uitvoeren

Onderdeel Beschrijving
Agent Aangepaste AI die AI-modellen gebruikt in combinatie met hulpprogramma's.
Hulpprogramma Hulpprogramma's helpen de mogelijkheid van een agent om betrouwbaar en nauwkeurig te reageren tijdens het gesprek. Zoals het maken van verbinding met door de gebruiker gedefinieerde Knowledge Bases om het model te baseren of het mogelijk maken van zoeken op internet actuele informatie te bieden.
Thread Een gesprekssessie tussen een agent en een gebruiker. Threads slaan berichten op en verwerken automatisch afkapping zodat inhoud in de context van een model past.
Bericht Een bericht dat is gemaakt door een agent of een gebruiker. Berichten kunnen tekst, afbeeldingen en andere bestanden bevatten. Berichten worden opgeslagen als een lijst op de thread.
Uitvoeren Activering van een agent die wordt uitgevoerd op basis van de inhoud van Thread. De agent gebruikt de configuratie en berichten van Thread om taken uit te voeren door modellen en hulpprogramma's aan te roepen. Als onderdeel van een run voegt de agent berichten toe aan de thread.
Stap uitvoeren Een gedetailleerde lijst met stappen die de agent heeft uitgevoerd als onderdeel van een uitvoering. Een agent kan hulpprogramma's aanroepen of berichten maken tijdens de uitvoering. Als u de uitvoeringsstappen bekijkt, kunt u begrijpen hoe de agent de resultaten krijgt.

Voer de volgende opdrachten uit om de npm-pakketten te installeren.

npm install @azure/ai-projects
npm install @azure/identity

Als u vervolgens uw API-aanvragen wilt verifiëren en het programma wilt uitvoeren, gebruikt u de opdracht az login om u aan te melden bij uw Azure-abonnement.

az login

Gebruik de volgende code om een agent te maken en uit te voeren. Als u deze code wilt uitvoeren, moet u een verbindingsreeks maken met behulp van gegevens uit uw project. Deze tekenreeks heeft de volgende notatie:

<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>

Tip

U vindt uw verbindingsreeks ook in het overzicht van uw project in de Azure AI Foundry-portal, onder Projectdetails>Project verbindingsreeks. Een schermopname van de verbindingsreeks in de Azure AI Foundry-portal.

HostName kunt u vinden door naar uw discovery_url te navigeren en de voorloop https:// - en volgvolging te /discoveryverwijderen. Voer de volgende CLI-opdracht uit om uw discovery_urlte vinden:

az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url

Uw verbindingsreeks ziet er bijvoorbeeld ongeveer als volgt uit:

eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name

Stel deze verbindingsreeks in als een omgevingsvariabele met de naam PROJECT_CONNECTION_STRING.

// index.js

import {
  AIProjectsClient,
  DoneEvent,
  ErrorEvent,
  isOutputOfType,
  MessageStreamEvent,
  RunStreamEvent,
  ToolUtility,
} from "@azure/ai-projects";
import { DefaultAzureCredential } from "@azure/identity";

const connectionString =
  process.env["AZURE_AI_PROJECTS_CONNECTION_STRING"] || "<project connection string>";

if (!connectionString) {
  throw new Error("AZURE_AI_PROJECTS_CONNECTION_STRING must be set in the environment variables");
}

export async function main() {
  const client = AIProjectsClient.fromConnectionString(
    connectionString || "",
    new DefaultAzureCredential(),
  );

  // Step 1 code interpreter tool
  const codeInterpreterTool = ToolUtility.createCodeInterpreterTool();

  // Step 2 an agent
  const agent = await client.agents.createAgent("gpt-4o-mini", {
    name: "my-agent",
    instructions: "You are a helpful agent",
    tools: [codeInterpreterTool.definition],
    toolResources: codeInterpreterTool.resources,
  });

  // Step 3 a thread
  const thread = await client.agents.createThread();

  // Step 4 a message to thread
  await client.agents.createMessage(
    thread.id, {
    role: "user",
    content: "I need to solve the equation `3x + 11 = 14`. Can you help me?",
  });

  // Intermission is now correlated with thread
  // Intermission messages will retrieve the message just added

  // Step 5 the agent
  const streamEventMessages = await client.agents.createRun(thread.id, agent.id).stream();

  for await (const eventMessage of streamEventMessages) {
    switch (eventMessage.event) {
      case RunStreamEvent.ThreadRunCreated:
        break;
      case MessageStreamEvent.ThreadMessageDelta:
        {
          const messageDelta = eventMessage.data;
          messageDelta.delta.content.forEach((contentPart) => {
            if (contentPart.type === "text") {
              const textContent = contentPart;
              const textValue = textContent.text?.value || "No text";
            }
          });
        }
        break;

      case RunStreamEvent.ThreadRunCompleted:
        break;
      case ErrorEvent.Error:
        console.log(`An error occurred. Data ${eventMessage.data}`);
        break;
      case DoneEvent.Done:
        break;
    }
  }

  // 6. Print the messages from the agent
  const messages = await client.agents.listMessages(thread.id);

  // Messages iterate from oldest to newest
  // messages[0] is the most recent
  for (let i = messages.data.length - 1; i >= 0; i--) {
    const m = messages.data[i];
    if (isOutputOfType(m.content[0], "text")) {
      const textContent = m.content[0];
      console.log(`${textContent.text.value}`);
      console.log(`---------------------------------`);
    }
  }

  // 7. Delete the agent once done
  await client.agents.deleteAgent(agent.id);
}

main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

De uitvoer bevat de prompt en antwoorden.

I need to solve the equation `3x + 11 = 14`. Can you help me?
---------------------------------
Sure! I can help you solve the equation \(3x + 11 = 14\).

To solve this equation, we need to isolate the variable \(x\). Let's go ahead and solve it.
---------------------------------
The solution to the equation \(3x + 11 = 14\) is \(x = 1\). 

Therefore, the value of \(x\) that satisfies the equation is 1. 

Let me know if you need help with anything else!
---------------------------------

| Referentiedocumentatie | Samples | Library source code | Package (npm) |

Vereisten

Uw Azure AI Hub- en Agent-project instellen

In de volgende sectie ziet u hoe u de vereiste resources instelt om aan de slag te gaan met de Azure AI Agent-service:

  1. Een Azure AI Hub maken om uw app-omgeving en Azure-resources in te stellen.

  2. Als u een Azure AI-project maakt onder uw Hub, maakt u een eindpunt voor uw app om aan te roepen en stelt u app-services in voor toegang tot resources in uw tenant.

  3. Een Azure OpenAI-resource of een Azure AI Services-resource verbinden

Basis- of standaardagentinstellingen kiezen

Basisinstallatie: agents maken gebruik van zoek- en opslagbronnen met meerdere tenants die volledig worden beheerd door Microsoft. U hebt geen zichtbaarheid of controle over deze onderliggende Azure-resources.

Standaardinstallatie: agents maken gebruik van zoek- en opslagbronnen die eigendom zijn van één tenant. Met deze installatie hebt u volledige controle en zichtbaarheid van deze resources, maar er worden kosten in rekening gebracht op basis van uw gebruik.

Notitie

U kunt de volgende geautomatiseerde bicep-sjablonen gebruiken om een standaard- of basisagent uit te voeren. U kunt ook een basisagent maken met behulp van de Azure AI Foundry-portal. Azure AI Foundry biedt momenteel geen ondersteuning voor het instellen van de standaardagent.

Beschrijving en automatisch implementeren Diagram (klik om in te zoomen)
Implementeer een basisagentinstallatie die gebruikmaakt van beheerde identiteit voor verificatie. Resources voor de AI-hub, het AI-project, het opslagaccount en AI Services worden voor u gemaakt.

Het AI Services-account is verbonden met uw project en hub en er wordt een gpt-4o-minimodel geïmplementeerd in de regio Eastus. Een door Microsoft beheerde sleutelkluis wordt standaard gebruikt.

Implementeren op Azure
Een architectuurdiagram voor het instellen van de basisagent.
Implementeer een standaardagentinstallatie die gebruikmaakt van Beheerde identiteit voor verificatie.

Resources voor de AI-hub, het AI-project, de sleutelkluis, het opslagaccount, AI Services en AI Search worden voor u gemaakt.

De AI Services, AI Search, key vault en het opslagaccount zijn verbonden met uw project en hub. Er wordt een gpt-4o-minimodel geïmplementeerd in de regio Eastus.

Implementeren op Azure
Een architectuurdiagram voor het instellen van de standaardagent.

[Optioneel] Modelselectie in sjabloon voor automatisch implementeren

U kunt het model dat door uw agent wordt gebruikt aanpassen door de modelparameters te bewerken in de sjabloon voor automatisch implementeren. Als u een ander model wilt implementeren, moet u ten minste de modelName en modelVersion parameters bijwerken.

Standaard wordt de implementatiesjabloon geconfigureerd met de volgende waarden:

Modelparameter Standaardwaarde
modelName gpt-4o-mini
modelOpmaak OpenAI (voor Azure OpenAI)
modelVersion 2024-07-18
modelSkuName GlobalStandard
modelLocation eastus

Belangrijk

Wijzig de parameter modelFormat niet.

De sjablonen ondersteunen alleen de implementatie van Azure OpenAI-modellen. Bekijk welke Azure OpenAI-modellen worden ondersteund in de azure AI Agent Service-modelondersteuningsdocumentatie .

[Optioneel] Uw eigen resources gebruiken tijdens het instellen van de agent

Notitie

Als u een bestaande AI Services- of Azure OpenAI-resource gebruikt, wordt er geen model geïmplementeerd. U kunt een model implementeren in de resource nadat de installatie van de agent is voltooid.

Gebruik een bestaande AI Services-, Azure OpenAI-, AI Search- en/of Azure Blob Storage-resource door de volledige arm-resource-id op te geven in het parameterbestand:

  • aiServiceAccountResourceId
  • aiSearchServiceResourceId
  • aiStorageAccountResourceId

Als u een bestaande Azure OpenAI-resource wilt gebruiken, moet u de aiServiceAccountResourceId parameters in het parameterbestand bijwerken.aiServiceKind De aiServiceKind parameter moet worden ingesteld op AzureOpenAI.

Zie voor meer informatie hoe u uw eigen resources gebruikt.

Een agent configureren en uitvoeren

Onderdeel Beschrijving
Agent Aangepaste AI die AI-modellen gebruikt in combinatie met hulpprogramma's.
Hulpprogramma Hulpprogramma's helpen de mogelijkheid van een agent om betrouwbaar en nauwkeurig te reageren tijdens het gesprek. Zoals het maken van verbinding met door de gebruiker gedefinieerde Knowledge Bases om het model te baseren of het mogelijk maken van zoeken op internet actuele informatie te bieden.
Thread Een gesprekssessie tussen een agent en een gebruiker. Threads slaan berichten op en verwerken automatisch afkapping zodat inhoud in de context van een model past.
Bericht Een bericht dat is gemaakt door een agent of een gebruiker. Berichten kunnen tekst, afbeeldingen en andere bestanden bevatten. Berichten worden opgeslagen als een lijst op de thread.
Uitvoeren Activering van een agent die wordt uitgevoerd op basis van de inhoud van Thread. De agent gebruikt de configuratie en berichten van Thread om taken uit te voeren door modellen en hulpprogramma's aan te roepen. Als onderdeel van een run voegt de agent berichten toe aan de thread.
Stap uitvoeren Een gedetailleerde lijst met stappen die de agent heeft uitgevoerd als onderdeel van een uitvoering. Een agent kan hulpprogramma's aanroepen of berichten maken tijdens de uitvoering. Als u de uitvoeringsstappen bekijkt, kunt u begrijpen hoe de agent de resultaten krijgt.

Voer de volgende opdrachten uit om de npm-pakketten te installeren.

npm install @azure/ai-projects
npm install @azure/identity

Als u vervolgens uw API-aanvragen wilt verifiëren en het programma wilt uitvoeren, gebruikt u de opdracht az login om u aan te melden bij uw Azure-abonnement.

az login

Gebruik de volgende code om een agent te maken en uit te voeren. Als u deze code wilt uitvoeren, moet u een verbindingsreeks maken met behulp van gegevens uit uw project. Deze tekenreeks heeft de volgende notatie:

<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>

Tip

U vindt uw verbindingsreeks ook in het overzicht van uw project in de Azure AI Foundry-portal, onder Projectdetails>Project verbindingsreeks. Een schermopname van de verbindingsreeks in de Azure AI Foundry-portal.

HostName kunt u vinden door naar uw discovery_url te navigeren en de voorloop https:// - en volgvolging te /discoveryverwijderen. Voer de volgende CLI-opdracht uit om uw discovery_urlte vinden:

az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url

Uw verbindingsreeks ziet er bijvoorbeeld ongeveer als volgt uit:

eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name

Stel deze verbindingsreeks in als een omgevingsvariabele met de naam PROJECT_CONNECTION_STRING.

// index.ts

import type {
  MessageDeltaChunk,
  MessageDeltaTextContent,
  MessageTextContentOutput,
} from "@azure/ai-projects";
import {
  AIProjectsClient,
  DoneEvent,
  ErrorEvent,
  isOutputOfType,
  MessageStreamEvent,
  RunStreamEvent,
  ToolUtility,
} from "@azure/ai-projects";
import { DefaultAzureCredential } from "@azure/identity";

const connectionString =
  process.env["AZURE_AI_PROJECTS_CONNECTION_STRING"] || "<project connection string>";

if (!connectionString) {
  throw new Error("AZURE_AI_PROJECTS_CONNECTION_STRING must be set in the environment variables");
}

export async function main(): Promise<void> {
  const client = AIProjectsClient.fromConnectionString(
    connectionString || "",
    new DefaultAzureCredential(),
  );

  // Step 1: Create code interpreter tool
  const codeInterpreterTool = ToolUtility.createCodeInterpreterTool();

  // Step 2: Create an agent
  const agent = await client.agents.createAgent("gpt-4o-mini", {
    name: "my-agent",
    instructions: "You are a helpful agent",
    tools: [codeInterpreterTool.definition],
    toolResources: codeInterpreterTool.resources,
  });

  // Step 3: Create a thread
  const thread = await client.agents.createThread();

  // Step 4: Add a message to thread
  await client.agents.createMessage(
    thread.id, {
    role: "user",
    content: "I need to solve the equation `3x + 11 = 14`. Can you help me?",
  });

  // Intermission: message is now correlated with thread
  // Intermission: listing messages will retrieve the message just added

  // Step 5: Run the agent
  const streamEventMessages = await client.agents.createRun(thread.id, agent.id).stream();

  for await (const eventMessage of streamEventMessages) {
    switch (eventMessage.event) {
      case RunStreamEvent.ThreadRunCreated:
        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";
            }
          });
        }
        break;

      case RunStreamEvent.ThreadRunCompleted:
        break;
      case ErrorEvent.Error:
        console.log(`An error occurred. Data ${eventMessage.data}`);
        break;
      case DoneEvent.Done:
        break;
    }
  }

  // 6. Print the messages from the agent
  const messages = await client.agents.listMessages(thread.id);

  // Messages iterate from oldest to newest
  // messages[0] is the most recent
  for (let i = messages.data.length - 1; i >= 0; i--) {
    const m = messages.data[i];
    if (isOutputOfType<MessageTextContentOutput>(m.content[0], "text")) {
      const textContent = m.content[0] as MessageTextContentOutput;
      console.log(`${textContent.text.value}`);
      console.log(`---------------------------------`);
    }
  }

  // 7. Delete the agent once done
  await client.agents.deleteAgent(agent.id);
}

main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

De uitvoer bevat de prompt en antwoorden.

I need to solve the equation `3x + 11 = 14`. Can you help me?
---------------------------------
Sure! I can help you solve the equation \(3x + 11 = 14\).

To solve this equation, we need to isolate the variable \(x\). Let's go ahead and solve it.
---------------------------------
The solution to the equation \(3x + 11 = 14\) is \(x = 1\). 

Therefore, the value of \(x\) that satisfies the equation is 1. 

Let me know if you need help with anything else!
---------------------------------

| Referentiedocumentatie |

Vereisten

Uw Azure AI Hub- en Agent-project instellen

In de volgende sectie ziet u hoe u de vereiste resources instelt om aan de slag te gaan met de Azure AI Agent-service:

  1. Een Azure AI Hub maken om uw app-omgeving en Azure-resources in te stellen.

  2. Als u een Azure AI-project maakt onder uw Hub, maakt u een eindpunt voor uw app om aan te roepen en stelt u app-services in voor toegang tot resources in uw tenant.

  3. Een Azure OpenAI-resource of een Azure AI Services-resource verbinden

Basis- of standaardagentinstellingen kiezen

Basisinstallatie: agents maken gebruik van zoek- en opslagbronnen met meerdere tenants die volledig worden beheerd door Microsoft. U hebt geen zichtbaarheid of controle over deze onderliggende Azure-resources.

Standaardinstallatie: agents maken gebruik van zoek- en opslagbronnen die eigendom zijn van één tenant. Met deze installatie hebt u volledige controle en zichtbaarheid van deze resources, maar er worden kosten in rekening gebracht op basis van uw gebruik.

Notitie

U kunt de volgende geautomatiseerde bicep-sjablonen gebruiken om een standaard- of basisagent uit te voeren. U kunt ook een basisagent maken met behulp van de Azure AI Foundry-portal. Azure AI Foundry biedt momenteel geen ondersteuning voor het instellen van de standaardagent.

Beschrijving en automatisch implementeren Diagram (klik om in te zoomen)
Implementeer een basisagentinstallatie die gebruikmaakt van beheerde identiteit voor verificatie. Resources voor de AI-hub, het AI-project, het opslagaccount en AI Services worden voor u gemaakt.

Het AI Services-account is verbonden met uw project en hub en er wordt een gpt-4o-minimodel geïmplementeerd in de regio Eastus. Een door Microsoft beheerde sleutelkluis wordt standaard gebruikt.

Implementeren op Azure
Een architectuurdiagram voor het instellen van de basisagent.
Implementeer een standaardagentinstallatie die gebruikmaakt van Beheerde identiteit voor verificatie.

Resources voor de AI-hub, het AI-project, de sleutelkluis, het opslagaccount, AI Services en AI Search worden voor u gemaakt.

De AI Services, AI Search, key vault en het opslagaccount zijn verbonden met uw project en hub. Er wordt een gpt-4o-minimodel geïmplementeerd in de regio Eastus.

Implementeren op Azure
Een architectuurdiagram voor het instellen van de standaardagent.

[Optioneel] Modelselectie in sjabloon voor automatisch implementeren

U kunt het model dat door uw agent wordt gebruikt aanpassen door de modelparameters te bewerken in de sjabloon voor automatisch implementeren. Als u een ander model wilt implementeren, moet u ten minste de modelName en modelVersion parameters bijwerken.

Standaard wordt de implementatiesjabloon geconfigureerd met de volgende waarden:

Modelparameter Standaardwaarde
modelName gpt-4o-mini
modelOpmaak OpenAI (voor Azure OpenAI)
modelVersion 2024-07-18
modelSkuName GlobalStandard
modelLocation eastus

Belangrijk

Wijzig de parameter modelFormat niet.

De sjablonen ondersteunen alleen de implementatie van Azure OpenAI-modellen. Bekijk welke Azure OpenAI-modellen worden ondersteund in de azure AI Agent Service-modelondersteuningsdocumentatie .

[Optioneel] Uw eigen resources gebruiken tijdens het instellen van de agent

Notitie

Als u een bestaande AI Services- of Azure OpenAI-resource gebruikt, wordt er geen model geïmplementeerd. U kunt een model implementeren in de resource nadat de installatie van de agent is voltooid.

Gebruik een bestaande AI Services-, Azure OpenAI-, AI Search- en/of Azure Blob Storage-resource door de volledige arm-resource-id op te geven in het parameterbestand:

  • aiServiceAccountResourceId
  • aiSearchServiceResourceId
  • aiStorageAccountResourceId

Als u een bestaande Azure OpenAI-resource wilt gebruiken, moet u de aiServiceAccountResourceId parameters in het parameterbestand bijwerken.aiServiceKind De aiServiceKind parameter moet worden ingesteld op AzureOpenAI.

Zie voor meer informatie hoe u uw eigen resources gebruikt.

Een agent configureren en uitvoeren

Onderdeel Beschrijving
Agent Aangepaste AI die AI-modellen gebruikt in combinatie met hulpprogramma's.
Hulpprogramma Hulpprogramma's helpen de mogelijkheid van een agent om betrouwbaar en nauwkeurig te reageren tijdens het gesprek. Zoals het maken van verbinding met door de gebruiker gedefinieerde Knowledge Bases om het model te baseren of het mogelijk maken van zoeken op internet actuele informatie te bieden.
Thread Een gesprekssessie tussen een agent en een gebruiker. Threads slaan berichten op en verwerken automatisch afkapping zodat inhoud in de context van een model past.
Bericht Een bericht dat is gemaakt door een agent of een gebruiker. Berichten kunnen tekst, afbeeldingen en andere bestanden bevatten. Berichten worden opgeslagen als een lijst op de thread.
Uitvoeren Activering van een agent die wordt uitgevoerd op basis van de inhoud van Thread. De agent gebruikt de configuratie en berichten van Thread om taken uit te voeren door modellen en hulpprogramma's aan te roepen. Als onderdeel van een run voegt de agent berichten toe aan de thread.
Stap uitvoeren Een gedetailleerde lijst met stappen die de agent heeft uitgevoerd als onderdeel van een uitvoering. Een agent kan hulpprogramma's aanroepen of berichten maken tijdens de uitvoering. Als u de uitvoeringsstappen bekijkt, kunt u begrijpen hoe de agent de resultaten krijgt.

Als u uw API-aanvragen wilt verifiëren, gebruikt u de opdracht az login om u aan te melden bij uw Azure-abonnement.

az login

Vervolgens moet u het Entra ID-token ophalen om op te geven als autorisatie voor de API-aanroepen. Haal het token op met behulp van de CLI-opdracht:

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

Stel het toegangstoken in als een omgevingsvariabele met de naam AZURE_AI_AGENTS_TOKEN.

Als u REST API-aanroepen naar Azure AI Agents Service wilt uitvoeren, moet u het eindpunt als volgt gebruiken:

https://<HostName>/agents/v1.0/subscriptions/<AzureSubscriptionId>/resourceGroups/<ResourceGroup>/providers/Microsoft.MachineLearningServices/workspaces/<ProjectName>

HostName kunt u vinden door naar uw discovery_url te navigeren en de voorloop https:// - en volgvolging te /discoveryverwijderen. Voer de volgende CLI-opdracht uit om uw discovery_urlte vinden:

az ml workspace show -n {project_name} --subscription {subscription_name} --resource-group {resource_group_name} --query discovery_url

Uw eindpunt ziet er bijvoorbeeld ongeveer als volgt uit:

https://eastus.api.azureml.ms/agents/v1.0/subscriptions/12345678-abcd-1234-abcd-123456789000/resourceGroups/my-resource-group/providers/Microsoft.MachineLearningServices/workspaces/my-project-name

Stel dit eindpunt in als een omgevingsvariabele met de naam AZURE_AI_AGENTS_ENDPOINT.

Een agent maken

Notitie

Bij Azure AI Agents Service is voor de parameter de naam van de model modelimplementatie vereist. Als de naam van uw modelimplementatie anders is dan de naam van het onderliggende model, past u de code aan. "model": "{your-custom-model-deployment-name}"

curl $AZURE_AI_AGENTS_ENDPOINT/assistants?api-version=2024-12-01-preview \
  -H "Authorization: Bearer $AZURE_AI_AGENTS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "instructions": "You are a helpful agent.",
    "name": "my-agent",
    "tools": [{"type": "code_interpreter"}],
    "model": "gpt-4o-mini"
  }'

Een thread maken

curl $AZURE_AI_AGENTS_ENDPOINT/threads?api-version=2024-12-01-preview \
  -H "Authorization: Bearer $AZURE_AI_AGENTS_TOKEN" \
  -H "Content-Type: application/json" \
  -d ''

Een gebruikersvraag toevoegen aan de thread

curl $AZURE_AI_AGENTS_ENDPOINT/threads/thread_abc123/messages?api-version=2024-12-01-preview \
  -H "Authorization: Bearer $AZURE_AI_AGENTS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
      "role": "user",
      "content": "I need to solve the equation `3x + 11 = 14`. Can you help me?"
    }'

De thread uitvoeren

curl $AZURE_AI_AGENTS_ENDPOINT/threads/thread_abc123/runs?api-version=2024-12-01-preview \
  -H "Authorization: Bearer $AZURE_AI_AGENTS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "assistant_id": "asst_abc123",
  }'

De status van de uitvoering ophalen

curl $AZURE_AI_AGENTS_ENDPOINT/threads/thread_abc123/runs/run_abc123?api-version=2024-12-01-preview \
  -H "Authorization: Bearer $AZURE_AI_AGENTS_TOKEN"

Het antwoord van de agent ophalen

curl $AZURE_AI_AGENTS_ENDPOINT/threads/thread_abc123/messages?api-version=2024-12-01-preview \
  -H "Authorization: Bearer $AZURE_AI_AGENTS_TOKEN"