Szybki start: tworzenie nowego agenta (wersja zapoznawcza)
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.
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie.
- Upewnij się, że masz przypisaną rolę RBAC dla deweloperów sztucznej inteligencji platformy Azure.
Obsługa konfiguracji podstawowego agenta
Przed rozpoczęciem określ, czy chcesz wykonać podstawową konfigurację agenta, czy konfigurację agenta standardowego. Usługa Azure AI Foundry obsługuje tylko podstawową konfigurację agenta.
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. Podstawową konfigurację można utworzyć przy użyciu portalu usługi Azure AI Foundry lub zautomatyzowanego szablonu bicep.
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. Konfigurację standardową można wykonać tylko przy użyciu zautomatyzowanego szablonu bicep.
Ważne
Portal usługi Azure AI Foundry obsługuje obecnie tylko podstawową konfigurację. Jeśli chcesz wykonać konfigurację agenta standardowego, użyj innych kart w górnej części artykułu, aby dowiedzieć się więcej o standardowej konfiguracji agenta.
Tworzenie centrum i projektu w portalu usługi Azure AI Foundry
Aby utworzyć nowe centrum i projekt, potrzebujesz roli Właściciel lub Współautor w grupie zasobów lub w istniejącym centrum. Jeśli nie możesz utworzyć centrum z powodu uprawnień, skontaktuj się z administratorem.
Aby utworzyć projekt w usłudze Azure AI Foundry, wykonaj następujące kroki:
Przejdź do usługi Azure AI Foundry. Jeśli jesteś w projekcie, wybierz pozycję Azure AI Foundry w lewym górnym rogu strony, aby przejść do strony głównej.
Wybierz pozycję + Utwórz projekt.
Wprowadź nazwę dla projektu.
Jeśli masz koncentrator, zobaczysz ten, który został ostatnio użyty.
Jeśli masz dostęp do więcej niż jednego centrum, możesz wybrać inne centrum z listy rozwijanej.
Jeśli chcesz utworzyć nowy, wybierz pozycję Utwórz nowe centrum i podaj nazwę. Jeśli chcesz dostosować wartości domyślne, zapoznaj się z dokumentacją usługi Azure AI Foundry.
Wybierz pozycję Utwórz.
Wdrażanie modelu
Zaloguj się do usługi Azure AI Foundry.
Przejdź do projektu lub utwórz nowy projekt w portalu azure AI Foundry.
Z przeglądu projektu wybierz pozycję Agenci znajdujący się w obszarze Kompiluj i dostosuj.
Wybierz zasób azure OpenAI.
Wybierz wdrożenie modelu dla agenta do użycia. Jeśli go nie masz, zostanie otwarty ekran wdrażania nowego modelu. W przeciwnym razie możesz wybrać pozycję Wdróż model.
Korzystanie z placu zabaw agenta
Plac zabaw Dla agentów umożliwia eksplorowanie, prototypowanie i testowanie agentów bez konieczności uruchamiania kodu. Na tej stronie można szybko iterować i eksperymentować z nowymi pomysłami.
Na ekranie Tworzenie i debugowanie agentów wybierz agenta lub utwórz nowy z nowym agentem. Okienko Konfiguracja po prawej stronie to miejsce, w którym można zmienić jego parametry i narzędzia.
Opcjonalnie możesz nadać agentowi nazwę inną niż wygenerowana dla niego i dodać instrukcje, aby zwiększyć jego wydajność. Podaj agentowi jasne wskazówki dotyczące tego, co należy zrobić i jak to zrobić. Uwzględnij konkretne zadania, ich kolejność i wszelkie specjalne instrukcje, takie jak ton lub styl zaangażowania.
Napiwek
Agent może uzyskać dostęp do wielu narzędzi, takich jak interpreter kodu, które rozszerzają jego możliwości, takie jak możliwość wyszukiwania w Internecie za pomocą usługi Bing, uruchamiania kodu i nie tylko. W okienku Konfiguracja przewiń w dół do wiedzy i akcji, a następnie wybierz pozycję Dodaj, aby wyświetlić narzędzia dostępne do użycia.
Zobacz też
Zapoznaj się z modelami , których można używać z agentami.
| 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.
Uwaga
Do wykonania agenta standardowego lub podstawowego można użyć następujących zautomatyzowanych szablonów bicep. Możesz również utworzyć podstawowego agenta przy użyciu portalu usługi Azure AI Foundry. Usługa Azure AI Foundry obecnie nie obsługuje standardowej konfiguracji agenta.
[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("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();
}
}
}
}
| 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.
Uwaga
Do wykonania agenta standardowego lub podstawowego można użyć następujących zautomatyzowanych szablonów bicep. Możesz również utworzyć podstawowego agenta przy użyciu portalu usługi Azure AI Foundry. Usługa Azure AI Foundry obecnie nie obsługuje standardowej konfiguracji agenta.
[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.
Uwaga
Do wykonania agenta standardowego lub podstawowego można użyć następujących zautomatyzowanych szablonów bicep. Możesz również utworzyć podstawowego agenta przy użyciu portalu usługi Azure AI Foundry. Usługa Azure AI Foundry obecnie nie obsługuje standardowej konfiguracji agenta.
[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.
Uwaga
Do wykonania agenta standardowego lub podstawowego można użyć następujących zautomatyzowanych szablonów bicep. Możesz również utworzyć podstawowego agenta przy użyciu portalu usługi Azure AI Foundry. Usługa Azure AI Foundry obecnie nie obsługuje standardowej konfiguracji agenta.
[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.
Uwaga
Do wykonania agenta standardowego lub podstawowego można użyć następujących zautomatyzowanych szablonów bicep. Możesz również utworzyć podstawowego agenta przy użyciu portalu usługi Azure AI Foundry. Usługa Azure AI Foundry obecnie nie obsługuje standardowej konfiguracji agenta.
[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!
---------------------------------
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie.
- 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.
Uwaga
Do wykonania agenta standardowego lub podstawowego można użyć następujących zautomatyzowanych szablonów bicep. Możesz również utworzyć podstawowego agenta przy użyciu portalu usługi Azure AI Foundry. Usługa Azure AI Foundry obecnie nie obsługuje standardowej konfiguracji agenta.
[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. |
Aby uwierzytelnić żądania interfejsu API, użyj polecenia az login , aby zalogować się do subskrypcji platformy Azure.
az login
Następnie należy pobrać token Entra ID, aby podać go jako autoryzację do wywołań interfejsu API. Pobierz token przy użyciu polecenia interfejsu wiersza polecenia:
az account get-access-token --resource 'https://ml.azure.com/' | jq -r .accessToken | tr -d '"'
Ustaw token dostępu jako zmienną środowiskową o nazwie AZURE_AI_AGENTS_TOKEN
.
Aby pomyślnie wykonać wywołania interfejsu API REST do usługi Azure AI Agents Service, należy użyć punktu końcowego w następujący sposób:
https://<HostName>/agents/v1.0/subscriptions/<AzureSubscriptionId>/resourceGroups/<ResourceGroup>/providers/Microsoft.MachineLearningServices/workspaces/<ProjectName>
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} --subscription {subscription_name} --resource-group {resource_group_name} --query discovery_url
Na przykład punkt końcowy może wyglądać następująco:
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
Ustaw ten punkt końcowy jako zmienną środowiskową o nazwie AZURE_AI_AGENTS_ENDPOINT
.
Utwórz agenta
Uwaga
W przypadku usługi Azure AI Agents parametr model
wymaga nazwy wdrożenia modelu. Jeśli nazwa wdrożenia modelu jest inna niż nazwa modelu bazowego, należy dostosować kod do "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"
}'
Tworzenie wątku
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 ''
Dodawanie pytania użytkownika do wątku
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?"
}'
Uruchamianie wątku
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",
}'
Pobieranie stanu przebiegu
curl $AZURE_AI_AGENTS_ENDPOINT/threads/thread_abc123/runs/run_abc123?api-version=2024-12-01-preview \
-H "Authorization: Bearer $AZURE_AI_AGENTS_TOKEN"
Pobieranie odpowiedzi agenta
curl $AZURE_AI_AGENTS_ENDPOINT/threads/thread_abc123/messages?api-version=2024-12-01-preview \
-H "Authorization: Bearer $AZURE_AI_AGENTS_TOKEN"