Поделиться через


Заземление с помощью поиска Bing

Приземление с помощью службы "Поиск Bing" позволяет агентам ИИ Azure включать общедоступные веб-данные в режиме реального времени при создании ответов. Вам потребуется создать базу данных с помощью ресурса поиска Bing, а затем подключить этот ресурс к агентам ИИ Azure. Когда пользователь отправляет запрос, агенты ИИ Azure решают, следует ли использовать приземление с помощью службы "Поиск Bing". В этом случае будет использоваться Bing для поиска по общедоступным веб-данным и возврата соответствующих блоков. Наконец, агенты ИИ Azure будут использовать возвращенные блоки для создания ответа.

Вы можете задавать такие вопросы, как "что является главными новостями сегодня" или "что такое недавнее обновление в розничной отрасли в США?", которые требуют общедоступных данных в режиме реального времени.

Разработчики и конечные пользователи не имеют доступа к необработанному содержимому, возвращенным из Земинга с помощью службы "Поиск Bing". Однако ответ содержит ссылки со ссылками на веб-сайты, используемые для создания ответа, и ссылку на запрос Bing, используемый для поиска. Эти две ссылки должны храниться и отображаться в точной форме, предоставленной корпорацией Майкрософт, в соответствии с требованиями к использованию и отображению Bing поиска. Дополнительные сведения см. в разделе "Отображение заземления с помощью результатов поиска Bing".

Внимание

  1. Использование приземления с помощью службы "Поиск Bing" может нести расходы. Подробные сведения см. на странице цен.
  2. Создавая и используя ресурс поиска Bing с помощью интерфейса командной строки Azure или развертывания с помощью шаблона развертывания, вы соглашаетесь быть привязанными к условиям, доступными по https://www.microsoft.com/en-us/bing/apis/grounding-legalвремени.
  3. При использовании приземления с поиском 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 Базовая настройка агента Настройка стандартного агента
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Настройка

Примечание.

  1. Приземление с помощью службы "Поиск Bing" работает только со следующими моделями Azure OpenAI: gpt-3.5-turbo-0125, , gpt-4-0125-previewgpt-4-turbo-2024-04-09gpt-4o-0513
  1. Создайте агент ИИ Azure, выполнив действия, описанные в кратком руководстве.

  2. Создайте приземление с помощью ресурса Bing Search. Чтобы создать подписку или группу ресурсов, необходимо иметь owner или contributor роль.

    1. Вы можете создать его в портал Azure и выбрать различные поля в форме создания. Убедитесь, что вы создадите этот ресурс Приземления с помощью ресурса Bing в той же группе ресурсов, что и агент ИИ Azure, проект ИИ и другие ресурсы.

    Снимок экрана: выбор ресурса Bing в портал Azure.

    1. Вы также можете создать один с помощью интерфейса кода. В этом случае необходимо вручную зарегистрировать поиск Bing в качестве поставщика ресурсов Azure. Вам потребуется разрешение для выполнения операции /register/action для поставщика ресурсов. Разрешение включается в роли участника и владельца .
        az provider register --namespace 'Microsoft.Bing'
    
  3. После создания ресурса "Поиск Bing" вы можете найти его в портал Azure. Перейдите к группе ресурсов, в которой вы создали ресурс, найдите созданный ресурс "Заземление" с помощью созданного ресурса Bing Search.

    Снимок экрана ресурса Bing в портал Azure.

  4. Вы можете добавить средство поиска Bing в программу агента, используя примеры кода, перечисленные в верхней части этой статьи, или портал Azure AI Foundry. Если вы хотите использовать портал, на экране создания и отладки агента прокрутите область установки справа от знаний. Нажмите кнопку Добавить.

    Снимок экрана: доступные категории инструментов на портале Azure AI Foundry.

  5. Выберите "Заземление" с помощью поиска Bing и следуйте инструкциям, чтобы добавить это средство. Обратите внимание, что можно добавить только один агент.

    Снимок экрана: доступные средства знаний на портале Azure AI Foundry.

  6. Щелкните, чтобы добавить новые подключения. После добавления подключения можно выбрать непосредственно из существующего списка.

    Снимок экрана: кнопка для создания нового подключения.

  7. Выберите ресурс "Заземление" с помощью ресурса поиска 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 будет регулироваться условиями использования. С помощью земления с поиском 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}")

Следующие шаги

Полный пример для заземления с помощью Bing Search.