Grounding met Bing Search
Met Bing Search kunnen uw Azure AI-agents realtime openbare webgegevens opnemen bij het genereren van antwoorden. U moet een Grounding maken met Bing Search-resource en deze resource vervolgens verbinden met uw Azure AI-agents. Wanneer een gebruiker een query verzendt, bepalen Azure AI-agents of Grounding met Bing Search al dan niet moet worden gebruikt. Zo ja, dan maakt het gebruik van Bing om te zoeken naar openbare webgegevens en relevante segmenten te retourneren. Ten slotte gebruiken Azure AI-agents geretourneerde segmenten om een antwoord te genereren.
U kunt vragen stellen zoals 'wat is het belangrijkste nieuws vandaag' of 'wat is de recente update in de detailhandel in de VS?', waarvoor realtime openbare gegevens nodig zijn.
Ontwikkelaars en eindgebruikers hebben geen toegang tot onbewerkte inhoud die is geretourneerd vanuit Grounding met Bing Search. Het antwoord bevat echter bronvermeldingen met koppelingen naar de websites die worden gebruikt om het antwoord te genereren en een koppeling naar de Bing-query die wordt gebruikt voor de zoekopdracht. Deze twee verwijzingen moeten worden bewaard en weergegeven in de exacte vorm van Microsoft, overeenkomstig de vereisten voor gebruik en weergave van Bing Search. Zie hoe u Grounding kunt weergeven met de zoekresultaten van Bing Zoeken voor meer informatie.
Belangrijk
- Voor uw gebruik van Grounding met Bing Search kunnen kosten in rekening worden gebracht. Zie de -pagina met prijzen voor details.
- Door een Grounding met Bing Search-resource te maken en te gebruiken via code-first-ervaring, zoals Azure CLI of implementeren via een implementatiesjabloon, gaat u ermee akkoord dat u gebonden bent aan en voldoet aan de voorwaarden die beschikbaar zijn op https://www.microsoft.com/en-us/bing/apis/grounding-legal, die van tijd tot tijd kunnen worden bijgewerkt.
Instellingen
Notitie
- Grounding met Bing Search werkt alleen met de volgende Azure OpenAI-modellen:
gpt-3.5-turbo-0125
,gpt-4-0125-preview
, ,gpt-4-turbo-2024-04-09
gpt-4o-0513
Maak een Azure AI-agent door de stappen in de quickstart te volgen.
Bing Search handmatig registreren als een Azure-resourceprovider. U moet gemachtigd zijn om de
/register/action
bewerking uit te voeren voor de resourceprovider. De machtiging is opgenomen in de rollen Inzender en Eigenaar .az provider register --namespace 'Microsoft.Bing'
Ontwikkelaars kunnen een nieuwe Grounding maken met Bing Search-resource. Maak een nieuwe Grounding-resource met Bing Search in Azure Portal en selecteer de verschillende velden in het aanmaakformulier. Zorg ervoor dat u deze Gronding maakt met Bing Search-resource in dezelfde resourcegroep als uw Azure AI-agent, AI-project en andere resources.
Nadat u een Grounding met Bing Search-resource hebt gemaakt, kunt u deze vinden in Azure Portal. Navigeer naar de resourcegroep waarin u de resource hebt gemaakt, zoek naar de Grounding-resource met Bing Search-resource die u hebt gemaakt.
Selecteer de grounding met Bing Search-resource die u hebt gemaakt en kopieer een van de API-sleutels.
Ga naar de Azure AI Foundry-portal en selecteer het AI-project (zorg ervoor dat het zich in dezelfde resourcegroep van uw Grounding bevindt met de Bing Search-resource). Klik op het beheercentrum.
Selecteer + nieuwe verbinding op de pagina Instellingen.
Notitie
Als u de API-sleutel op een later tijdstip opnieuw genereert, moet u de verbinding met de nieuwe sleutel bijwerken.
Selecteer de API-sleutel in andere resourcetypen.
Voer de volgende gegevens in en maak vervolgens een nieuwe verbinding met uw Grounding met Bing Search-resource.
- Eindpunt:
https://api.bing.microsoft.com/
- Sleutel:
YOUR_API_KEY
- Verbindingsnaam:
YOUR_CONNECTION_NAME
(U gebruikt deze verbindingsnaam in de onderstaande voorbeeldcode.) - Toegang: u kunt dit project alleen kiezen of gedeeld met alle projecten. Zorg ervoor dat in de onderstaande voorbeeldcode het project dat u hebt ingevoerd verbindingsreeks toegang heeft tot deze verbinding.
- Eindpunt:
Grounding weergeven met Bing Search-resultaten
Volgens Grounding met de gebruiksvoorwaarden en gebruiks- en weergavevereisten van Bing moet u zowel website-URL's als Bing-zoekquery-URL's weergeven in uw aangepaste interface. U vindt website-URL's via de parameter in API-antwoord annotations
en URL's voor Bing Search-query's via runstep
details. Als u de webpagina wilt weergeven, wordt u aangeraden het eindpunt van URL's voor Bing-zoekquery's te vervangen door www.bing.com
en de URL van uw Bing-zoekquery ziet er als 'https://www.bing.com/search?q={search query}' uit
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}")
Andere juridische overwegingen
Microsoft gebruikt gegevens die u naar Grounding verzendt met Bing om Microsoft-producten en -services te verbeteren. Wanneer u persoonsgegevens naar deze dienst verzendt, bent u verantwoordelijk voor het verkrijgen van voldoende toestemming van de betrokkenen. De voorwaarden voor gegevensbescherming in de voorwaarden voor onlineservices zijn niet van toepassing op Grounding met Bing.
Uw gebruik van Grounding met Bing Search is onderhevig aan de gebruiksvoorwaarden. Door Grounding met Bing Search te gebruiken, gaat u ermee akkoord om gebonden te zijn aan en te voldoen aan deze Gebruiksvoorwaarden.
Stap 1: Een agent maken met Grounding met Bing Search
Maak een clientobject dat de verbindingsreeks bevat om verbinding te maken met uw AI-project en andere resources.
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"],
)
Stap 2: De aarding inschakelen met het bing-zoekprogramma
Gebruik een verbinding om het hulpprogramma Grounding met Bing Search beschikbaar te maken voor uw agent en deze aan de agent te koppelen. U vindt uw verbinding in de sectie verbonden resources van uw project in de Azure AI Foundry-portal.
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}")
Stap 3: Een thread maken
# 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}")
Stap 4: Een uitvoering maken en de uitvoer controleren
Maak een uitvoering en kijk of het model gebruikmaakt van het hulpprogramma Grounding met Bing Search om een antwoord te geven op de vraag van de gebruiker.
# 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}")
Volgende stappen
Bekijk het volledige voorbeeld voor Grounding met Bing Search.