Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Модели Foundry имеют ограничение на знания. Они не могут получить доступ к новой информации за пределы фиксированной точки во времени. Агенты могут использовать общедоступные веб-данные в режиме реального времени с помощью функции "Приземление с поиском Bing" и "Приземление с Bing Custom Search" (предварительный просмотр) при создании ответов. Используя эти средства, вы можете задавать такие вопросы, как "что такое лучшие новости искусственного интеллекта сегодня".
Процесс заземления состоит из нескольких ключевых этапов:
- Формулировка запроса: агент определяет пробелы в информации и создает поисковые запросы.
- Выполнение поиска: средство приземления отправляет запросы в поисковые системы и получает результаты.
- Синтез информации: агент обрабатывает результаты поиска и интегрирует результаты в ответы.
- Указание источника: агент обеспечивает прозрачность, ссылаясь на источники поиска.
Важно
- Интеграция с помощью поиска Bing и интеграция с пользовательским поиском Bing являются сервисами первого уровня с условиями для онлайн-сервисов. Они управляются Grounding с условиями использования Bing и заявлением о конфиденциальности Microsoft.
- Дополнение к соглашению о защите данных Microsoft не применяется к данным, отправленным в Bing Search или Bing Custom Search. При использовании этих служб данные передаются за пределы соответствия требованиям и географических границ Azure. Это также означает, что использование этих служб аннулирует все усиленные обязательства по обеспечению безопасности и соответствия требованиям облачных сервисов Государственного Сообщества, включая соблюдение суверенитета данных и проверенной/гражданской поддержки, в зависимости от применимости.
- Использование обоснования с поиском Bing и обоснования с пользовательским поиском Bing влечет за собой расходы. Дополнительные сведения см. в ценах.
- Дополнительные сведения о том, как администраторы Azure могут управлять доступом к использованию Grounding с помощью Bing Search и Grounding с Bing Custom Search, см. в разделе
.
Примечание
Начните с средства поиска в Интернете. Узнайте больше о различиях между веб-поиском и контекстуализацией с помощью поиска Bing (или контекстуализацией с помощью пользовательского поиска Bing) в обзоре веб-основания.
Поддержка использования
В следующей таблице показана поддержка пакета SDK и настройки.
| поддержка Microsoft Foundry | пакет SDK Python | C# SDK | JavaScript SDK | пакет SDK Java | REST API | Базовая настройка агента | Настройка стандартного агента |
|---|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Примечание
Не все модели поддерживают заземление с помощью службы "Поиск Bing" или "Заземление" с помощью пользовательского поиска Bing. Полный список моделей, поддерживающих эти средства, см. в разделе "Поддержка инструментов по регионам и моделям".
Необходимые условия
Прежде чем начать, убедитесь, что у вас есть:
- Подписка Azure с необходимыми разрешениями.
- Роли Azure RBAC:
- Роль участника или владельца на уровне подписки или группы ресурсов для создания ресурсов Bing и получения ключей ресурсов.
- роль Azure AI Project Manager для создания подключений проектов в Foundry. Для получения дополнительной информации см. управление доступом на основе ролей для Microsoft Foundry.
- Проект Foundry, созданный с настроенной конечной точкой.
- Модель искусственного интеллекта, развернутая в проекте.
- Пакет SDK, установленный для предпочитаемого языка:
- Python:
azure-ai-projects - C#:
Azure.AI.Extensions.OpenAI - TypeScript/JavaScript:
@azure/ai-projects - Java:
com.azure:azure-ai-agents:2.0.0
- Python:
- Azure учетные данные, настроенные для проверки подлинности (например,
DefaultAzureCredential).- Настройка переменных среды для примеров REST:
-
FOUNDRY_PROJECT_ENDPOINT: URL-адрес конечной точки проекта Foundry. -
FOUNDRY_MODEL_DEPLOYMENT_NAME: имя развернутой модели. -
BING_PROJECT_CONNECTION_ID: Ваш идентификатор подключения проекта Grounding с Bing Search. -
BING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID: Ваш идентификатор подключения проекта Grounding с Bing Custom Search. -
BING_CUSTOM_SEARCH_INSTANCE_NAME: имя экземпляра настраиваемого поиска. -
AGENT_TOKEN.
-
- Настройка переменных среды для примеров REST:
- Ресурс Bing Grounding или Bing Custom Search создан и подключен к проекту Foundry. Для создания ресурса «Граундирование с Bing Search» или «Граундирование с Bing Custom Search» требуется платная подписка.
- Инструмент заземления с помощью Bing Search работает в проекте Foundry, защищенном сетью, но функционирует как общедоступная конечная точка. Учитывайте это поведение при использовании средства в защищенной сети среде.
Установка
В этом разделе описано, как добавить подключение к проекту для ресурса Bing и записать значения, используемые в примерах. Примеры пакета SDK используют имя подключения проекта и определяют идентификатор подключения во время выполнения. Примеры REST используют идентификатор подключения проекта. Вы можете использовать этот шаблон bicep для создания базового агента с включенной функцией заземления с помощью средства поиска Bing.
Если у вас уже есть идентификатор подключения проекта для ресурса Bing, который вы хотите использовать, пропустите этот раздел.
Добавьте соответствующее подключение к проекту.
Пошаговые инструкции см. в разделе "Добавление нового подключения к проекту".
Важно
- Вам нужна роль участника или владельца на уровне подписки или группы ресурсов, чтобы создать ресурсы Bing и получить ключи ресурсов.
- Чтобы найти ключи ресурсов, перейдите в свой ресурс Grounding в Bing на портале Azure>Resource Management>Keys.
Получите имя и идентификатор подключения проекта из сведений о подключении, а затем задайте значения в качестве переменных среды.
- Примеры пакета SDK:
- Для настройки с помощью поиска Bing: установите
BING_PROJECT_CONNECTION_NAME. - Для приземления с помощью пользовательского поиска Bing: задано.
BING_CUSTOM_SEARCH_PROJECT_CONNECTION_NAME
- Для настройки с помощью поиска Bing: установите
- Для примеров REST:
- Для настройки с помощью поиска Bing: установите
BING_PROJECT_CONNECTION_ID. - Для приземления с помощью пользовательского поиска Bing: задано.
BING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID
- Для настройки с помощью поиска Bing: установите
Идентификатор подключения проекта использует формат:
/subscriptions/{{subscriptionID}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.CognitiveServices/accounts/{{foundryAccountName}}/projects/{{foundryProjectName}}/connections/{{foundryConnectionName}}
Доступные средства
| Инструмент | Описание | Вариант использования |
|---|---|---|
| Ознакомление с поиском Bing | Предоставляет агентам стандартный доступ к возможностям поиска Bing. | Сценарии, требующие широкого доступа к знаниям. |
| Приземление с помощью пользовательского поиска Bing (предварительная версия) | Позволяет агентам выполнять поиск в настраиваемом наборе общедоступных веб-доменов. Вы определяете части веба, от которых вы хотите получать данные, чтобы пользователи видели только релевантные результаты из всех выбранных доменов. | Сценарии, требующие управления информацией. |
Примечание
Ознакомьтесь с рекомендациями по оптимизации использования инструментов.
Примеры кода
Примечание
- Вам нужен последний пакет SDK. Дополнительные сведения см. в кратком руководстве .
- Для примеров пакета SDK используйте имя подключения проекта. Для примеров REST используйте идентификатор подключения проекта в формате
/subscriptions/{{subscriptionID}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.CognitiveServices/accounts/{{foundryAccountName}}/projects/{{foundryProjectName}}/connections/{{foundryConnectionName}}.
В следующих примерах показано, как создать агент с помощью средств поиска Bing и как использовать агент для реагирования на запросы пользователей.
Ознакомление с поиском Bing
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import (
PromptAgentDefinition,
BingGroundingTool,
BingGroundingSearchToolParameters,
BingGroundingSearchConfiguration,
)
# Format: "https://resource_name.ai.azure.com/api/projects/project_name"
PROJECT_ENDPOINT = "your_project_endpoint"
BING_CONNECTION_NAME = "my-bing-connection"
# Create clients to call Foundry API
project = AIProjectClient(
endpoint=PROJECT_ENDPOINT,
credential=DefaultAzureCredential(),
)
openai = project.get_openai_client()
# Get connection ID from connection name
bing_connection = project.connections.get(BING_CONNECTION_NAME)
agent = project.agents.create_version(
agent_name="MyAgent",
definition=PromptAgentDefinition(
model="gpt-4.1-mini",
instructions="You are a helpful assistant.",
tools=[
BingGroundingTool(
bing_grounding=BingGroundingSearchToolParameters(
search_configurations=[
BingGroundingSearchConfiguration(
project_connection_id=bing_connection.id
)
]
)
)
],
),
description="You are a helpful agent.",
)
print(f"Agent created (id: {agent.id}, name: {agent.name}, version: {agent.version})")
stream_response = openai.responses.create(
stream=True,
tool_choice="required",
input="What is today's date and weather in Seattle?",
extra_body={"agent_reference": {"name": agent.name, "type": "agent_reference"}},
)
for event in stream_response:
if event.type == "response.created":
print(f"Follow-up response created with ID: {event.response.id}")
elif event.type == "response.output_text.delta":
print(f"Delta: {event.delta}")
elif event.type == "response.text.done":
print(f"\nFollow-up response done!")
elif event.type == "response.output_item.done":
if event.item.type == "message":
item = event.item
if item.content[-1].type == "output_text":
text_content = item.content[-1]
for annotation in text_content.annotations:
if annotation.type == "url_citation":
print(f"URL Citation: {annotation.url}")
elif event.type == "response.completed":
print(f"\nFollow-up completed!")
print(f"Full response: {event.response.output_text}")
Что делает этот код
В этом примере создается агент с заземлением с помощью средства поиска Bing, которое может получить сведения в режиме реального времени из Интернета. При запуске кода:
- Он создает
AIProjectClientи выполняет проверку подлинности с помощью учетных данных Azure. - Создает агента с помощью инструмента привязки Bing, настроенного посредством вашего подключения Bing.
- Отправляет запрос, запрашивающий текущую дату и погоду в Сиэтле.
- Агент использует средство заземления Bing для поиска в Интернете и потоковой передачи ответа.
- Извлекает и отображает цитации URL-адресов из результатов поиска.
Обязательные входные данные
- Обновите константы
PROJECT_ENDPOINTиBING_CONNECTION_NAMEв коде на ваши значения. - Azure учетные данные, настроенные для
DefaultAzureCredential.
Ожидаемые выходные данные
Agent created (id: asst_abc123, name: MyAgent, version: 1)
Follow-up response created with ID: resp_xyz789
Delta: Today
Delta: 's date
Delta: is December 12, 2025...
Follow-up response done!
URL Citation: https://www.weather.gov/seattle/
Follow-up completed!
Full response: Today's date is December 12, 2025, and the weather in Seattle is...
Приземление с помощью пользовательского поиска Bing (предварительная версия)
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import (
PromptAgentDefinition,
BingCustomSearchPreviewTool,
BingCustomSearchToolParameters,
BingCustomSearchConfiguration,
)
# Format: "https://resource_name.ai.azure.com/api/projects/project_name"
PROJECT_ENDPOINT = "your_project_endpoint"
CUSTOM_SEARCH_CONNECTION_NAME = "my-custom-search-connection"
CUSTOM_SEARCH_INSTANCE_NAME = "my-custom-search-instance"
# Create clients to call Foundry API
project = AIProjectClient(
endpoint=PROJECT_ENDPOINT,
credential=DefaultAzureCredential(),
)
openai = project.get_openai_client()
# Get connection ID from connection name
bing_custom_connection = project.connections.get(CUSTOM_SEARCH_CONNECTION_NAME)
bing_custom_search_tool = BingCustomSearchPreviewTool(
bing_custom_search_preview=BingCustomSearchToolParameters(
search_configurations=[
BingCustomSearchConfiguration(
project_connection_id=bing_custom_connection.id,
instance_name=CUSTOM_SEARCH_INSTANCE_NAME,
)
]
)
)
agent = project.agents.create_version(
agent_name="MyAgent",
definition=PromptAgentDefinition(
model="gpt-4.1-mini",
instructions="""You are a helpful agent that can use Bing Custom Search tools to assist users.
Use the available Bing Custom Search tools to answer questions and perform tasks.""",
tools=[bing_custom_search_tool],
),
)
print(f"Agent created (id: {agent.id}, name: {agent.name}, version: {agent.version})")
user_input = input(
"Enter your question for the Bing Custom Search agent " "(e.g., 'Tell me more about foundry agent service'): \n"
)
# Send initial request that will trigger the Bing Custom Search tool
stream_response = openai.responses.create(
stream=True,
input=user_input,
extra_body={"agent_reference": {"name": agent.name, "type": "agent_reference"}},
)
for event in stream_response:
if event.type == "response.created":
print(f"Follow-up response created with ID: {event.response.id}")
elif event.type == "response.output_text.delta":
print(f"Delta: {event.delta}")
elif event.type == "response.text.done":
print(f"\nFollow-up response done!")
elif event.type == "response.output_item.done":
if event.item.type == "message":
item = event.item
if item.content[-1].type == "output_text":
text_content = item.content[-1]
for annotation in text_content.annotations:
if annotation.type == "url_citation":
print(
f"URL Citation: {annotation.url}, "
f"Start index: {annotation.start_index}, "
f"End index: {annotation.end_index}"
)
elif event.type == "response.completed":
print(f"\nFollow-up completed!")
print(f"Full response: {event.response.output_text}")
Что делает этот код
В этом примере создается агент с помощью средства пользовательского поиска Bing, который выполняет поиск в настраиваемом наборе общедоступных веб-доменов. При запуске кода:
- Он создает
AIProjectClientи выполняет проверку подлинности с помощью учетных данных Azure. - Создает агент с помощью средства пользовательского поиска Bing, созданного с использованием вашего пользовательского экземпляра поиска.
- Запрашивает у пользователя ввод информации на определенные темы в пределах настроенных вами доменов.
- Агент использует средство пользовательского поиска Bing для поиска только указанных доменов и передает ответ.
- Извлекает и отображает url-ссылки с начальными и конечными позициями из пользовательских результатов поиска.
Обязательные входные данные
- Обновите константы
PROJECT_ENDPOINT,CUSTOM_SEARCH_CONNECTION_NAMEиCUSTOM_SEARCH_INSTANCE_NAMEв коде вашими значениями. - Azure учетные данные, настроенные для
DefaultAzureCredential. - Входные данные пользователя во время выполнения.
Ожидаемые выходные данные
Agent created (id: asst_abc123, name: MyAgent, version: 1)
Enter your question for the Bing Custom Search agent (e.g., 'Tell me more about foundry agent service'):
Tell me more about foundry agent service
Follow-up response created with ID: resp_xyz789
Delta: Microsoft
Delta: Foundry
Delta: Agent Service...
Follow-up response done!
URL Citation: https://learn.microsoft.com/azure/ai-foundry/agents, Start index: 45, End index: 120
Follow-up completed!
Full response: Microsoft Foundry Agent Service enables you to build...
В следующих примерах C# показано, как создать агент, используя инструмент Bing Search и технику Grounding, а также как использовать агента для реагирования на запросы пользователей. В этих примерах используются синхронные вызовы для простоты. Асинхронные примеры см. в примерах agent tools C#.
Чтобы разрешить агенту использовать API поиска Bing, используйте BingGroundingTool.
Ознакомление с поиском Bing
// Format: "https://resource_name.ai.azure.com/api/projects/project_name"
var projectEndpoint = "your_project_endpoint";
var bingConnectionName = "my-bing-connection";
// Create project client to call Foundry API
AIProjectClient projectClient = new(
endpoint: new Uri(projectEndpoint),
tokenProvider: new DefaultAzureCredential());
// Get connection ID from connection name
AIProjectConnection bingConnection = projectClient.Connections.GetConnection(connectionName: bingConnectionName);
// Create the agent version with Bing grounding tool
BingGroundingTool bingGroundingAgentTool = new(new BingGroundingSearchToolOptions(
searchConfigurations: [new BingGroundingSearchConfiguration(projectConnectionId: bingConnection.Id)]
)
);
DeclarativeAgentDefinition agentDefinition = new(model: "gpt-4.1-mini")
{
Instructions = "You are a helpful agent.",
Tools = { bingGroundingAgentTool, }
};
AgentVersion agentVersion = projectClient.AgentAdministrationClient.CreateAgentVersion(
agentName: "myAgent",
options: new(agentDefinition));
// Output the agent version info
ProjectResponsesClient responseClient = projectClient.ProjectOpenAIClient.GetProjectResponsesClientForAgent(agentVersion.Name);
ResponseResult response = responseClient.CreateResponse("How does wikipedia explain Euler's Identity?");
// Extract and format URL citation annotations
string citation = "";
foreach (ResponseItem item in response.OutputItems)
{
if (item is MessageResponseItem messageItem)
{
foreach (ResponseContentPart content in messageItem.Content)
{
foreach (ResponseMessageAnnotation annotation in content.OutputTextAnnotations)
{
if (annotation is UriCitationMessageAnnotation uriAnnotation)
{
citation = $" [{uriAnnotation.Title}]({uriAnnotation.Uri})";
}
}
}
}
}
// Validate and print the response
Assert.That(response.Status, Is.EqualTo(ResponseStatus.Completed));
Console.WriteLine($"{response.GetOutputText()}{citation}");
// Clean up resources by deleting the agent version
projectClient.AgentAdministrationClient.DeleteAgentVersion(agentName: agentVersion.Name, agentVersion: agentVersion.Version);
Что делает этот код
В этом примере создается агент, который использует инструмент "Основка с помощью Bing Search" и демонстрирует обработку ответов в синхронном режиме. При запуске кода:
- Он создает AIProjectClient с помощью вашей конечной точки проекта.
- Извлекает конфигурацию подключения Bing из проекта.
- Создает агент с настроенным средством заземления Bing.
- Отправляет запрос, запрашивающий, как Википедия объясняет личность Эйлера.
- Агент использует инструмент Bing для поиска и возвращает отформатированные результаты с адресами URL в качестве ссылок.
- Очищает, удаляя версию агента.
Обязательные входные данные
- Обновите константы
projectEndpointиbingConnectionNameв коде на ваши значения. - Azure учетные данные, настроенные для
DefaultAzureCredential.
Ожидаемые выходные данные
Euler's identity is considered one of the most elegant equations in mathematics... [Euler's identity - Wikipedia](https://en.wikipedia.org/wiki/Euler%27s_identity)
Приземление с помощью Bing в сценариях потоковой передачи
// Format: "https://resource_name.ai.azure.com/api/projects/project_name"
var projectEndpoint = "your_project_endpoint";
var bingConnectionName = "my-bing-connection";
// Create project client to call Foundry API
AIProjectClient projectClient = new(
endpoint: new Uri(projectEndpoint),
tokenProvider: new DefaultAzureCredential());
// Get connection ID from connection name
AIProjectConnection bingConnection = projectClient.Connections.GetConnection(connectionName: bingConnectionName);
// Create the agent version with Bing grounding tool
BingGroundingTool bingGroundingAgentTool = new(new BingGroundingSearchToolOptions(
searchConfigurations: [new BingGroundingSearchConfiguration(projectConnectionId: bingConnection.Id)]
)
);
DeclarativeAgentDefinition agentDefinition = new(model: "gpt-4.1-mini")
{
Instructions = "You are a helpful agent.",
Tools = { bingGroundingAgentTool }
};
AgentVersion agentVersion = projectClient.AgentAdministrationClient.CreateAgentVersion(
agentName: "myAgent",
options: new(agentDefinition));
// Stream the response from the agent version
ProjectResponsesClient responseClient = projectClient.ProjectOpenAIClient.GetProjectResponsesClientForAgent(agentVersion.Name);
string annotation = "";
string text = "";
// Parse the streaming response and output the results
foreach (StreamingResponseUpdate streamResponse in responseClient.CreateResponseStreaming("How does wikipedia explain Euler's Identity?"))
{
if (streamResponse is StreamingResponseCreatedUpdate createUpdate)
{
Console.WriteLine($"Stream response created with ID: {createUpdate.Response.Id}");
}
else if (streamResponse is StreamingResponseOutputTextDeltaUpdate textDelta)
{
Console.WriteLine($"Delta: {textDelta.Delta}");
}
else if (streamResponse is StreamingResponseOutputTextDoneUpdate textDoneUpdate)
{
text = textDoneUpdate.Text;
}
else if (streamResponse is StreamingResponseOutputItemDoneUpdate itemDoneUpdate)
{
if (annotation.Length == 0)
{
// Extract and format URL citation annotations
if (itemDoneUpdate.Item is MessageResponseItem messageItem)
{
foreach (ResponseContentPart content in messageItem.Content)
{
foreach (ResponseMessageAnnotation messageAnnotation in content.OutputTextAnnotations)
{
if (messageAnnotation is UriCitationMessageAnnotation uriAnnotation)
{
annotation = $" [{uriAnnotation.Title}]({uriAnnotation.Uri})";
}
}
}
}
}
}
else if (streamResponse is StreamingResponseErrorUpdate errorUpdate)
{
throw new InvalidOperationException($"The stream has failed: {errorUpdate.Message}");
}
}
Console.WriteLine($"{text}{annotation}");
// Clean up resources by deleting the agent version
projectClient.AgentAdministrationClient.DeleteAgentVersion(agentName: agentVersion.Name, agentVersion: agentVersion.Version);
Что делает этот код
В этом примере создается агент с приземлением с помощью средства поиска Bing и демонстрируется обработка потоковых ответов. При запуске кода:
- Он создает AIProjectClient с помощью вашей конечной точки проекта.
- Извлекает конфигурацию подключения Bing из проекта.
- Создает агент с настроенным средством заземления Bing.
- Отправляет запрос, запрашивающий, как Википедия объясняет личность Эйлера.
- Агент использует средство заземления Bing и передает ответ в режиме реального времени.
- Обрабатывает события потоковой передачи, включая дельта-обновления текста и извлечение цитат.
- Очищает, удаляя версию агента.
Обязательные входные данные
- Обновите константы
projectEndpointиbingConnectionNameв коде на ваши значения. - Azure учетные данные, настроенные для
DefaultAzureCredential.
Ожидаемые выходные данные
Stream response created with ID: resp_xyz789
Delta: Euler
Delta: 's
Delta: Identity
Delta: is one of the most...
Euler's Identity is one of the most elegant equations in mathematics... [Euler's identity - Wikipedia](https://en.wikipedia.org/wiki/Euler%27s_identity)
В следующих примерах REST API показано, как использовать связывание с поиском Bing и связывание с инструментами Bing Custom Search (версия для предварительного просмотра) для реагирования на запросы пользователей.
Ознакомление с поиском Bing
Настройка проверки подлинности
Перед выполнением вызовов REST API настройте проверку подлинности:
Задайте переменные среды:
-
FOUNDRY_PROJECT_ENDPOINT: URL-адрес конечной точки проекта Foundry. -
FOUNDRY_MODEL_DEPLOYMENT_NAME: имя развернутой модели. -
BING_PROJECT_CONNECTION_ID: Ваш идентификатор подключения проекта Grounding с Bing Search.
-
Получите токен типа bearer:
export AGENT_TOKEN=$(az account get-access-token --scope "https://ai.azure.com/.default" --query accessToken -o tsv)curl --request POST \ --url "$FOUNDRY_PROJECT_ENDPOINT/openai/v1/responses" \ -H "Authorization: Bearer $AGENT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "model": "'$FOUNDRY_MODEL_DEPLOYMENT_NAME'", "input": "How does Wikipedia explain Euler\u0027s identity?", "tool_choice": "required", "tools": [ { "type": "bing_grounding", "bing_grounding": { "search_configurations": [ { "project_connection_id": "'$BING_PROJECT_CONNECTION_ID'", "count": 7, "market": "en-US", "set_lang": "en", "freshness": "7d" } ] } } ] }'
Что делает этот код
Этот запрос REST API создает ответ с использованием Grounding и поиска Bing. Запрос:
- Отправляет запрос POST в конечную точку ответов Foundry.
- Включает в себя развертывание модели и входные данные пользователя в тексте запроса.
- Настраивает инструмент привязки Bing с параметрами поиска (количество, рынок, язык, свежесть).
- Возвращает ответ с результатами поиска в Интернете и ссылкой.
Обязательные входные данные
- Переменные среды:
FOUNDRY_PROJECT_ENDPOINT,AGENT_TOKEN,FOUNDRY_MODEL_DEPLOYMENT_NAMEBING_PROJECT_CONNECTION_ID. - Допустимый токен пользователя с соответствующими разрешениями.
Ожидаемые выходные данные
Ответ от формата JSON:
-
id: идентификатор ответа -
output_text: созданный текст с подкреплёнными сведениями -
citations: Массив URL, используемых для генерации ответа
Приземление с помощью пользовательского поиска Bing (предварительная версия)
curl --request POST \
--url "$FOUNDRY_PROJECT_ENDPOINT/openai/v1/responses" \
-H "Authorization: Bearer $AGENT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "'$FOUNDRY_MODEL_DEPLOYMENT_NAME'",
"input": "How does Wikipedia explain Euler\u0027s identity?",
"tool_choice": "required",
"tools": [
{
"type": "bing_custom_search_preview",
"bing_custom_search_preview": {
"search_configurations": [
{
"project_connection_id": "'$BING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID'",
"instance_name": "'$BING_CUSTOM_SEARCH_INSTANCE_NAME'",
"count": 7,
"market": "en-US",
"set_lang": "en",
"freshness": "7d"
}
]
}
}
]
}'
Что делает этот код
Этот запрос REST API создает ответ, используя Grounding с поиском Bing Custom Search. Запрос:
- Отправляет запрос POST в конечную точку ответов Foundry.
- Включает в себя развертывание модели и входные данные пользователя в тексте запроса.
- Настраивает инструмент "Пользовательский поиск Bing" с указанием имени экземпляра и параметров поиска.
- Возвращает ответ с пользовательскими результатами поиска, ограниченными настроенными доменами.
Обязательные входные данные
- Переменные среды:
FOUNDRY_PROJECT_ENDPOINT,AGENT_TOKEN,FOUNDRY_MODEL_DEPLOYMENT_NAME,BING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID,BING_CUSTOM_SEARCH_INSTANCE_NAME - Допустимый токен пользователя с соответствующими разрешениями.
- Экземпляр пользовательского поиска Bing уже настроен с целевыми доменами
Ожидаемые выходные данные
Ответ от формата JSON:
-
id: идентификатор ответа -
output_text: сгенерированный текст с информацией из набора пользовательских доменов -
citations: массив URL-адресов из настроенных доменов
В следующих примерах TypeScript показано, как создать агента, используя средства Grounding с поисковой системой Bing и Grounding с пользовательским поиском Bing (предварительная версия), а также как использовать агента для ответов на запросы пользователей. Посмотрите примеры JavaScript для agent tools в репозитории Azure SDK для JavaScript на GitHub.
Ознакомление с поиском Bing
import { DefaultAzureCredential } from "@azure/identity";
import { AIProjectClient } from "@azure/ai-projects";
// Format: "https://resource_name.ai.azure.com/api/projects/project_name"
const PROJECT_ENDPOINT = "your_project_endpoint";
const BING_CONNECTION_NAME = "my-bing-connection";
export async function main(): Promise<void> {
// Create clients to call Foundry API
const project = new AIProjectClient(PROJECT_ENDPOINT, new DefaultAzureCredential());
const openai = project.getOpenAIClient();
// Get connection ID from connection name
const bingConnection = await project.connections.get(BING_CONNECTION_NAME);
const agent = await project.agents.createVersion("MyBingGroundingAgent", {
kind: "prompt",
model: "gpt-4.1-mini",
instructions: "You are a helpful assistant.",
tools: [
{
type: "bing_grounding",
bing_grounding: {
search_configurations: [
{
project_connection_id: bingConnection.id,
},
],
},
},
],
});
console.log(`Agent created (id: ${agent.id}, name: ${agent.name}, version: ${agent.version})`);
// Send request that requires current information from the web
const streamResponse = await openai.responses.create(
{
input: "What is today's date and weather in Seattle?",
stream: true,
},
{
body: {
agent: { name: agent.name, type: "agent_reference" },
tool_choice: "required",
},
},
);
// Process the streaming response
for await (const event of streamResponse) {
if (event.type === "response.created") {
console.log(`Follow-up response created with ID: ${event.response.id}`);
} else if (event.type === "response.output_text.delta") {
process.stdout.write(event.delta);
} else if (event.type === "response.output_text.done") {
console.log("\n\nFollow-up response done!");
} else if (event.type === "response.output_item.done") {
if (event.item.type === "message") {
const item = event.item;
if (item.content && item.content.length > 0) {
const lastContent = item.content[item.content.length - 1];
if (lastContent.type === "output_text" && lastContent.annotations) {
for (const annotation of lastContent.annotations) {
if (annotation.type === "url_citation") {
console.log(
`URL Citation: ${annotation.url}, Start index: ${annotation.start_index}, End index: ${annotation.end_index}`,
);
}
}
}
}
}
} else if (event.type === "response.completed") {
console.log("\nFollow-up completed!");
}
}
// Clean up resources by deleting the agent version
// This prevents accumulation of unused resources in your project
console.log("\nCleaning up resources...");
await project.agents.deleteVersion(agent.name, agent.version);
console.log("Agent deleted");
console.log("\nBing grounding agent sample completed!");
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
Что делает этот код
В этом примере создается агент с заземлением с помощью средства поиска Bing, которое может получить сведения в режиме реального времени из Интернета. При запуске кода:
- Он создает
AIProjectClientи выполняет проверку подлинности с помощью учетных данных Azure. - Создает агента с помощью инструмента привязки Bing, настроенного посредством вашего подключения Bing.
- Отправляет запрос, запрашивающий текущую дату и погоду в Сиэтле, при выборе средства задано значение "обязательно".
- Агент использует средство заземления Bing для поиска в Интернете и потоковой передачи ответа.
- Обрабатывает события потоковой передачи и извлекает url-ссылки со своими позициями в тексте.
- Очищает, удаляя версию агента.
Обязательные входные данные
- Обновите константы
PROJECT_ENDPOINTиBING_CONNECTION_NAMEв коде на ваши значения. - Azure учетные данные, настроенные для
DefaultAzureCredential.
Ожидаемые выходные данные
Agent created (id: asst_abc123, name: MyBingGroundingAgent, version: 1)
Follow-up response created with ID: resp_xyz789
Today's date is December 12, 2025, and the weather in Seattle...
Follow-up response done!
URL Citation: https://www.weather.gov/seattle/, Start index: 45, End index: 120
Follow-up completed!
Cleaning up resources...
Agent deleted
Bing grounding agent sample completed!
Приземление с помощью пользовательского поиска Bing (предварительная версия)
import { DefaultAzureCredential } from "@azure/identity";
import { AIProjectClient } from "@azure/ai-projects";
import * as readline from "readline";
// Format: "https://resource_name.ai.azure.com/api/projects/project_name"
const PROJECT_ENDPOINT = "your_project_endpoint";
const CUSTOM_SEARCH_CONNECTION_NAME = "my-custom-search-connection";
const CUSTOM_SEARCH_INSTANCE_NAME = "my-custom-search-instance";
export async function main(): Promise<void> {
// Create clients to call Foundry API
const project = new AIProjectClient(PROJECT_ENDPOINT, new DefaultAzureCredential());
const openai = project.getOpenAIClient();
// Get connection ID from connection name
const bingCustomConnection = await project.connections.get(CUSTOM_SEARCH_CONNECTION_NAME);
const agent = await project.agents.createVersion("MyAgent", {
kind: "prompt",
model: "gpt-4.1-mini",
instructions:
"You are a helpful agent that can use Bing Custom Search tools to assist users. Use the available Bing Custom Search tools to answer questions and perform tasks.",
tools: [
{
type: "bing_custom_search_preview",
bing_custom_search_preview: {
search_configurations: [
{
project_connection_id: bingCustomConnection.id,
instance_name: CUSTOM_SEARCH_INSTANCE_NAME,
},
],
},
},
],
});
console.log(`Agent created (id: ${agent.id}, name: ${agent.name}, version: ${agent.version})`);
// Prompt user for input
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const userInput = await new Promise<string>((resolve) => {
rl.question(
"Enter your question for the Bing Custom Search agent (e.g., 'Tell me more about foundry agent service'): \n",
(answer) => {
rl.close();
resolve(answer);
},
);
});
// Send initial request that will trigger the Bing Custom Search tool
const streamResponse = await openai.responses.create(
{
input: userInput,
stream: true,
},
{
body: {
agent: { name: agent.name, type: "agent_reference" },
},
},
);
// Process the streaming response
for await (const event of streamResponse) {
if (event.type === "response.created") {
console.log(`Follow-up response created with ID: ${event.response.id}`);
} else if (event.type === "response.output_text.delta") {
process.stdout.write(event.delta);
} else if (event.type === "response.output_text.done") {
console.log("\n\nFollow-up response done!");
} else if (event.type === "response.output_item.done") {
if (event.item.type === "message") {
const item = event.item;
if (item.content && item.content.length > 0) {
const lastContent = item.content[item.content.length - 1];
if (lastContent.type === "output_text" && lastContent.annotations) {
for (const annotation of lastContent.annotations) {
if (annotation.type === "url_citation") {
console.log(
`URL Citation: ${annotation.url}, Start index: ${annotation.start_index}, End index: ${annotation.end_index}`,
);
}
}
}
}
}
} else if (event.type === "response.completed") {
console.log("\nFollow-up completed!");
}
}
// Clean up resources by deleting the agent version
// This prevents accumulation of unused resources in your project
console.log("\nCleaning up resources...");
await project.agents.deleteVersion(agent.name, agent.version);
console.log("Agent deleted");
console.log("\nBing Custom Search agent sample completed!");
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
Что делает этот код
В этом примере создается агент с заземлением с помощью средства пользовательского поиска Bing, выполняющего поиск в ваших настроенных доменах. При запуске кода:
- Он создает
AIProjectClientи выполняет проверку подлинности с помощью учетных данных Azure. - Создает агент с помощью средства пользовательского поиска Bing, созданного с использованием вашего пользовательского экземпляра поиска.
- Запрашивает входные данные пользователя во время выполнения с помощью командной строки.
- Агент использует средство пользовательского поиска Bing для поиска только указанных доменов и передает ответ.
- Обрабатывает события потоковой передачи и извлекает url-ссылки со своими позициями в тексте.
- Очищает, удаляя версию агента.
Обязательные входные данные
- Обновите константы
PROJECT_ENDPOINT,CUSTOM_SEARCH_CONNECTION_NAMEиCUSTOM_SEARCH_INSTANCE_NAMEв коде вашими значениями. - Azure учетные данные, настроенные для
DefaultAzureCredential. - Входные данные пользователя, предоставленные во время выполнения через консоль.
Ожидаемые выходные данные
Agent created (id: asst_abc123, name: MyAgent, version: 1)
Enter your question for the Bing Custom Search agent (e.g., 'Tell me more about foundry agent service'):
Tell me more about foundry agent service
Follow-up response created with ID: resp_xyz789
Microsoft Foundry Agent Service enables you to build...
Follow-up response done!
URL Citation: https://learn.microsoft.com/azure/ai-foundry/agents, Start index: 0, End index: 89
Follow-up completed!
Cleaning up resources...
Agent deleted
Bing Custom Search agent sample completed!
Использование приземления Bing в агенте Java
Добавьте зависимость в вашу pom.xml:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-agents</artifactId>
<version>2.0.0</version>
</dependency>
Создание агента с использованием основы Bing
import com.azure.ai.agents.AgentsClient;
import com.azure.ai.agents.AgentsClientBuilder;
import com.azure.ai.agents.ResponsesClient;
import com.azure.ai.agents.models.*;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.openai.models.responses.Response;
import com.openai.models.responses.ResponseCreateParams;
import java.util.Arrays;
import java.util.Collections;
public class BingGroundingExample {
public static void main(String[] args) {
// Format: "https://resource_name.ai.azure.com/api/projects/project_name"
String projectEndpoint = "your_project_endpoint";
String bingConnectionId = "my-bing-connection-id";
AgentsClientBuilder builder = new AgentsClientBuilder()
.credential(new DefaultAzureCredentialBuilder().build())
.endpoint(projectEndpoint);
AgentsClient agentsClient = builder.buildAgentsClient();
ResponsesClient responsesClient = builder.buildResponsesClient();
// Create Bing grounding tool with connection configuration
BingGroundingTool bingTool = new BingGroundingTool(
new BingGroundingSearchToolParameters(Arrays.asList(
new BingGroundingSearchConfiguration(bingConnectionId)
))
);
// Create agent with Bing grounding tool
PromptAgentDefinition agentDefinition = new PromptAgentDefinition("gpt-4.1-mini")
.setInstructions("You are a helpful assistant. Use Bing to find up-to-date information.")
.setTools(Collections.singletonList(bingTool));
AgentVersionDetails agent = agentsClient.createAgentVersion("bing-grounding-agent", agentDefinition);
System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion());
// Create a response
AgentReference agentReference = new AgentReference(agent.getName())
.setVersion(agent.getVersion());
Response response = responsesClient.createAzureResponse(
new AzureCreateResponseOptions().setAgentReference(agentReference),
ResponseCreateParams.builder()
.input("What are the latest developments in AI?"));
System.out.println("Response: " + response.output());
// Clean up
agentsClient.deleteAgentVersion(agent.getName(), agent.getVersion());
}
}
Принцип работы
Запрос пользователя — это сообщение о том, что конечный пользователь отправляет агенту, например *"должен ли я взять с собой зонтик со мной сегодня? Я в Сиэтле". *Инструкции — это системное сообщение разработчика, которое может предоставить общий доступ к контексту и предоставить инструкции модели ИИ по использованию различных средств или поведения.
Когда пользователь отправляет запрос, развертывание модели искусственного интеллекта клиента сначала обрабатывает его (используя предоставленные инструкции) для последующего выполнения поискового запроса Bing (который отображается разработчикам). Используя Bing, граундирование возвращает релевантные результаты поиска в развертывание модели клиента, которое затем генерирует окончательный результат.
Примечание
При использовании интеграции с поиском Bing или интеграции с пользовательским поиском Bing единственная информация, отправляемая в Bing, — это поисковый запрос Bing, параметры инструмента и ключ ресурса. Служба не отправляет какие-либо сведения, относящиеся к пользователю. Ключ ресурса отправляется в Bing исключительно в целях выставления счетов и ограничения скорости.
Авторизация происходит между интеграцией с поиском Bing или интеграцией с пользовательским поиском Bing и сервисом агента Foundry. Любой поисковый запрос Bing, который служба генерирует и отправляет в Bing для целей связки данных, передается вместе с ключом ресурса за пределы границы соответствия Azure в службу привязки с помощью поиска Bing. Интеграция с помощью поиска Bing подчиняется условиям Bing и не обладает теми же стандартами соответствия и сертификацией, что и служба агента, как описано в разделе "Условия использования". Вы несете ответственность за то, соответствует ли использование Bing Search или Bing Custom Search в вашем агенте вашим нуждам и требованиям.
Транзакции с использованием ресурса Grounding с Bing рассчитываются по количеству вызовов инструментов на каждое выполнение. Вы можете увидеть, сколько вызовов инструментов происходит на этапе выполнения.
Разработчики и конечные пользователи не имеют доступа к необработанному содержимому, возвращаемому из Grounding при помощи поиска Bing. Однако ответ модели содержит ссылки на веб-сайты, используемые для создания ответа, и ссылку на запрос Bing, используемый для поиска. Вы можете получить ответ модели, получив доступ к данным в созданной беседе. Эти две ссылки должны храниться и отображаться в точной форме, предоставленной Microsoft, в соответствии с Требования к использованию и отображению Bing Search. Дополнительные сведения см. в разделе "Как отображается заземление в результатах поиска Bing".
Отображение результатов поиска
В соответствии с условиями использования bing и требованиями к использованию и отображению необходимо отобразить URL-адреса веб-сайта и URL-адреса запросов поиска Bing в пользовательском интерфейсе. Эти сведения можно найти в ответе API в параметре arguments . Чтобы отобразить веб-страницу, замените конечную точку URL-адреса поискового запроса Bing на www.bing.com, и ваш URL-адрес поискового запроса Bing будет выглядеть следующим образом: https://www.bing.com/search?q={search query}.
Приземление с помощью конфигурации пользовательского поиска Bing
Заземление с использованием пользовательского поиска Bing — это мощное средство, которое можно применять для выбора подпространства веба, чтобы ограничить заземляющие знания агента. Ниже приведены несколько советов, которые помогут вам воспользоваться преимуществами этой возможности:
- Если вы владеете общедоступным сайтом, который вы хотите включить в поиск, но Bing не индексировался, ознакомьтесь с рекомендациями веб-мастера Bing для получения индексации сайта. Документация для веб-мастеров также содержит сведения о том, как настроить обход сайта с помощью Bing, если индекс устарел.
- Для создания конфигурации требуется по крайней мере роль участника для ресурса пользовательского поиска Bing.
- Вы можете блокировать только определенные домены и выполнять поиск по остальным веб-сайтам (например, сайт конкурента).
- Использование поисковой системы Bing Custom возвращает результаты только для доменов и веб-страниц, которые являются общедоступными и индексированы в Bing.
- Домен (например,
https://www.microsoft.com) - Домен и путь (например,
https://www.microsoft.com/surface) - Веб-страница (например,
https://www.microsoft.com/en-us/p/surface-earbuds/8r9cpq146064)
- Домен (например,
Необязательные параметры
При добавлении Grounding с помощью Bing Search или Grounding с помощью Bing Custom Search в ваш агент можно передать следующие параметры. Эти параметры влияют на выходные данные средства, а модель ИИ может не полностью использовать все выходные данные. См. примеры кода для получения информации о поддержке версий API и способах передачи этих параметров.
| Имя | Значение | Тип | Обязательно |
|---|---|---|---|
count |
Количество результатов поиска, возвращаемых в ответе. Значение по умолчанию равно 5, а максимальное значение — 50. Фактическое число, доставленное, может быть меньше запрошенного. На нескольких страницах могут совпадать некоторые результаты. Этот параметр влияет только на результаты веб-страницы. Возможно, модель ИИ может не использовать все результаты поиска, возвращаемые Bing. | UnsignedShort |
Нет |
freshness |
Отфильтруйте результаты поиска по следующим значениям возраста без учета регистра: День: возврат веб-страниц, обнаруженных Bing за последние 24 часа. Неделя: возврат веб-страниц, обнаруженных Bing за последние 7 дней. Месяц: возврат веб-страниц, обнаруженных Bing за последние 30 дней. Чтобы получить статьи, обнаруженные Bing во время определенного интервала времени, укажите диапазон дат в форме: YYYY-MM-DD..YYYY-MM-DD Например, freshness=2019-02-01..2019-05-30. Чтобы ограничить результаты одной датой, установите этот параметр на определенную дату. Например, freshness=2019-02-04. |
Строка | Нет |
market |
Рынок, из которого приходят результаты. Как правило, это страна или регион, mkt из которого пользователь выполняет запрос. Однако это может быть другая страна или регион, если пользователь не находится в стране или регионе, где Bing предоставляет результаты. Рынок должен находиться в форме: <language>-<country/region> Например, en-US. Строка не учитывает регистр. Список возможных рыночных значений см. в разделе "Коды рынка". Если известно, рекомендуется всегда указывать рынок. Указание рынка помогает Bing маршрутизировать запрос и возвращать соответствующий и оптимальный ответ. Если указать рынок, который не указан в кодах рынка, Bing использует лучший код рынка на основе внутреннего сопоставления, которое подлежит изменению. |
Строка | Нет |
set_lang |
Язык, используемый для строк пользовательского интерфейса. Можно указать язык с помощью 2-буквы или 4-буквного кода. Использование 4-буквовых кодов предпочтительнее. Список поддерживаемых языковых кодов см. в разделе "Поддерживаемые языки Bing". Bing загружает локализованные строки, если setlang содержит допустимый 2-буквенный нейтральный код языка и региональных параметров (fr) или допустимый 4-буквенный код языка и региональных параметров (fr-ca). Например, Bing fr-ca загружает строки с нейтральным fr кодом культуры.Если setlang недопустим (например, zh) или Bing не поддерживает язык (например, af, af-na), Bing по умолчанию использует en (английский).Чтобы указать 2-буквенный код, задайте для этого параметра код языка ISO 639-1. Чтобы указать 4-буквенный код, используйте форму <language>-<country/region> , в которой <language> используется код языка ISO 639-1 (нейтральный язык и региональные параметры) и <country/region> является кодом ISO 3166 страны или региона (конкретного языка и региональных параметров). Например, используйте en-US для американского английского языка.Хотя это необязательно, следует всегда указывать язык. Как правило, вы устанавливаете setLang как тот же язык, который указан в mkt, если только пользователь не хочет, чтобы строки пользовательского интерфейса отображались на другом языке. |
Строка | Нет |
Поддерживаемые возможности и известные проблемы
- Инструмент "Grounding with Bing Search" предназначен для получения сведений в режиме реального времени из Интернета, а не из конкретных веб-доменных зон. Чтобы получить сведения из определенных доменов, используйте средство "Создание" с помощью средства пользовательского поиска Bing.
- Не запрашивайте модель подводить итог всей веб-страницы.
- В рамках одного запуска модель искусственного интеллекта оценивает выходные данные средства и может снова вызвать средство для получения дополнительных сведений и контекста. Модель искусственного интеллекта также может решить, какие фрагменты выходных данных инструментов используются для создания ответа.
- Служба агента Foundry возвращает ответы, созданные моделью ИИ, в качестве выходных данных, поэтому сквозная задержка определяется предварительной обработкой и постобработкой модели.
- Интеграция с Bing Search и Bing Custom Search не возвращает результаты работы инструмента разработчикам и конечным пользователям.
- Интеграция с поиском Bing и интеграция с пользовательским поиском Bing работают только с агентами, которые не используют VPN или частные конечные точки. Агент должен иметь обычный сетевой доступ.
- Используйте шаблон цитирования по умолчанию (ссылки, отправленные в
annotation) для ссылок, связанных с инструментами Grounding от Bing. Не просите модель создавать ссылки на цитаты.
Устранение неполадок
Используйте этот раздел для устранения распространенных проблем при использовании функции Grounding в инструментах поиска Bing.
Ошибки формата идентификатора подключения
Проблема: сообщение об ошибке, указывающее недопустимый формат идентификатора подключения.
Решение. Убедитесь, что идентификатор подключения соответствует требуемому формату:
/subscriptions/{{subscriptionID}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.CognitiveServices/accounts/{{foundryAccountName}}/projects/{{foundryProjectName}}/connections/{{foundryConnectionName}}
Замените все значения заполнителей (включая {{ и }}) фактическими идентификаторами ресурсов.
Сбои проверки подлинности
Проблема: ошибки несанкционированного доступа или запрещенные действия при создании агентов или выполнении запросов.
Решение:
- Убедитесь, что у вас есть необходимые роли RBAC:
- Роль участника или владельца для создания ресурсов Bing
- Роль менеджера проекта ИИ Azure для создания подключений проекта
- Убедитесь, что учетные данные Azure настроены правильно:
- Для Python/TypeScript:
DefaultAzureCredentialможет пройти проверку подлинности - Для REST: маркер носителя действителен и не истек.
- Для Python/TypeScript:
- Запустите
az login, чтобы обновить учетные данные, если вы используете Azure CLI
Проблемы с сетевым подключением
Проблема: Соединение с помощью запросов поиска Bing прерывается по времени ожидания или не удается подключиться.
Решение: Связь с помощью поиска Bing и пользовательского поиска Bing не работают с VPN или частными конечными точками. Обеспечить:
- У вашей сети есть обычный доступ к Интернету.
- Вы не используете VPN-подключение.
- Частные конечные точки не настроены для службы агента.
- Правила брандмауэра разрешают исходящие подключения к службам Bing.
Пользовательский поиск не возвращает результаты
Проблема: Пользовательский поиск Bing возвращает пустые результаты или не находит ожидаемое содержимое.
Решение:
- Убедитесь, что экземпляр пользовательского поиска правильно настроен для целевых доменов.
- Убедитесь, что домены, которые требуется выполнить поиск, являются общедоступными и индексированы Bing.
- Убедитесь, что настроенные домены соответствуют ожиданиям поисковых запросов.
- Если сайт не индексирован, ознакомьтесь с рекомендациями по индексированию Bing webmaster .
- Подождите, пока Bing будет выполнять обход недавно добавленного или обновленного содержимого (может занять несколько дней).
Отсутствующие или недопустимые значения конфигурации
Проблема: Код завершается с ошибками подключения или ответами "не найдено".
Решение. Убедитесь, что все необходимые константы в коде обновляются с фактическими значениями:
-
PROJECT_ENDPOINT(Python/TypeScript) илиprojectEndpoint(C#/Java): URL-адрес конечной точки проекта Foundry. - Имя подключения или идентификатор ресурса Bing.
- Для настройки поиска: имя вашей пользовательской версии поиска.
- Для REST API задайте переменные среды:
FOUNDRY_PROJECT_ENDPOINT,FOUNDRY_MODEL_DEPLOYMENT_NAMEBING_PROJECT_CONNECTION_IDилиBING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID.AGENT_TOKEN
Агент не использует средство заземления
Проблема: агент отвечает без вызова инструмента привязки Bing.
Решение:
- Убедитесь, что запрос требует текущей информации, которую модель не знает.
- Для явного использования инструментов задайте
tool_choice="required"в запросе (примеры Python/TypeScript). - Убедитесь, что средство правильно настроено в определении агента.
- Предоставленные агентом инструкции рекомендуют использование доступных инструментов для получения актуальной информации.
Имя экземпляра не найдено для процедуры поиска с помощью инструмента Bing Custom Search.
Проблема:
{"error": "Tool_User_Error", "message": "[bing_search] Failed to call Get Custom Search Instance with status 404: {\"error\":{\"code\":\"ResourceNotFound\",\"message\":\"Instance or Customer not found\",\"target\":\"instanceName or customerId\"}}."}
Решение:
- Убедитесь, что имя экземпляра указано в ресурсе пользовательского поиска Bing "Привязка," который вы используете.
- Дважды проверьте правильность написания названия вашего экземпляра.
Управление приземлением с помощью поиска Bing и заземления с помощью пользовательского поиска Bing
Администраторы могут использовать назначения ролей RBAC для включения или отключения использования Grounding с Bing и Grounding с пользовательским поиском Bing в подписке или группе ресурсов.
- Администратор регистрирует
Microsoft.Bingв подписке Azure. Администратору требуются разрешения на выполнение/register/actionоперации для поставщика ресурсов. Роли участника и владельца включают это разрешение. Для получения дополнительной информации о том, как зарегистрироваться, см. в статье Поставщики ресурсов и типы Azure. - После регистрации администратора
Microsoft.Bingпользователи, обладающие разрешениями, могут создавать, удалять или извлекать ключ ресурса для "Grounding with Bing" и/или "Grounding with Bing Custom Search". Эти пользователи нуждаются в роли участника или владельца на уровне подписки или группы ресурсов. - После создания интеграции с Bing и/или интеграции с назначенным поиском Bing, пользователи с соответствующими правами могут создать подключение Microsoft Foundry, чтобы подключиться к ресурсу и использовать его в качестве инструмента в службе агента Foundry. Эти пользователи должны обладать по крайней мере ролью Менеджера проекта Azure Искусственного интеллекта.
Отключение использования функции Grounding с поиском Bing и Grounding с Bing Custom Search
- Администратору требуется роль владельца или участника в подписке.
- Администратор удаляет все ресурсы "Grounding with Bing Search" и "Grounding with Bing Custom Search" в подписке.
- Администратор отменяет регистрацию поставщика ресурсов
Microsoft.Bingв подписке (перед удалением всех ресурсов невозможно отменить регистрацию). Для получения дополнительной информации см. Azure поставщики ресурсов и их типы. - Администратор создает политику Azure, чтобы запретить создание ресурсов с использованием Bing Search и Bing Custom Search в своей подписке, следуя примеру sample.
Дальнейшие действия
- Лучшие практики использования инструментов — изучение стратегий оптимизации для инструментов агента
- Средство поиска в Интернете — использование веб-поиска без настройки параметров инструмента Bing
- Управление функцией Grounding с помощью Bing в Microsoft Foundry и Azure — управление и отключение функции Grounding с использованием возможностей Bing
- Подключение средств OpenAPI к агентам — интеграция пользовательских API с агентами
- Изучение инструментов в Foundry Tools (предварительная версия) — исследование всех доступных инструментов агента в службе Foundry Agent