Szybki start: tworzenie nowego agenta
Usługa Azure AI Agent Service umożliwia tworzenie agentów sztucznej inteligencji dostosowanych do potrzeb za pomocą niestandardowych instrukcji i rozszerzonych przez zaawansowane narzędzia, takie jak interpreter kodu i funkcje niestandardowe.
| Dokumentacja referencyjna — Pakiet | kodu | źródłowego biblioteki przykładów | (NuGet) |
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie.
- Najnowsza wersja platformy .NET
- Upewnij się, że masz przypisaną rolę RBAC dla deweloperów sztucznej inteligencji platformy Azure na odpowiednim poziomie.
- Zainstaluj interfejs wiersza polecenia platformy Azure i rozszerzenie uczenia maszynowego. Jeśli masz już zainstalowany interfejs wiersza polecenia, upewnij się, że został on zaktualizowany do najnowszej wersji.
Konfigurowanie projektu usługi Azure AI Hub i agenta
W poniższej sekcji przedstawiono sposób konfigurowania wymaganych zasobów na potrzeby rozpoczynania pracy z usługą Azure AI Agent Service:
Tworzenie centrum AI Platformy Azure w celu skonfigurowania środowiska aplikacji i zasobów platformy Azure.
Tworzenie projektu sztucznej inteligencji platformy Azure w centrum powoduje utworzenie punktu końcowego dla aplikacji do wywołania i skonfigurowanie usług app services w celu uzyskania dostępu do zasobów w dzierżawie.
Łączenie zasobu usługi Azure OpenAI lub zasobu usług Azure AI Services
Wybieranie konfiguracji agenta podstawowego lub standardowego
Konfiguracja podstawowa: Agenci używają wielodostępnych zasobów wyszukiwania i magazynu w pełni zarządzanych przez firmę Microsoft. Nie masz wglądu ani kontroli nad tymi podstawowymi zasobami platformy Azure.
Konfiguracja Standardowa: Agenci używają zasobów wyszukiwania z jedną dzierżawą i magazynu należących do klienta. Dzięki tej konfiguracji masz pełną kontrolę nad tymi zasobami i widoczność, ale ponosisz koszty na podstawie użycia.
[Opcjonalnie] Wybór modelu w szablonie automatycznego wdrażania
Model używany przez agenta można dostosować, edytując parametry modelu w szablonie automatycznego wdrażania. Aby wdrożyć inny model, należy zaktualizować co najmniej modelName
parametry i modelVersion
.
Domyślnie szablon wdrożenia jest skonfigurowany z następującymi wartościami:
Parametr modelu | Wartość domyślna |
---|---|
modelName | gpt-4o-mini |
modelFormat | OpenAI (dla usługi Azure OpenAI) |
modelVersion | 2024-07-18 |
modelSkuName | GlobalStandard |
modelLocation | eastus |
Ważne
Nie zmieniaj parametru modelFormat.
Szablony obsługują tylko wdrażanie modeli usługi Azure OpenAI. Zobacz, które modele usługi Azure OpenAI są obsługiwane w dokumentacji obsługi modelu usługi azure AI Agent Service.
[Opcjonalnie] Korzystanie z własnych zasobów podczas konfigurowania agenta
Uwaga
Jeśli używasz istniejącego zasobu usług sztucznej inteligencji lub usługi Azure OpenAI, żaden model nie zostanie wdrożony. Model można wdrożyć w zasobie po zakończeniu instalacji agenta.
Użyj istniejących usług sztucznej inteligencji, usługi Azure OpenAI, wyszukiwania sztucznej inteligencji i/lub zasobu usługi Azure Blob Storage, podając pełny identyfikator zasobu arm w pliku parametrów:
aiServiceAccountResourceId
aiSearchServiceResourceId
aiStorageAccountResourceId
Jeśli chcesz użyć istniejącego zasobu usługi Azure OpenAI, musisz zaktualizować aiServiceAccountResourceId
parametry i aiServiceKind
w pliku parametrów. Parametr aiServiceKind
powinien być ustawiony na AzureOpenAI
wartość .
Aby uzyskać więcej informacji, zobacz , jak używać własnych zasobów.
Konfigurowanie i uruchamianie agenta
Składnik | opis |
---|---|
Agent | Niestandardowa sztuczna inteligencja korzystająca z modeli sztucznej inteligencji w połączeniu z narzędziami. |
Narzędzie | Narzędzia pomagają rozszerzyć zdolność agenta do niezawodnego i dokładnego reagowania podczas konwersacji. Na przykład nawiązywanie połączenia z baza wiedzy zdefiniowanymi przez użytkownika w celu uziemienia modelu lub włączanie wyszukiwania w Internecie w celu udostępnienia bieżących informacji. |
Wątek | Sesja konwersacji między agentem a użytkownikiem. Wątki przechowują komunikaty i automatycznie obsługują obcinanie w celu dopasowania zawartości do kontekstu modelu. |
Komunikat | Komunikat utworzony przez agenta lub użytkownika. Wiadomości mogą zawierać tekst, obrazy i inne pliki. Komunikaty są przechowywane jako lista w wątku. |
Uruchom | Aktywacja agenta w celu rozpoczęcia działania na podstawie zawartości wątku. Agent używa konfiguracji i komunikatów wątku do wykonywania zadań przez wywoływanie modeli i narzędzi. W ramach uruchomienia agent dołącza komunikaty do wątku. |
Krok uruchamiania | Szczegółowa lista kroków, które agent wziął w ramach uruchomienia. Agent może wywoływać narzędzia lub tworzyć komunikaty podczas jego uruchamiania. Badanie kroków uruchamiania pozwala zrozumieć, jak agent uzyskuje wyniki. |
Zainstaluj pakiet .NET w projekcie. Jeśli na przykład używasz interfejsu wiersza polecenia platformy .NET, uruchom następujące polecenie.
dotnet add package Azure.AI.Projects
dotnet add package Azure.Identity
Następnie, aby uwierzytelnić żądania interfejsu API i uruchomić program, użyj polecenia az login , aby zalogować się do subskrypcji platformy Azure.
az login
Użyj poniższego kodu, aby utworzyć i uruchomić agenta. Aby uruchomić ten kod, należy utworzyć parametry połączenia przy użyciu informacji z projektu. Ten ciąg ma format:
<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>
Napiwek
Możesz również znaleźć parametry połączenia w przeglądzie projektu w portalu Azure AI Foundry w obszarze Projekt szczegóły>projektu parametry połączenia.
HostName
Można go znaleźć, przechodząc do strony discovery_url
i usuwając wiodące https://
i końcowe /discovery
. Aby znaleźć plik discovery_url
, uruchom następujące polecenie interfejsu wiersza polecenia:
az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
Na przykład parametry połączenia może wyglądać mniej więcej tak:
eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
Ustaw tę parametry połączenia jako zmienną środowiskową o nazwie 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();
}
}
}
}
| Dokumentacja referencyjna — pakiet | kodu | źródłowego biblioteki przykładów | (PyPi) |
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie.
- Środowisko Python w wersji 3.8 lub nowszej
- Upewnij się, że masz przypisaną rolę RBAC dla deweloperów sztucznej inteligencji platformy Azure na odpowiednim poziomie.
- Zainstaluj interfejs wiersza polecenia platformy Azure i rozszerzenie uczenia maszynowego. Jeśli masz już zainstalowany interfejs wiersza polecenia, upewnij się, że został on zaktualizowany do najnowszej wersji.
Konfigurowanie projektu usługi Azure AI Hub i agenta
W poniższej sekcji przedstawiono sposób konfigurowania wymaganych zasobów na potrzeby rozpoczynania pracy z usługą Azure AI Agent Service:
Tworzenie centrum AI Platformy Azure w celu skonfigurowania środowiska aplikacji i zasobów platformy Azure.
Tworzenie projektu sztucznej inteligencji platformy Azure w centrum powoduje utworzenie punktu końcowego dla aplikacji do wywołania i skonfigurowanie usług app services w celu uzyskania dostępu do zasobów w dzierżawie.
Łączenie zasobu usługi Azure OpenAI lub zasobu usług Azure AI Services
Wybieranie konfiguracji agenta podstawowego lub standardowego
Konfiguracja podstawowa: Agenci używają wielodostępnych zasobów wyszukiwania i magazynu w pełni zarządzanych przez firmę Microsoft. Nie masz wglądu ani kontroli nad tymi podstawowymi zasobami platformy Azure.
Konfiguracja Standardowa: Agenci używają zasobów wyszukiwania z jedną dzierżawą i magazynu należących do klienta. Dzięki tej konfiguracji masz pełną kontrolę nad tymi zasobami i widoczność, ale ponosisz koszty na podstawie użycia.
[Opcjonalnie] Wybór modelu w szablonie automatycznego wdrażania
Model używany przez agenta można dostosować, edytując parametry modelu w szablonie automatycznego wdrażania. Aby wdrożyć inny model, należy zaktualizować co najmniej modelName
parametry i modelVersion
.
Domyślnie szablon wdrożenia jest skonfigurowany z następującymi wartościami:
Parametr modelu | Wartość domyślna |
---|---|
modelName | gpt-4o-mini |
modelFormat | OpenAI (dla usługi Azure OpenAI) |
modelVersion | 2024-07-18 |
modelSkuName | GlobalStandard |
modelLocation | eastus |
Ważne
Nie zmieniaj parametru modelFormat.
Szablony obsługują tylko wdrażanie modeli usługi Azure OpenAI. Zobacz, które modele usługi Azure OpenAI są obsługiwane w dokumentacji obsługi modelu usługi azure AI Agent Service.
[Opcjonalnie] Korzystanie z własnych zasobów podczas konfigurowania agenta
Uwaga
Jeśli używasz istniejącego zasobu usług sztucznej inteligencji lub usługi Azure OpenAI, żaden model nie zostanie wdrożony. Model można wdrożyć w zasobie po zakończeniu instalacji agenta.
Użyj istniejących usług sztucznej inteligencji, usługi Azure OpenAI, wyszukiwania sztucznej inteligencji i/lub zasobu usługi Azure Blob Storage, podając pełny identyfikator zasobu arm w pliku parametrów:
aiServiceAccountResourceId
aiSearchServiceResourceId
aiStorageAccountResourceId
Jeśli chcesz użyć istniejącego zasobu usługi Azure OpenAI, musisz zaktualizować aiServiceAccountResourceId
parametry i aiServiceKind
w pliku parametrów. Parametr aiServiceKind
powinien być ustawiony na AzureOpenAI
wartość .
Aby uzyskać więcej informacji, zobacz , jak używać własnych zasobów.
Konfigurowanie i uruchamianie agenta
Składnik | opis |
---|---|
Agent | Niestandardowa sztuczna inteligencja korzystająca z modeli sztucznej inteligencji w połączeniu z narzędziami. |
Narzędzie | Narzędzia pomagają rozszerzyć zdolność agenta do niezawodnego i dokładnego reagowania podczas konwersacji. Na przykład nawiązywanie połączenia z baza wiedzy zdefiniowanymi przez użytkownika w celu uziemienia modelu lub włączanie wyszukiwania w Internecie w celu udostępnienia bieżących informacji. |
Wątek | Sesja konwersacji między agentem a użytkownikiem. Wątki przechowują komunikaty i automatycznie obsługują obcinanie w celu dopasowania zawartości do kontekstu modelu. |
Komunikat | Komunikat utworzony przez agenta lub użytkownika. Wiadomości mogą zawierać tekst, obrazy i inne pliki. Komunikaty są przechowywane jako lista w wątku. |
Uruchom | Aktywacja agenta w celu rozpoczęcia działania na podstawie zawartości wątku. Agent używa konfiguracji i komunikatów wątku do wykonywania zadań przez wywoływanie modeli i narzędzi. W ramach uruchomienia agent dołącza komunikaty do wątku. |
Krok uruchamiania | Szczegółowa lista kroków, które agent wziął w ramach uruchomienia. Agent może wywoływać narzędzia lub tworzyć komunikaty podczas jego uruchamiania. Badanie kroków uruchamiania pozwala zrozumieć, jak agent uzyskuje wyniki. |
Uruchom następujące polecenia, aby zainstalować pakiety języka Python.
pip install azure-ai-projects
pip install azure-identity
Następnie, aby uwierzytelnić żądania interfejsu API i uruchomić program, użyj polecenia az login , aby zalogować się do subskrypcji platformy Azure.
az login
Użyj poniższego kodu, aby utworzyć i uruchomić agenta. Aby uruchomić ten kod, należy utworzyć parametry połączenia przy użyciu informacji z projektu. Ten ciąg ma format:
<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>
Napiwek
Możesz również znaleźć parametry połączenia w przeglądzie projektu w portalu Azure AI Foundry w obszarze Projekt szczegóły>projektu parametry połączenia.
HostName
Można go znaleźć, przechodząc do strony discovery_url
i usuwając wiodące https://
i końcowe /discovery
. Aby znaleźć plik discovery_url
, uruchom następujące polecenie interfejsu wiersza polecenia:
az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
Na przykład parametry połączenia może wyglądać mniej więcej tak:
eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
Ustaw tę parametry połączenia jako zmienną środowiskową o nazwie 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")
| Dokumentacja pakietu kodu | źródłowego biblioteki referencyjnej | (PyPi) |
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie.
- Środowisko Python w wersji 3.8 lub nowszej
- Upewnij się, że masz przypisaną rolę RBAC dla deweloperów sztucznej inteligencji platformy Azure na odpowiednim poziomie.
- Do korzystania z zasobu usług Azure AI Services potrzebna jest rola użytkownika interfejsu OpenAI usług Cognitive Services.
- Zainstaluj interfejs wiersza polecenia platformy Azure i rozszerzenie uczenia maszynowego. Jeśli masz już zainstalowany interfejs wiersza polecenia, upewnij się, że został on zaktualizowany do najnowszej wersji.
Konfigurowanie projektu usługi Azure AI Hub i agenta
W poniższej sekcji przedstawiono sposób konfigurowania wymaganych zasobów na potrzeby rozpoczynania pracy z usługą Azure AI Agent Service:
Tworzenie centrum AI Platformy Azure w celu skonfigurowania środowiska aplikacji i zasobów platformy Azure.
Tworzenie projektu sztucznej inteligencji platformy Azure w centrum powoduje utworzenie punktu końcowego dla aplikacji do wywołania i skonfigurowanie usług app services w celu uzyskania dostępu do zasobów w dzierżawie.
Łączenie zasobu usługi Azure OpenAI lub zasobu usług Azure AI Services
Wybieranie konfiguracji agenta podstawowego lub standardowego
Konfiguracja podstawowa: Agenci używają wielodostępnych zasobów wyszukiwania i magazynu w pełni zarządzanych przez firmę Microsoft. Nie masz wglądu ani kontroli nad tymi podstawowymi zasobami platformy Azure.
Konfiguracja Standardowa: Agenci używają zasobów wyszukiwania z jedną dzierżawą i magazynu należących do klienta. Dzięki tej konfiguracji masz pełną kontrolę nad tymi zasobami i widoczność, ale ponosisz koszty na podstawie użycia.
[Opcjonalnie] Wybór modelu w szablonie automatycznego wdrażania
Model używany przez agenta można dostosować, edytując parametry modelu w szablonie automatycznego wdrażania. Aby wdrożyć inny model, należy zaktualizować co najmniej modelName
parametry i modelVersion
.
Domyślnie szablon wdrożenia jest skonfigurowany z następującymi wartościami:
Parametr modelu | Wartość domyślna |
---|---|
modelName | gpt-4o-mini |
modelFormat | OpenAI (dla usługi Azure OpenAI) |
modelVersion | 2024-07-18 |
modelSkuName | GlobalStandard |
modelLocation | eastus |
Ważne
Nie zmieniaj parametru modelFormat.
Szablony obsługują tylko wdrażanie modeli usługi Azure OpenAI. Zobacz, które modele usługi Azure OpenAI są obsługiwane w dokumentacji obsługi modelu usługi azure AI Agent Service.
[Opcjonalnie] Korzystanie z własnych zasobów podczas konfigurowania agenta
Uwaga
Jeśli używasz istniejącego zasobu usług sztucznej inteligencji lub usługi Azure OpenAI, żaden model nie zostanie wdrożony. Model można wdrożyć w zasobie po zakończeniu instalacji agenta.
Użyj istniejących usług sztucznej inteligencji, usługi Azure OpenAI, wyszukiwania sztucznej inteligencji i/lub zasobu usługi Azure Blob Storage, podając pełny identyfikator zasobu arm w pliku parametrów:
aiServiceAccountResourceId
aiSearchServiceResourceId
aiStorageAccountResourceId
Jeśli chcesz użyć istniejącego zasobu usługi Azure OpenAI, musisz zaktualizować aiServiceAccountResourceId
parametry i aiServiceKind
w pliku parametrów. Parametr aiServiceKind
powinien być ustawiony na AzureOpenAI
wartość .
Aby uzyskać więcej informacji, zobacz , jak używać własnych zasobów.
Konfigurowanie i uruchamianie agenta
Składnik | opis |
---|---|
Agent | Niestandardowa sztuczna inteligencja korzystająca z modeli sztucznej inteligencji w połączeniu z narzędziami. |
Narzędzie | Narzędzia pomagają rozszerzyć zdolność agenta do niezawodnego i dokładnego reagowania podczas konwersacji. Na przykład nawiązywanie połączenia z baza wiedzy zdefiniowanymi przez użytkownika w celu uziemienia modelu lub włączanie wyszukiwania w Internecie w celu udostępnienia bieżących informacji. |
Wątek | Sesja konwersacji między agentem a użytkownikiem. Wątki przechowują komunikaty i automatycznie obsługują obcinanie w celu dopasowania zawartości do kontekstu modelu. |
Komunikat | Komunikat utworzony przez agenta lub użytkownika. Wiadomości mogą zawierać tekst, obrazy i inne pliki. Komunikaty są przechowywane jako lista w wątku. |
Uruchom | Aktywacja agenta w celu rozpoczęcia działania na podstawie zawartości wątku. Agent używa konfiguracji i komunikatów wątku do wykonywania zadań przez wywoływanie modeli i narzędzi. W ramach uruchomienia agent dołącza komunikaty do wątku. |
Krok uruchamiania | Szczegółowa lista kroków, które agent wziął w ramach uruchomienia. Agent może wywoływać narzędzia lub tworzyć komunikaty podczas jego uruchamiania. Badanie kroków uruchamiania pozwala zrozumieć, jak agent uzyskuje wyniki. |
Uruchom następujące polecenia, aby zainstalować pakiety języka Python.
pip install azure-ai-projects
pip install azure-identity
pip install openai
Następnie, aby uwierzytelnić żądania interfejsu API i uruchomić program, użyj polecenia az login , aby zalogować się do subskrypcji platformy Azure.
az login
Użyj poniższego kodu, aby utworzyć i uruchomić agenta. Aby uruchomić ten kod, należy utworzyć parametry połączenia przy użyciu informacji z projektu. Ten ciąg ma format:
<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>
Napiwek
Możesz również znaleźć parametry połączenia w przeglądzie projektu w portalu Azure AI Foundry w obszarze Projekt szczegóły>projektu parametry połączenia.
HostName
Można go znaleźć, przechodząc do strony discovery_url
i usuwając wiodące https://
i końcowe /discovery
. Aby znaleźć plik discovery_url
, uruchom następujące polecenie interfejsu wiersza polecenia:
az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
Na przykład parametry połączenia może wyglądać mniej więcej tak:
eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
Ustaw tę parametry połączenia jako zmienną środowiskową o nazwie 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}")
| Dokumentacja referencyjna — przykładowy | | pakiet kodu | źródłowego biblioteki (npm) |
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie.
- Node.js LTS
- Upewnij się, że masz przypisaną rolę RBAC dla deweloperów sztucznej inteligencji platformy Azure na odpowiednim poziomie.
- Zainstaluj interfejs wiersza polecenia platformy Azure i rozszerzenie uczenia maszynowego. Jeśli masz już zainstalowany interfejs wiersza polecenia, upewnij się, że został on zaktualizowany do najnowszej wersji.
Konfigurowanie projektu usługi Azure AI Hub i agenta
W poniższej sekcji przedstawiono sposób konfigurowania wymaganych zasobów na potrzeby rozpoczynania pracy z usługą Azure AI Agent Service:
Tworzenie centrum AI Platformy Azure w celu skonfigurowania środowiska aplikacji i zasobów platformy Azure.
Tworzenie projektu sztucznej inteligencji platformy Azure w centrum powoduje utworzenie punktu końcowego dla aplikacji do wywołania i skonfigurowanie usług app services w celu uzyskania dostępu do zasobów w dzierżawie.
Łączenie zasobu usługi Azure OpenAI lub zasobu usług Azure AI Services
Wybieranie konfiguracji agenta podstawowego lub standardowego
Konfiguracja podstawowa: Agenci używają wielodostępnych zasobów wyszukiwania i magazynu w pełni zarządzanych przez firmę Microsoft. Nie masz wglądu ani kontroli nad tymi podstawowymi zasobami platformy Azure.
Konfiguracja Standardowa: Agenci używają zasobów wyszukiwania z jedną dzierżawą i magazynu należących do klienta. Dzięki tej konfiguracji masz pełną kontrolę nad tymi zasobami i widoczność, ale ponosisz koszty na podstawie użycia.
[Opcjonalnie] Wybór modelu w szablonie automatycznego wdrażania
Model używany przez agenta można dostosować, edytując parametry modelu w szablonie automatycznego wdrażania. Aby wdrożyć inny model, należy zaktualizować co najmniej modelName
parametry i modelVersion
.
Domyślnie szablon wdrożenia jest skonfigurowany z następującymi wartościami:
Parametr modelu | Wartość domyślna |
---|---|
modelName | gpt-4o-mini |
modelFormat | OpenAI (dla usługi Azure OpenAI) |
modelVersion | 2024-07-18 |
modelSkuName | GlobalStandard |
modelLocation | eastus |
Ważne
Nie zmieniaj parametru modelFormat.
Szablony obsługują tylko wdrażanie modeli usługi Azure OpenAI. Zobacz, które modele usługi Azure OpenAI są obsługiwane w dokumentacji obsługi modelu usługi azure AI Agent Service.
[Opcjonalnie] Korzystanie z własnych zasobów podczas konfigurowania agenta
Uwaga
Jeśli używasz istniejącego zasobu usług sztucznej inteligencji lub usługi Azure OpenAI, żaden model nie zostanie wdrożony. Model można wdrożyć w zasobie po zakończeniu instalacji agenta.
Użyj istniejących usług sztucznej inteligencji, usługi Azure OpenAI, wyszukiwania sztucznej inteligencji i/lub zasobu usługi Azure Blob Storage, podając pełny identyfikator zasobu arm w pliku parametrów:
aiServiceAccountResourceId
aiSearchServiceResourceId
aiStorageAccountResourceId
Jeśli chcesz użyć istniejącego zasobu usługi Azure OpenAI, musisz zaktualizować aiServiceAccountResourceId
parametry i aiServiceKind
w pliku parametrów. Parametr aiServiceKind
powinien być ustawiony na AzureOpenAI
wartość .
Aby uzyskać więcej informacji, zobacz , jak używać własnych zasobów.
Konfigurowanie i uruchamianie agenta
Składnik | opis |
---|---|
Agent | Niestandardowa sztuczna inteligencja korzystająca z modeli sztucznej inteligencji w połączeniu z narzędziami. |
Narzędzie | Narzędzia pomagają rozszerzyć zdolność agenta do niezawodnego i dokładnego reagowania podczas konwersacji. Na przykład nawiązywanie połączenia z baza wiedzy zdefiniowanymi przez użytkownika w celu uziemienia modelu lub włączanie wyszukiwania w Internecie w celu udostępnienia bieżących informacji. |
Wątek | Sesja konwersacji między agentem a użytkownikiem. Wątki przechowują komunikaty i automatycznie obsługują obcinanie w celu dopasowania zawartości do kontekstu modelu. |
Komunikat | Komunikat utworzony przez agenta lub użytkownika. Wiadomości mogą zawierać tekst, obrazy i inne pliki. Komunikaty są przechowywane jako lista w wątku. |
Uruchom | Aktywacja agenta w celu rozpoczęcia działania na podstawie zawartości wątku. Agent używa konfiguracji i komunikatów wątku do wykonywania zadań przez wywoływanie modeli i narzędzi. W ramach uruchomienia agent dołącza komunikaty do wątku. |
Krok uruchamiania | Szczegółowa lista kroków, które agent wziął w ramach uruchomienia. Agent może wywoływać narzędzia lub tworzyć komunikaty podczas jego uruchamiania. Badanie kroków uruchamiania pozwala zrozumieć, jak agent uzyskuje wyniki. |
Uruchom następujące polecenia, aby zainstalować pakiety npm.
npm install @azure/ai-projects
npm install @azure/identity
Następnie, aby uwierzytelnić żądania interfejsu API i uruchomić program, użyj polecenia az login , aby zalogować się do subskrypcji platformy Azure.
az login
Użyj poniższego kodu, aby utworzyć i uruchomić agenta. Aby uruchomić ten kod, należy utworzyć parametry połączenia przy użyciu informacji z projektu. Ten ciąg ma format:
<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>
Napiwek
Możesz również znaleźć parametry połączenia w przeglądzie projektu w portalu Azure AI Foundry w obszarze Projekt szczegóły>projektu parametry połączenia.
HostName
Można go znaleźć, przechodząc do strony discovery_url
i usuwając wiodące https://
i końcowe /discovery
. Aby znaleźć plik discovery_url
, uruchom następujące polecenie interfejsu wiersza polecenia:
az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
Na przykład parametry połączenia może wyglądać mniej więcej tak:
eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
Ustaw tę parametry połączenia jako zmienną środowiskową o nazwie 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);
});
Dane wyjściowe zawierają monit i odpowiedzi.
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!
---------------------------------
| Dokumentacja referencyjna — przykładowy | | pakiet kodu | źródłowego biblioteki (npm) |
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie.
- Node.js LTS
- TypeScript 5.x
- Upewnij się, że masz przypisaną rolę RBAC dla deweloperów sztucznej inteligencji platformy Azure na odpowiednim poziomie.
- Zainstaluj interfejs wiersza polecenia platformy Azure i rozszerzenie uczenia maszynowego. Jeśli masz już zainstalowany interfejs wiersza polecenia, upewnij się, że został on zaktualizowany do najnowszej wersji.
Konfigurowanie projektu usługi Azure AI Hub i agenta
W poniższej sekcji przedstawiono sposób konfigurowania wymaganych zasobów na potrzeby rozpoczynania pracy z usługą Azure AI Agent Service:
Tworzenie centrum AI Platformy Azure w celu skonfigurowania środowiska aplikacji i zasobów platformy Azure.
Tworzenie projektu sztucznej inteligencji platformy Azure w centrum powoduje utworzenie punktu końcowego dla aplikacji do wywołania i skonfigurowanie usług app services w celu uzyskania dostępu do zasobów w dzierżawie.
Łączenie zasobu usługi Azure OpenAI lub zasobu usług Azure AI Services
Wybieranie konfiguracji agenta podstawowego lub standardowego
Konfiguracja podstawowa: Agenci używają wielodostępnych zasobów wyszukiwania i magazynu w pełni zarządzanych przez firmę Microsoft. Nie masz wglądu ani kontroli nad tymi podstawowymi zasobami platformy Azure.
Konfiguracja Standardowa: Agenci używają zasobów wyszukiwania z jedną dzierżawą i magazynu należących do klienta. Dzięki tej konfiguracji masz pełną kontrolę nad tymi zasobami i widoczność, ale ponosisz koszty na podstawie użycia.
[Opcjonalnie] Wybór modelu w szablonie automatycznego wdrażania
Model używany przez agenta można dostosować, edytując parametry modelu w szablonie automatycznego wdrażania. Aby wdrożyć inny model, należy zaktualizować co najmniej modelName
parametry i modelVersion
.
Domyślnie szablon wdrożenia jest skonfigurowany z następującymi wartościami:
Parametr modelu | Wartość domyślna |
---|---|
modelName | gpt-4o-mini |
modelFormat | OpenAI (dla usługi Azure OpenAI) |
modelVersion | 2024-07-18 |
modelSkuName | GlobalStandard |
modelLocation | eastus |
Ważne
Nie zmieniaj parametru modelFormat.
Szablony obsługują tylko wdrażanie modeli usługi Azure OpenAI. Zobacz, które modele usługi Azure OpenAI są obsługiwane w dokumentacji obsługi modelu usługi azure AI Agent Service.
[Opcjonalnie] Korzystanie z własnych zasobów podczas konfigurowania agenta
Uwaga
Jeśli używasz istniejącego zasobu usług sztucznej inteligencji lub usługi Azure OpenAI, żaden model nie zostanie wdrożony. Model można wdrożyć w zasobie po zakończeniu instalacji agenta.
Użyj istniejących usług sztucznej inteligencji, usługi Azure OpenAI, wyszukiwania sztucznej inteligencji i/lub zasobu usługi Azure Blob Storage, podając pełny identyfikator zasobu arm w pliku parametrów:
aiServiceAccountResourceId
aiSearchServiceResourceId
aiStorageAccountResourceId
Jeśli chcesz użyć istniejącego zasobu usługi Azure OpenAI, musisz zaktualizować aiServiceAccountResourceId
parametry i aiServiceKind
w pliku parametrów. Parametr aiServiceKind
powinien być ustawiony na AzureOpenAI
wartość .
Aby uzyskać więcej informacji, zobacz , jak używać własnych zasobów.
Konfigurowanie i uruchamianie agenta
Składnik | opis |
---|---|
Agent | Niestandardowa sztuczna inteligencja korzystająca z modeli sztucznej inteligencji w połączeniu z narzędziami. |
Narzędzie | Narzędzia pomagają rozszerzyć zdolność agenta do niezawodnego i dokładnego reagowania podczas konwersacji. Na przykład nawiązywanie połączenia z baza wiedzy zdefiniowanymi przez użytkownika w celu uziemienia modelu lub włączanie wyszukiwania w Internecie w celu udostępnienia bieżących informacji. |
Wątek | Sesja konwersacji między agentem a użytkownikiem. Wątki przechowują komunikaty i automatycznie obsługują obcinanie w celu dopasowania zawartości do kontekstu modelu. |
Komunikat | Komunikat utworzony przez agenta lub użytkownika. Wiadomości mogą zawierać tekst, obrazy i inne pliki. Komunikaty są przechowywane jako lista w wątku. |
Uruchom | Aktywacja agenta w celu rozpoczęcia działania na podstawie zawartości wątku. Agent używa konfiguracji i komunikatów wątku do wykonywania zadań przez wywoływanie modeli i narzędzi. W ramach uruchomienia agent dołącza komunikaty do wątku. |
Krok uruchamiania | Szczegółowa lista kroków, które agent wziął w ramach uruchomienia. Agent może wywoływać narzędzia lub tworzyć komunikaty podczas jego uruchamiania. Badanie kroków uruchamiania pozwala zrozumieć, jak agent uzyskuje wyniki. |
Uruchom następujące polecenia, aby zainstalować pakiety npm.
npm install @azure/ai-projects
npm install @azure/identity
Następnie, aby uwierzytelnić żądania interfejsu API i uruchomić program, użyj polecenia az login , aby zalogować się do subskrypcji platformy Azure.
az login
Użyj poniższego kodu, aby utworzyć i uruchomić agenta. Aby uruchomić ten kod, należy utworzyć parametry połączenia przy użyciu informacji z projektu. Ten ciąg ma format:
<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>
Napiwek
Możesz również znaleźć parametry połączenia w przeglądzie projektu w portalu Azure AI Foundry w obszarze Projekt szczegóły>projektu parametry połączenia.
HostName
Można go znaleźć, przechodząc do strony discovery_url
i usuwając wiodące https://
i końcowe /discovery
. Aby znaleźć plik discovery_url
, uruchom następujące polecenie interfejsu wiersza polecenia:
az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
Na przykład parametry połączenia może wyglądać mniej więcej tak:
eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
Ustaw tę parametry połączenia jako zmienną środowiskową o nazwie 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);
});
Dane wyjściowe zawierają monit i odpowiedzi.
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!
---------------------------------