Заземление с помощью поиска Bing
Приземление с помощью службы "Поиск Bing" позволяет агентам ИИ Azure включать общедоступные веб-данные в режиме реального времени при создании ответов. Вам потребуется создать базу данных с помощью ресурса поиска Bing, а затем подключить этот ресурс к агентам ИИ Azure. Когда пользователь отправляет запрос, агенты ИИ Azure решают, следует ли использовать приземление с помощью службы "Поиск Bing". В этом случае будет использоваться Bing для поиска по общедоступным веб-данным и возврата соответствующих блоков. Наконец, агенты ИИ Azure будут использовать возвращенные блоки для создания ответа.
Вы можете задавать такие вопросы, как "что является главными новостями сегодня" или "что такое недавнее обновление в розничной отрасли в США?", которые требуют общедоступных данных в режиме реального времени.
Разработчики и конечные пользователи не имеют доступа к необработанному содержимому, возвращенным из Земинга с помощью службы "Поиск Bing". Однако ответ содержит ссылки со ссылками на веб-сайты, используемые для создания ответа, и ссылку на запрос Bing, используемый для поиска. Эти две ссылки должны храниться и отображаться в точной форме, предоставленной корпорацией Майкрософт, в соответствии с требованиями к использованию и отображению Bing поиска. Дополнительные сведения см. в разделе "Отображение заземления с помощью результатов поиска Bing".
Внимание
- Использование приземления с помощью службы "Поиск Bing" может нести расходы. Подробные сведения см. на странице цен.
- Создавая и используя ресурс поиска Bing с помощью интерфейса командной строки Azure или развертывания с помощью шаблона развертывания, вы соглашаетесь быть привязанными к условиям, доступными по https://www.microsoft.com/en-us/bing/apis/grounding-legalвремени.
- При использовании приземления с поиском Bing данные клиента передаются за пределы границы соответствия Azure в заземление с помощью Bing служба . Приземление с помощью поиска Bing не распространяется на те же условия обработки данных (включая расположение обработки) и не имеет тех же стандартов соответствия и сертификаций, что и служба агента ИИ Azure, как описано в разделе "Основы использования" с условиями использования Bing. Вы несете ответственность за то, соответствует ли использование приземления с поиском Bing в агенте в соответствии с вашими потребностями и требованиями.
Принцип работы приземления с помощью поиска Bing
Запрос пользователя — это сообщение о том, что конечный пользователь отправляет агенту, например "я должен взять с собой зонтик со мной сегодня? Я в Сиэтле". Инструкции представляют собой системное сообщение разработчика, которое может предоставить общий доступ к контексту и предоставить инструкции модели ИИ по использованию различных инструментов или поведения.
Когда пользователь отправляет запрос, развертывание модели искусственного интеллекта клиента сначала обрабатывает его (используя предоставленные инструкции) для последующего выполнения поискового запроса Bing (который отображается разработчикам). Приземление с помощью Bing возвращает соответствующие результаты поиска в развертывании модели клиента, которая затем создает окончательные выходные данные. При использовании приземления с поиском Bing только поисковый запрос Bing и ключ ресурса отправляются в Bing, и никакие сведения о пользователях не включаются. Ключ ресурса отправляется в Bing исключительно в целях выставления счетов и ограничения скорости. Любой поисковый запрос Bing, созданный и отправляемый в Bing для целей приземления, передается вместе с ключом ресурса за пределами границы соответствия Azure с помощью Bing служба . Приземление с помощью поиска Bing зависит от условий Bing и не имеет одинаковых стандартов соответствия и сертификаций, что и служба агента ИИ Azure, как описано в разделе "Условия использования Bing". Вы несете ответственность за то, соответствует ли использование Приземления с поиском Bing в агенте в соответствии с вашими потребностями и требованиями.
Поддержка использования
Поддержка литейных решений Azure AI | Пакет SDK для Python | Пакет SDK для C# | Пакет SDK для JavaScript | REST API | Базовая настройка агента | Настройка стандартного агента |
---|---|---|---|---|---|---|
✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Настройка
Примечание.
- Приземление с помощью службы "Поиск Bing" работает только со следующими моделями Azure OpenAI:
gpt-3.5-turbo-0125
, ,gpt-4-0125-preview
gpt-4-turbo-2024-04-09
gpt-4o-0513
Создайте агент ИИ Azure, выполнив действия, описанные в кратком руководстве.
Создайте приземление с помощью ресурса Bing Search. Чтобы создать подписку или группу ресурсов, необходимо иметь
owner
илиcontributor
роль.- Вы можете создать его в портал Azure и выбрать различные поля в форме создания. Убедитесь, что вы создадите этот ресурс Приземления с помощью ресурса Bing в той же группе ресурсов, что и агент ИИ Azure, проект ИИ и другие ресурсы.
- Вы также можете создать один с помощью интерфейса кода. В этом случае необходимо вручную зарегистрировать поиск Bing в качестве поставщика ресурсов Azure. Вам потребуется разрешение для выполнения операции
/register/action
для поставщика ресурсов. Разрешение включается в роли участника и владельца .
az provider register --namespace 'Microsoft.Bing'
После создания ресурса "Поиск Bing" вы можете найти его в портал Azure. Перейдите к группе ресурсов, в которой вы создали ресурс, найдите созданный ресурс "Заземление" с помощью созданного ресурса Bing Search.
Вы можете добавить средство поиска Bing в программу агента, используя примеры кода, перечисленные в верхней части этой статьи, или портал Azure AI Foundry. Если вы хотите использовать портал, на экране создания и отладки агента прокрутите область установки справа от знаний. Нажмите кнопку Добавить.
Выберите "Заземление" с помощью поиска Bing и следуйте инструкциям, чтобы добавить это средство. Обратите внимание, что можно добавить только один агент.
Щелкните, чтобы добавить новые подключения. После добавления подключения можно выбрать непосредственно из существующего списка.
Выберите ресурс "Заземление" с помощью ресурса поиска Bing, который вы хотите использовать, и щелкните, чтобы добавить подключение.
Отображение заземления с помощью результатов поиска Bing
В соответствии с условиями использования bing и требованиями к использованию и отображению необходимо отобразить URL-адреса веб-сайта и URL-адреса запросов поиска Bing в пользовательском интерфейсе. URL-адреса веб-сайтов можно найти через annotations
параметр в ответе API и URL-адреса поисковых запросов Bing с помощью runstep
подробных сведений. Чтобы отобразить веб-страницу, рекомендуется заменить URL-адреса www.bing.com
запросов поиска Bing и URL-адрес поискового запроса Bing будет выглядеть как "https://www.bing.com/search?q={search query}".
run_steps = project_client.agents.list_run_steps(run_id=run.id, thread_id=thread.id)
run_steps_data = run_steps['data']
print(f"Last run step detail: {run_steps_data}")
Другие юридические вопросы
Корпорация Майкрософт будет использовать данные, отправляемые в Землю с помощью Bing, для улучшения продуктов и служб Майкрософт. При отправке персональных данных в эту службу вы несете ответственность за получение достаточного согласия от субъектов данных. Условия защиты данных в условиях веб-служб не применяются к заземлениям с помощью Bing.
Использование приземления с поиском Bing будет регулироваться условиями использования. С помощью земления с поиском Bing вы соглашаетесь быть привязаны и соблюдать эти условия использования.
Шаг 1. Создание клиента проекта
Создайте клиентский объект, который будет содержать строка подключения для подключения к проекту ИИ и другим ресурсам.
import os
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from azure.ai.projects.models import BingGroundingTool
# 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>;<HubName>"
# 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"],
)
Шаг 2. Создание агента с помощью средства поиска Bing с включенным средством поиска Bing
Чтобы сделать приземление с помощью средства поиска Bing доступным для агента, используйте подключение для инициализации средства и присоединения его к агенту. Подключение можно найти в разделе подключенных ресурсов проекта на портале Azure AI Foundry.
bing_connection = project_client.connections.get(
connection_name=os.environ["BING_CONNECTION_NAME"]
)
conn_id = bing_connection.id
print(conn_id)
# Initialize agent bing tool and add the connection id
bing = BingGroundingTool(connection_id=conn_id)
# Create agent with the bing tool and process assistant run
with project_client:
agent = project_client.agents.create_agent(
model="gpt-4o",
name="my-assistant",
instructions="You are a helpful assistant",
tools=bing.definitions,
headers={"x-ms-enable-preview": "true"}
)
print(f"Created agent, ID: {agent.id}")
Шаг 3. Создание потока
# Create thread for communication
thread = project_client.agents.create_thread()
print(f"Created thread, ID: {thread.id}")
# Create message to thread
message = project_client.agents.create_message(
thread_id=thread.id,
role="user",
content="What is the top news today",
)
print(f"Created message, ID: {message.id}")
Шаг 4. Создание запуска и проверка выходных данных
Создайте запуск и обратите внимание, что модель использует средство поиска Bing для предоставления ответа на вопрос пользователя.
# Create and process agent run in thread with tools
run = project_client.agents.create_and_process_run(thread_id=thread.id, assistant_id=agent.id)
print(f"Run finished with status: {run.status}")
# Retrieve run step details to get Bing Search query link
# To render the webpage, we recommend you replace the endpoint of Bing search query URLs with `www.bing.com` and your Bing search query URL would look like "https://www.bing.com/search?q={search query}"
run_steps = project_client.agents.list_run_steps(run_id=run.id, thread_id=thread.id)
run_steps_data = run_steps['data']
print(f"Last run step detail: {run_steps_data}")
if run.status == "failed":
print(f"Run failed: {run.last_error}")
# Delete the assistant when done
project_client.agents.delete_agent(agent.id)
print("Deleted agent")
# Fetch and log all messages
messages = project_client.agents.list_messages(thread_id=thread.id)
print(f"Messages: {messages}")