Delen via


Quickstart: Een nieuwe agent maken

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.

| ReferentiedocumentatieVoorbeeldenbibliotheek | | broncodepakket | (NuGet) |

Vereisten

RBAC-rollen

Zorg ervoor dat zowel ontwikkelaars als eindgebruikers de volgende machtigingen hebben:

  • Microsoft.MachineLearningServices/workspaces/agents/read
  • Microsoft.MachineLearningServices/workspaces/agents/action
  • Microsoft.MachineLearningServices/workspaces/agents/delete

Als u aangepaste machtigingen wilt maken, moet u ervoor zorgen dat deze over het volgende beschikken:

  • agents/*/read
  • agents/*/action
  • agents/*/delete

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.

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

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("AZURE_AI_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

RBAC-rollen

Zorg ervoor dat zowel ontwikkelaars als eindgebruikers de volgende machtigingen hebben:

  • Microsoft.MachineLearningServices/workspaces/agents/read
  • Microsoft.MachineLearningServices/workspaces/agents/action
  • Microsoft.MachineLearningServices/workspaces/agents/delete

Als u aangepaste machtigingen wilt maken, moet u ervoor zorgen dat deze over het volgende beschikken:

  • agents/*/read
  • agents/*/action
  • agents/*/delete

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.

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

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_sender("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

RBAC-rollen

Zorg ervoor dat zowel ontwikkelaars als eindgebruikers de volgende machtigingen hebben:

  • Microsoft.MachineLearningServices/workspaces/agents/read
  • Microsoft.MachineLearningServices/workspaces/agents/action
  • Microsoft.MachineLearningServices/workspaces/agents/delete

Als u aangepaste machtigingen wilt maken, moet u ervoor zorgen dat deze over het volgende beschikken:

  • agents/*/read
  • agents/*/action
  • agents/*/delete

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.

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

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