Краткое руководство. Создание нового агента (предварительная версия)
Служба агента искусственного интеллекта Azure позволяет создавать агенты ИИ, адаптированные к вашим потребностям, с помощью пользовательских инструкций и дополнены расширенными инструментами, такими как интерпретатор кода и пользовательские функции.
Необходимые компоненты
- Подписка Azure — создайте бесплатную учетную запись.
- Убедитесь, что у вас назначена роль RBAC разработчикаAzure.
Базовая поддержка настройки агента
Перед началом работы определите, нужно ли выполнить базовую настройку агента или стандартную настройку агента. Azure AI Foundry поддерживает только базовую настройку агента.
Базовая настройка. Агенты используют многотенантные ресурсы поиска и хранилища, полностью управляемые корпорацией Майкрософт. У вас нет видимости или контроля над этими базовыми ресурсами Azure. Базовую настройку можно создать с помощью портала Azure AI Foundry или шаблона автоматического bicep.
Стандартная настройка. Агенты используют ресурсы поиска и хранилища с одним клиентом. С помощью этой настройки вы можете полностью контролировать и просматривать эти ресурсы, но вы несете затраты на основе использования. Стандартная настройка может выполняться только с помощью автоматизированного шаблона bicep.
Внимание
Портал Azure AI Foundry поддерживает только базовую настройку в настоящее время. Если вы хотите выполнить стандартную настройку агента, используйте другие вкладки в верхней части статьи, чтобы узнать о стандартной конфигурации агента.
Создание концентратора и проекта на портале Azure AI Foundry
Чтобы создать новый концентратор и проект, вам потребуется роль владельца или участника в группе ресурсов или существующем концентраторе. Если вы не можете создать концентратор из-за разрешений, обратитесь к администратору.
Чтобы создать проект в Azure AI Foundry, выполните следующие действия.
Перейдите в Azure AI Foundry. Если вы находитесь в проекте, выберите Azure AI Foundry в левом верхнем углу страницы, чтобы перейти на домашнюю страницу.
Нажмите кнопку " + Создать проект".
Введите имя проекта.
Если у вас есть концентратор, вы увидите тот, который вы недавно использовали.
Если у вас есть доступ к нескольким концентраторам, можно выбрать другой концентратор в раскрывающемся списке.
Если вы хотите создать новый, выберите "Создать концентратор " и укажите имя. Если вы хотите настроить значения по умолчанию, см . документацию по Azure AI Foundry.
Нажмите кнопку создания.
Развертывание модели
Войдите в Azure AI Foundry.
Перейдите к проекту или создайте проект на портале Azure AI Foundry.
В обзоре проекта выберите "Агенты", расположенные в разделе "Сборка и настройка".
Выберите ресурс Azure OpenAI.
Выберите развертывание модели для используемого агента. Если у вас нет одного, откроется экран для развертывания новой модели. В противном случае можно выбрать " Развернуть модель".
Использование игровой площадки агента
На игровой площадке агентов можно просматривать, прототипы и тестовые агенты без необходимости запускать какой-либо код. На этой странице можно быстро итерировать и экспериментировать с новыми идеями.
На экране "Создание и отладка агентов" выберите агент или создайте новый с помощью нового агента. В области установки справа можно изменить параметры и средства.
Вы можете при необходимости предоставить агенту имя, отличное от созданного для него, и добавить инструкции, чтобы повысить производительность. Предоставьте агенту четкие указания о том, что делать и как это сделать. Включите конкретные задачи, их порядок и любые специальные инструкции, такие как тон или стиль взаимодействия.
Совет
Агент может получить доступ к нескольким средствам, таким как интерпретатор кода, расширяющий свои возможности, например возможность поиска в Интернете с помощью Bing, выполнения кода и т. д. В области установки прокрутите вниз до знаний и действий и нажмите кнопку "Добавить", чтобы просмотреть доступные средства для использования.
См. также
Ознакомьтесь с моделями, которые можно использовать с агентами.
| Пакет исходного кода | библиотеки примеров | справочной документации | (NuGet) |
Необходимые компоненты
- Подписка Azure — создайте бесплатную учетную запись.
- Последняя версия .NET
- Убедитесь, что у вас есть роль RBAC разработчика Azure для разработчиковИИ, назначенная на соответствующем уровне.
- Установите Azure CLI и расширение машинного обучения. Если у вас уже установлен интерфейс командной строки, убедитесь, что он обновлен до последней версии.
Настройка проекта Центра ИИ Azure и агента
В следующем разделе показано, как настроить необходимые ресурсы для начала работы со службой агента ИИ Azure:
Создание Центра искусственного интеллекта Azure для настройки среды приложения и ресурсов Azure.
Создание проекта ИИ Azure в центре создает конечную точку для вызова приложения и настраивает службы приложений для доступа к ресурсам в клиенте.
Подключение ресурса Azure OpenAI или ресурса Служб искусственного интеллекта Azure
Выбор базовой или стандартной настройки агента
Базовая настройка. Агенты используют многотенантные ресурсы поиска и хранилища, полностью управляемые корпорацией Майкрософт. У вас нет видимости или контроля над этими базовыми ресурсами Azure.
Стандартная настройка. Агенты используют ресурсы поиска и хранилища с одним клиентом. С помощью этой настройки вы можете полностью контролировать и просматривать эти ресурсы, но вы несете затраты на основе использования.
Примечание.
Для выполнения стандартного или базового агента можно использовать следующие автоматические шаблоны bicep. Вы также можете создать базовый агент с помощью портала Azure AI Foundry. Azure AI Foundry в настоящее время не поддерживает настройку стандартного агента.
[Необязательно] Выбор модели в шаблоне autodeploy
Модель, используемую агентом, можно настроить, изменив параметры модели в шаблоне autodeploy. Чтобы развернуть другую модель, необходимо обновить по крайней мере параметры modelName
и modelVersion
параметры.
По умолчанию шаблон развертывания настраивается со следующими значениями:
Параметр модели | Значение по умолчанию |
---|---|
modelName | gpt-4o-mini |
modelFormat | OpenAI (для Azure OpenAI) |
modelVersion | 2024-07-18 |
modelSkuName | GlobalStandard |
modelLocation | eastus |
Внимание
Не изменяйте параметр modelFormat.
Шаблоны поддерживают только развертывание моделей Azure OpenAI. Сведения о том, какие модели Azure OpenAI поддерживаются в документации по модели службы агента ИИ Azure.
[Необязательно] Использование собственных ресурсов во время установки агента
Примечание.
Если вы используете существующие службы ИИ или ресурс Azure OpenAI, модель не будет развернута. После завершения установки агента можно развернуть модель в ресурсе.
Используйте существующие службы ИИ, Azure OpenAI, поиск ИИ и (или) Хранилище BLOB-объектов Azure ресурс, предоставив полный идентификатор ресурса arm в файле параметров:
aiServiceAccountResourceId
aiSearchServiceResourceId
aiStorageAccountResourceId
Если вы хотите использовать существующий ресурс Azure OpenAI, необходимо обновить aiServiceAccountResourceId
aiServiceKind
параметры в файле параметров. Параметр aiServiceKind
должен иметь значение AzureOpenAI
.
Дополнительные сведения см. в статье об использовании собственных ресурсов.
Настройка и запуск агента
Компонент | Description |
---|---|
Агент | Настраиваемый ИИ, использующий модели ИИ в сочетании с инструментами. |
Средство | Средства помогают расширить способность агента надежно и точно реагировать во время беседы. Например, подключение к определяемым пользователем база знаний на основе модели или включение веб-поиска для предоставления текущей информации. |
Дискуссия | Сеанс беседы между агентом и пользователем. Потоки хранят сообщения и автоматически обрабатывают усечение, чтобы поместить содержимое в контекст модели. |
Сообщение | Сообщение, созданное агентом или пользователем. Сообщения могут включать текст, изображения и другие файлы. Сообщения хранятся в виде списка в потоке. |
Выполнить | Активация агента для запуска на основе содержимого Thread. Агент использует свою конфигурацию и сообщения потока для выполнения задач путем вызова моделей и инструментов. В рамках выполнения агент добавляет сообщения в поток. |
Шаг выполнения | Подробный список шагов, выполняемых агентом в рамках запуска. Агент может вызывать средства или создавать сообщения во время его выполнения. Изучение шагов выполнения позволяет понять, как агент получает результаты. |
Установите пакет .NET в проект. Например, если вы используете интерфейс командной строки .NET, выполните следующую команду.
dotnet add package Azure.AI.Projects
dotnet add package Azure.Identity
Затем, чтобы пройти проверку подлинности запросов API и запустить программу, используйте команду az login для входа в подписку Azure.
az login
Используйте следующий код для создания и запуска агента. Чтобы запустить этот код, необходимо создать строка подключения с помощью сведений из проекта. Эта строка находится в формате:
<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>
Совет
Вы также можете найти строка подключения в обзоре проекта на портале Azure AI Foundry в разделе "Сведения о>проекте" строка подключения.
HostName
можно найти, перейдя к вашему discovery_url
и удалив начальный https://
и конечный /discovery
. Чтобы найти, discovery_url
выполните следующую команду CLI:
az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
Например, строка подключения может выглядеть примерно так:
eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
Задайте этот строка подключения в качестве переменной среды с именем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();
}
}
}
}
| Пакет исходного кода | библиотеки примеров | справочной документации | (PyPi) |
Необходимые компоненты
- Подписка Azure — создайте бесплатную учетную запись.
- Python 3.8 или более поздней версии
- Убедитесь, что у вас есть роль RBAC разработчика Azure для разработчиковИИ, назначенная на соответствующем уровне.
- Установите Azure CLI и расширение машинного обучения. Если у вас уже установлен интерфейс командной строки, убедитесь, что он обновлен до последней версии.
Настройка проекта Центра ИИ Azure и агента
В следующем разделе показано, как настроить необходимые ресурсы для начала работы со службой агента ИИ Azure:
Создание Центра искусственного интеллекта Azure для настройки среды приложения и ресурсов Azure.
Создание проекта ИИ Azure в центре создает конечную точку для вызова приложения и настраивает службы приложений для доступа к ресурсам в клиенте.
Подключение ресурса Azure OpenAI или ресурса Служб искусственного интеллекта Azure
Выбор базовой или стандартной настройки агента
Базовая настройка. Агенты используют многотенантные ресурсы поиска и хранилища, полностью управляемые корпорацией Майкрософт. У вас нет видимости или контроля над этими базовыми ресурсами Azure.
Стандартная настройка. Агенты используют ресурсы поиска и хранилища с одним клиентом. С помощью этой настройки вы можете полностью контролировать и просматривать эти ресурсы, но вы несете затраты на основе использования.
Примечание.
Для выполнения стандартного или базового агента можно использовать следующие автоматические шаблоны bicep. Вы также можете создать базовый агент с помощью портала Azure AI Foundry. Azure AI Foundry в настоящее время не поддерживает настройку стандартного агента.
[Необязательно] Выбор модели в шаблоне autodeploy
Модель, используемую агентом, можно настроить, изменив параметры модели в шаблоне autodeploy. Чтобы развернуть другую модель, необходимо обновить по крайней мере параметры modelName
и modelVersion
параметры.
По умолчанию шаблон развертывания настраивается со следующими значениями:
Параметр модели | Значение по умолчанию |
---|---|
modelName | gpt-4o-mini |
modelFormat | OpenAI (для Azure OpenAI) |
modelVersion | 2024-07-18 |
modelSkuName | GlobalStandard |
modelLocation | eastus |
Внимание
Не изменяйте параметр modelFormat.
Шаблоны поддерживают только развертывание моделей Azure OpenAI. Сведения о том, какие модели Azure OpenAI поддерживаются в документации по модели службы агента ИИ Azure.
[Необязательно] Использование собственных ресурсов во время установки агента
Примечание.
Если вы используете существующие службы ИИ или ресурс Azure OpenAI, модель не будет развернута. После завершения установки агента можно развернуть модель в ресурсе.
Используйте существующие службы ИИ, Azure OpenAI, поиск ИИ и (или) Хранилище BLOB-объектов Azure ресурс, предоставив полный идентификатор ресурса arm в файле параметров:
aiServiceAccountResourceId
aiSearchServiceResourceId
aiStorageAccountResourceId
Если вы хотите использовать существующий ресурс Azure OpenAI, необходимо обновить aiServiceAccountResourceId
aiServiceKind
параметры в файле параметров. Параметр aiServiceKind
должен иметь значение AzureOpenAI
.
Дополнительные сведения см. в статье об использовании собственных ресурсов.
Настройка и запуск агента
Компонент | Description |
---|---|
Агент | Настраиваемый ИИ, использующий модели ИИ в сочетании с инструментами. |
Средство | Средства помогают расширить способность агента надежно и точно реагировать во время беседы. Например, подключение к определяемым пользователем база знаний на основе модели или включение веб-поиска для предоставления текущей информации. |
Дискуссия | Сеанс беседы между агентом и пользователем. Потоки хранят сообщения и автоматически обрабатывают усечение, чтобы поместить содержимое в контекст модели. |
Сообщение | Сообщение, созданное агентом или пользователем. Сообщения могут включать текст, изображения и другие файлы. Сообщения хранятся в виде списка в потоке. |
Выполнить | Активация агента для запуска на основе содержимого Thread. Агент использует свою конфигурацию и сообщения потока для выполнения задач путем вызова моделей и инструментов. В рамках выполнения агент добавляет сообщения в поток. |
Шаг выполнения | Подробный список шагов, выполняемых агентом в рамках запуска. Агент может вызывать средства или создавать сообщения во время его выполнения. Изучение шагов выполнения позволяет понять, как агент получает результаты. |
Выполните следующие команды, чтобы установить пакеты Python.
pip install azure-ai-projects
pip install azure-identity
Затем, чтобы пройти проверку подлинности запросов API и запустить программу, используйте команду az login для входа в подписку Azure.
az login
Используйте следующий код для создания и запуска агента. Чтобы запустить этот код, необходимо создать строка подключения с помощью сведений из проекта. Эта строка находится в формате:
<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>
Совет
Вы также можете найти строка подключения в обзоре проекта на портале Azure AI Foundry в разделе "Сведения о>проекте" строка подключения.
HostName
можно найти, перейдя к вашему discovery_url
и удалив начальный https://
и конечный /discovery
. Чтобы найти, discovery_url
выполните следующую команду CLI:
az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
Например, строка подключения может выглядеть примерно так:
eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
Задайте этот строка подключения в качестве переменной среды с именем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")
| Пакет исходного кода | библиотеки справочной документации | (PyPi) |
Необходимые компоненты
- Подписка Azure — создайте бесплатную учетную запись.
- Python 3.8 или более поздней версии
- Убедитесь, что у вас есть роль RBAC разработчика Azure для разработчиковИИ, назначенная на соответствующем уровне.
- Вам нужна роль пользователя OpenAI Cognitive Services, назначенная для использования ресурса Служб искусственного интеллекта Azure.
- Установите Azure CLI и расширение машинного обучения. Если у вас уже установлен интерфейс командной строки, убедитесь, что он обновлен до последней версии.
Настройка проекта Центра ИИ Azure и агента
В следующем разделе показано, как настроить необходимые ресурсы для начала работы со службой агента ИИ Azure:
Создание Центра искусственного интеллекта Azure для настройки среды приложения и ресурсов Azure.
Создание проекта ИИ Azure в центре создает конечную точку для вызова приложения и настраивает службы приложений для доступа к ресурсам в клиенте.
Подключение ресурса Azure OpenAI или ресурса Служб искусственного интеллекта Azure
Выбор базовой или стандартной настройки агента
Базовая настройка. Агенты используют многотенантные ресурсы поиска и хранилища, полностью управляемые корпорацией Майкрософт. У вас нет видимости или контроля над этими базовыми ресурсами Azure.
Стандартная настройка. Агенты используют ресурсы поиска и хранилища с одним клиентом. С помощью этой настройки вы можете полностью контролировать и просматривать эти ресурсы, но вы несете затраты на основе использования.
Примечание.
Для выполнения стандартного или базового агента можно использовать следующие автоматические шаблоны bicep. Вы также можете создать базовый агент с помощью портала Azure AI Foundry. Azure AI Foundry в настоящее время не поддерживает настройку стандартного агента.
[Необязательно] Выбор модели в шаблоне autodeploy
Модель, используемую агентом, можно настроить, изменив параметры модели в шаблоне autodeploy. Чтобы развернуть другую модель, необходимо обновить по крайней мере параметры modelName
и modelVersion
параметры.
По умолчанию шаблон развертывания настраивается со следующими значениями:
Параметр модели | Значение по умолчанию |
---|---|
modelName | gpt-4o-mini |
modelFormat | OpenAI (для Azure OpenAI) |
modelVersion | 2024-07-18 |
modelSkuName | GlobalStandard |
modelLocation | eastus |
Внимание
Не изменяйте параметр modelFormat.
Шаблоны поддерживают только развертывание моделей Azure OpenAI. Сведения о том, какие модели Azure OpenAI поддерживаются в документации по модели службы агента ИИ Azure.
[Необязательно] Использование собственных ресурсов во время установки агента
Примечание.
Если вы используете существующие службы ИИ или ресурс Azure OpenAI, модель не будет развернута. После завершения установки агента можно развернуть модель в ресурсе.
Используйте существующие службы ИИ, Azure OpenAI, поиск ИИ и (или) Хранилище BLOB-объектов Azure ресурс, предоставив полный идентификатор ресурса arm в файле параметров:
aiServiceAccountResourceId
aiSearchServiceResourceId
aiStorageAccountResourceId
Если вы хотите использовать существующий ресурс Azure OpenAI, необходимо обновить aiServiceAccountResourceId
aiServiceKind
параметры в файле параметров. Параметр aiServiceKind
должен иметь значение AzureOpenAI
.
Дополнительные сведения см. в статье об использовании собственных ресурсов.
Настройка и запуск агента
Компонент | Description |
---|---|
Агент | Настраиваемый ИИ, использующий модели ИИ в сочетании с инструментами. |
Средство | Средства помогают расширить способность агента надежно и точно реагировать во время беседы. Например, подключение к определяемым пользователем база знаний на основе модели или включение веб-поиска для предоставления текущей информации. |
Дискуссия | Сеанс беседы между агентом и пользователем. Потоки хранят сообщения и автоматически обрабатывают усечение, чтобы поместить содержимое в контекст модели. |
Сообщение | Сообщение, созданное агентом или пользователем. Сообщения могут включать текст, изображения и другие файлы. Сообщения хранятся в виде списка в потоке. |
Выполнить | Активация агента для запуска на основе содержимого Thread. Агент использует свою конфигурацию и сообщения потока для выполнения задач путем вызова моделей и инструментов. В рамках выполнения агент добавляет сообщения в поток. |
Шаг выполнения | Подробный список шагов, выполняемых агентом в рамках запуска. Агент может вызывать средства или создавать сообщения во время его выполнения. Изучение шагов выполнения позволяет понять, как агент получает результаты. |
Выполните следующие команды, чтобы установить пакеты Python.
pip install azure-ai-projects
pip install azure-identity
pip install openai
Затем, чтобы пройти проверку подлинности запросов API и запустить программу, используйте команду az login для входа в подписку Azure.
az login
Используйте следующий код для создания и запуска агента. Чтобы запустить этот код, необходимо создать строка подключения с помощью сведений из проекта. Эта строка находится в формате:
<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>
Совет
Вы также можете найти строка подключения в обзоре проекта на портале Azure AI Foundry в разделе "Сведения о>проекте" строка подключения.
HostName
можно найти, перейдя к вашему discovery_url
и удалив начальный https://
и конечный /discovery
. Чтобы найти, discovery_url
выполните следующую команду CLI:
az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
Например, строка подключения может выглядеть примерно так:
eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
Задайте этот строка подключения в качестве переменной среды с именем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}")
| Пакет исходного кода | библиотеки примеров | справочной документации | (npm) |
Необходимые компоненты
- Подписка Azure — создайте бесплатную учетную запись.
- LTS Node.js
- Убедитесь, что у вас есть роль RBAC разработчика Azure для разработчиковИИ, назначенная на соответствующем уровне.
- Установите Azure CLI и расширение машинного обучения. Если у вас уже установлен интерфейс командной строки, убедитесь, что он обновлен до последней версии.
Настройка проекта Центра ИИ Azure и агента
В следующем разделе показано, как настроить необходимые ресурсы для начала работы со службой агента ИИ Azure:
Создание Центра искусственного интеллекта Azure для настройки среды приложения и ресурсов Azure.
Создание проекта ИИ Azure в центре создает конечную точку для вызова приложения и настраивает службы приложений для доступа к ресурсам в клиенте.
Подключение ресурса Azure OpenAI или ресурса Служб искусственного интеллекта Azure
Выбор базовой или стандартной настройки агента
Базовая настройка. Агенты используют многотенантные ресурсы поиска и хранилища, полностью управляемые корпорацией Майкрософт. У вас нет видимости или контроля над этими базовыми ресурсами Azure.
Стандартная настройка. Агенты используют ресурсы поиска и хранилища с одним клиентом. С помощью этой настройки вы можете полностью контролировать и просматривать эти ресурсы, но вы несете затраты на основе использования.
Примечание.
Для выполнения стандартного или базового агента можно использовать следующие автоматические шаблоны bicep. Вы также можете создать базовый агент с помощью портала Azure AI Foundry. Azure AI Foundry в настоящее время не поддерживает настройку стандартного агента.
[Необязательно] Выбор модели в шаблоне autodeploy
Модель, используемую агентом, можно настроить, изменив параметры модели в шаблоне autodeploy. Чтобы развернуть другую модель, необходимо обновить по крайней мере параметры modelName
и modelVersion
параметры.
По умолчанию шаблон развертывания настраивается со следующими значениями:
Параметр модели | Значение по умолчанию |
---|---|
modelName | gpt-4o-mini |
modelFormat | OpenAI (для Azure OpenAI) |
modelVersion | 2024-07-18 |
modelSkuName | GlobalStandard |
modelLocation | eastus |
Внимание
Не изменяйте параметр modelFormat.
Шаблоны поддерживают только развертывание моделей Azure OpenAI. Сведения о том, какие модели Azure OpenAI поддерживаются в документации по модели службы агента ИИ Azure.
[Необязательно] Использование собственных ресурсов во время установки агента
Примечание.
Если вы используете существующие службы ИИ или ресурс Azure OpenAI, модель не будет развернута. После завершения установки агента можно развернуть модель в ресурсе.
Используйте существующие службы ИИ, Azure OpenAI, поиск ИИ и (или) Хранилище BLOB-объектов Azure ресурс, предоставив полный идентификатор ресурса arm в файле параметров:
aiServiceAccountResourceId
aiSearchServiceResourceId
aiStorageAccountResourceId
Если вы хотите использовать существующий ресурс Azure OpenAI, необходимо обновить aiServiceAccountResourceId
aiServiceKind
параметры в файле параметров. Параметр aiServiceKind
должен иметь значение AzureOpenAI
.
Дополнительные сведения см. в статье об использовании собственных ресурсов.
Настройка и запуск агента
Компонент | Description |
---|---|
Агент | Настраиваемый ИИ, использующий модели ИИ в сочетании с инструментами. |
Средство | Средства помогают расширить способность агента надежно и точно реагировать во время беседы. Например, подключение к определяемым пользователем база знаний на основе модели или включение веб-поиска для предоставления текущей информации. |
Дискуссия | Сеанс беседы между агентом и пользователем. Потоки хранят сообщения и автоматически обрабатывают усечение, чтобы поместить содержимое в контекст модели. |
Сообщение | Сообщение, созданное агентом или пользователем. Сообщения могут включать текст, изображения и другие файлы. Сообщения хранятся в виде списка в потоке. |
Выполнить | Активация агента для запуска на основе содержимого Thread. Агент использует свою конфигурацию и сообщения потока для выполнения задач путем вызова моделей и инструментов. В рамках выполнения агент добавляет сообщения в поток. |
Шаг выполнения | Подробный список шагов, выполняемых агентом в рамках запуска. Агент может вызывать средства или создавать сообщения во время его выполнения. Изучение шагов выполнения позволяет понять, как агент получает результаты. |
Выполните следующие команды, чтобы установить пакеты npm.
npm install @azure/ai-projects
npm install @azure/identity
Затем, чтобы пройти проверку подлинности запросов API и запустить программу, используйте команду az login для входа в подписку Azure.
az login
Используйте следующий код для создания и запуска агента. Чтобы запустить этот код, необходимо создать строка подключения с помощью сведений из проекта. Эта строка находится в формате:
<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>
Совет
Вы также можете найти строка подключения в обзоре проекта на портале Azure AI Foundry в разделе "Сведения о>проекте" строка подключения.
HostName
можно найти, перейдя к вашему discovery_url
и удалив начальный https://
и конечный /discovery
. Чтобы найти, discovery_url
выполните следующую команду CLI:
az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
Например, строка подключения может выглядеть примерно так:
eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
Задайте этот строка подключения в качестве переменной среды с именем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);
});
Выходные данные содержат запрос и ответы.
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!
---------------------------------
| Пакет исходного кода | библиотеки примеров | справочной документации | (npm) |
Необходимые компоненты
- Подписка Azure — создайте бесплатную учетную запись.
- LTS Node.js
- TypeScript 5.x
- Убедитесь, что у вас есть роль RBAC разработчика Azure для разработчиковИИ, назначенная на соответствующем уровне.
- Установите Azure CLI и расширение машинного обучения. Если у вас уже установлен интерфейс командной строки, убедитесь, что он обновлен до последней версии.
Настройка проекта Центра ИИ Azure и агента
В следующем разделе показано, как настроить необходимые ресурсы для начала работы со службой агента ИИ Azure:
Создание Центра искусственного интеллекта Azure для настройки среды приложения и ресурсов Azure.
Создание проекта ИИ Azure в центре создает конечную точку для вызова приложения и настраивает службы приложений для доступа к ресурсам в клиенте.
Подключение ресурса Azure OpenAI или ресурса Служб искусственного интеллекта Azure
Выбор базовой или стандартной настройки агента
Базовая настройка. Агенты используют многотенантные ресурсы поиска и хранилища, полностью управляемые корпорацией Майкрософт. У вас нет видимости или контроля над этими базовыми ресурсами Azure.
Стандартная настройка. Агенты используют ресурсы поиска и хранилища с одним клиентом. С помощью этой настройки вы можете полностью контролировать и просматривать эти ресурсы, но вы несете затраты на основе использования.
Примечание.
Для выполнения стандартного или базового агента можно использовать следующие автоматические шаблоны bicep. Вы также можете создать базовый агент с помощью портала Azure AI Foundry. Azure AI Foundry в настоящее время не поддерживает настройку стандартного агента.
[Необязательно] Выбор модели в шаблоне autodeploy
Модель, используемую агентом, можно настроить, изменив параметры модели в шаблоне autodeploy. Чтобы развернуть другую модель, необходимо обновить по крайней мере параметры modelName
и modelVersion
параметры.
По умолчанию шаблон развертывания настраивается со следующими значениями:
Параметр модели | Значение по умолчанию |
---|---|
modelName | gpt-4o-mini |
modelFormat | OpenAI (для Azure OpenAI) |
modelVersion | 2024-07-18 |
modelSkuName | GlobalStandard |
modelLocation | eastus |
Внимание
Не изменяйте параметр modelFormat.
Шаблоны поддерживают только развертывание моделей Azure OpenAI. Сведения о том, какие модели Azure OpenAI поддерживаются в документации по модели службы агента ИИ Azure.
[Необязательно] Использование собственных ресурсов во время установки агента
Примечание.
Если вы используете существующие службы ИИ или ресурс Azure OpenAI, модель не будет развернута. После завершения установки агента можно развернуть модель в ресурсе.
Используйте существующие службы ИИ, Azure OpenAI, поиск ИИ и (или) Хранилище BLOB-объектов Azure ресурс, предоставив полный идентификатор ресурса arm в файле параметров:
aiServiceAccountResourceId
aiSearchServiceResourceId
aiStorageAccountResourceId
Если вы хотите использовать существующий ресурс Azure OpenAI, необходимо обновить aiServiceAccountResourceId
aiServiceKind
параметры в файле параметров. Параметр aiServiceKind
должен иметь значение AzureOpenAI
.
Дополнительные сведения см. в статье об использовании собственных ресурсов.
Настройка и запуск агента
Компонент | Description |
---|---|
Агент | Настраиваемый ИИ, использующий модели ИИ в сочетании с инструментами. |
Средство | Средства помогают расширить способность агента надежно и точно реагировать во время беседы. Например, подключение к определяемым пользователем база знаний на основе модели или включение веб-поиска для предоставления текущей информации. |
Дискуссия | Сеанс беседы между агентом и пользователем. Потоки хранят сообщения и автоматически обрабатывают усечение, чтобы поместить содержимое в контекст модели. |
Сообщение | Сообщение, созданное агентом или пользователем. Сообщения могут включать текст, изображения и другие файлы. Сообщения хранятся в виде списка в потоке. |
Выполнить | Активация агента для запуска на основе содержимого Thread. Агент использует свою конфигурацию и сообщения потока для выполнения задач путем вызова моделей и инструментов. В рамках выполнения агент добавляет сообщения в поток. |
Шаг выполнения | Подробный список шагов, выполняемых агентом в рамках запуска. Агент может вызывать средства или создавать сообщения во время его выполнения. Изучение шагов выполнения позволяет понять, как агент получает результаты. |
Выполните следующие команды, чтобы установить пакеты npm.
npm install @azure/ai-projects
npm install @azure/identity
Затем, чтобы пройти проверку подлинности запросов API и запустить программу, используйте команду az login для входа в подписку Azure.
az login
Используйте следующий код для создания и запуска агента. Чтобы запустить этот код, необходимо создать строка подключения с помощью сведений из проекта. Эта строка находится в формате:
<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>
Совет
Вы также можете найти строка подключения в обзоре проекта на портале Azure AI Foundry в разделе "Сведения о>проекте" строка подключения.
HostName
можно найти, перейдя к вашему discovery_url
и удалив начальный https://
и конечный /discovery
. Чтобы найти, discovery_url
выполните следующую команду CLI:
az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
Например, строка подключения может выглядеть примерно так:
eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
Задайте этот строка подключения в качестве переменной среды с именем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);
});
Выходные данные содержат запрос и ответы.
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!
---------------------------------
Необходимые компоненты
- Подписка Azure — создайте бесплатную учетную запись.
- Убедитесь, что у вас есть роль RBAC разработчика Azure для разработчиковИИ, назначенная на соответствующем уровне.
- Вам нужна роль пользователя OpenAI Cognitive Services, назначенная для использования ресурса Служб искусственного интеллекта Azure.
- Установите Azure CLI и расширение машинного обучения. Если у вас уже установлен интерфейс командной строки, убедитесь, что он обновлен до последней версии.
Настройка проекта Центра ИИ Azure и агента
В следующем разделе показано, как настроить необходимые ресурсы для начала работы со службой агента ИИ Azure:
Создание Центра искусственного интеллекта Azure для настройки среды приложения и ресурсов Azure.
Создание проекта ИИ Azure в центре создает конечную точку для вызова приложения и настраивает службы приложений для доступа к ресурсам в клиенте.
Подключение ресурса Azure OpenAI или ресурса Служб искусственного интеллекта Azure
Выбор базовой или стандартной настройки агента
Базовая настройка. Агенты используют многотенантные ресурсы поиска и хранилища, полностью управляемые корпорацией Майкрософт. У вас нет видимости или контроля над этими базовыми ресурсами Azure.
Стандартная настройка. Агенты используют ресурсы поиска и хранилища с одним клиентом. С помощью этой настройки вы можете полностью контролировать и просматривать эти ресурсы, но вы несете затраты на основе использования.
Примечание.
Для выполнения стандартного или базового агента можно использовать следующие автоматические шаблоны bicep. Вы также можете создать базовый агент с помощью портала Azure AI Foundry. Azure AI Foundry в настоящее время не поддерживает настройку стандартного агента.
[Необязательно] Выбор модели в шаблоне autodeploy
Модель, используемую агентом, можно настроить, изменив параметры модели в шаблоне autodeploy. Чтобы развернуть другую модель, необходимо обновить по крайней мере параметры modelName
и modelVersion
параметры.
По умолчанию шаблон развертывания настраивается со следующими значениями:
Параметр модели | Значение по умолчанию |
---|---|
modelName | gpt-4o-mini |
modelFormat | OpenAI (для Azure OpenAI) |
modelVersion | 2024-07-18 |
modelSkuName | GlobalStandard |
modelLocation | eastus |
Внимание
Не изменяйте параметр modelFormat.
Шаблоны поддерживают только развертывание моделей Azure OpenAI. Сведения о том, какие модели Azure OpenAI поддерживаются в документации по модели службы агента ИИ Azure.
[Необязательно] Использование собственных ресурсов во время установки агента
Примечание.
Если вы используете существующие службы ИИ или ресурс Azure OpenAI, модель не будет развернута. После завершения установки агента можно развернуть модель в ресурсе.
Используйте существующие службы ИИ, Azure OpenAI, поиск ИИ и (или) Хранилище BLOB-объектов Azure ресурс, предоставив полный идентификатор ресурса arm в файле параметров:
aiServiceAccountResourceId
aiSearchServiceResourceId
aiStorageAccountResourceId
Если вы хотите использовать существующий ресурс Azure OpenAI, необходимо обновить aiServiceAccountResourceId
aiServiceKind
параметры в файле параметров. Параметр aiServiceKind
должен иметь значение AzureOpenAI
.
Дополнительные сведения см. в статье об использовании собственных ресурсов.
Настройка и запуск агента
Компонент | Description |
---|---|
Агент | Настраиваемый ИИ, использующий модели ИИ в сочетании с инструментами. |
Средство | Средства помогают расширить способность агента надежно и точно реагировать во время беседы. Например, подключение к определяемым пользователем база знаний на основе модели или включение веб-поиска для предоставления текущей информации. |
Дискуссия | Сеанс беседы между агентом и пользователем. Потоки хранят сообщения и автоматически обрабатывают усечение, чтобы поместить содержимое в контекст модели. |
Сообщение | Сообщение, созданное агентом или пользователем. Сообщения могут включать текст, изображения и другие файлы. Сообщения хранятся в виде списка в потоке. |
Выполнить | Активация агента для запуска на основе содержимого Thread. Агент использует свою конфигурацию и сообщения потока для выполнения задач путем вызова моделей и инструментов. В рамках выполнения агент добавляет сообщения в поток. |
Шаг выполнения | Подробный список шагов, выполняемых агентом в рамках запуска. Агент может вызывать средства или создавать сообщения во время его выполнения. Изучение шагов выполнения позволяет понять, как агент получает результаты. |
Чтобы выполнить проверку подлинности запросов API, используйте команду az login для входа в подписку Azure.
az login
Затем необходимо получить маркер идентификатора Записи, чтобы предоставить в качестве авторизации вызовы API. Получение маркера с помощью команды CLI:
az account get-access-token --resource 'https://ml.azure.com/' | jq -r .accessToken | tr -d '"'
Задайте маркер доступа в качестве переменной среды с именем AZURE_AI_AGENTS_TOKEN
.
Чтобы успешно выполнять вызовы REST API к службе агентов ИИ Azure, необходимо использовать конечную точку, как показано ниже:
https://<HostName>/agents/v1.0/subscriptions/<AzureSubscriptionId>/resourceGroups/<ResourceGroup>/providers/Microsoft.MachineLearningServices/workspaces/<ProjectName>
HostName
можно найти, перейдя к вашему discovery_url
и удалив начальный https://
и конечный /discovery
. Чтобы найти, discovery_url
выполните следующую команду CLI:
az ml workspace show -n {project_name} --subscription {subscription_name} --resource-group {resource_group_name} --query discovery_url
Например, конечная точка может выглядеть примерно так:
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
Задайте эту конечную точку в качестве переменной среды с именем AZURE_AI_AGENTS_ENDPOINT
.
Создание агента
Примечание.
Для службы агентов ИИ Azure для model
параметра требуется имя развертывания модели. Если имя развертывания модели отличается от имени базовой модели, то вы измените код на "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"
}'
Создание потока
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 ''
Добавление вопроса пользователя в поток
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?"
}'
Запуск потока
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",
}'
Получение состояния выполнения
curl $AZURE_AI_AGENTS_ENDPOINT/threads/thread_abc123/runs/run_abc123?api-version=2024-12-01-preview \
-H "Authorization: Bearer $AZURE_AI_AGENTS_TOKEN"
Получение ответа агента
curl $AZURE_AI_AGENTS_ENDPOINT/threads/thread_abc123/messages?api-version=2024-12-01-preview \
-H "Authorization: Bearer $AZURE_AI_AGENTS_TOKEN"