Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La búsqueda web permite que los modelos recuperen y basen respuestas con información en tiempo real de la web pública antes de generar la salida. Cuando se habilita, el modelo puede devolver respuestas actualizadas con citas insertadas. Puede acceder a la búsqueda web con la herramienta web_search de Responses API.
Nota
En la API de respuestas de OpenAI de Azure, use la herramienta web_search para la búsqueda web.
Se admite la versión preliminar de la herramienta de búsqueda web (web_search_preview), pero no se recomienda. Tiene limitaciones.
Importante
- Web Search utiliza Grounding con Bing Search y/o Grounding con Bing Custom Search, que son First Party Consumption Services regidos por los términos de uso de Grounding con Bing y la Declaración de privacidad de Microsoft.
- El anexo de Protección de datos de Microsoft no se aplica a los datos enviados a Grounding con Bing Search o Grounding con Bing Custom Search. Cuando usa Fundamentación con Bing Search y/o Fundamentación con Bing Custom Search, sus datos salen de su perímetro de cumplimiento y geográfico.
- El uso de Grounding con Bing Search y Grounding con Bing Custom Search conlleva costes. Para más información, consulte precios.
- Más información sobre cómo los administradores de Azure pueden gestionar el acceso a la utilización de la búsqueda web.
Requisitos previos
- Un modelo de OpenAI Azure implementado.
- Un método de autenticación:
- Clave de API o
- Microsoft Entra ID.
- Instale la biblioteca cliente para el idioma:
-
Python:
pip install openai azure-identity -
.NET:
dotnet add package OpenAIydotnet add package Azure.Identity -
JavaScript/TypeScript:
npm install openai @azure/identity -
Java: agregue
com.openai:openai-javaycom.azure:azure-identityal proyecto.
-
Python:
- Para obtener ejemplos de REST, establezca
AZURE_OPENAI_API_KEY(flujo de claves de API) oAZURE_OPENAI_AUTH_TOKEN(flujo de Microsoft Entra ID).
Opciones para usar la búsqueda web
La búsqueda web admite tres modos. Elija el modo en función de la profundidad y la velocidad que necesite.
Búsqueda web sin razonamiento
El modelo reenvía la consulta del usuario directamente a la herramienta de búsqueda web y usa orígenes de clasificación superior para establecer la respuesta. No hay ningún planeamiento de varios pasos. Este modo es rápido y mejor para búsquedas rápidas y hechos oportunos.
Búsqueda agente con modelos de razonamiento
El modelo administra activamente el proceso de búsqueda y puede realizar búsquedas web como parte de su cadena de pensamiento, analizar resultados y decidir si desea seguir buscando. Esta flexibilidad hace que la búsqueda agente sea adecuada para flujos de trabajo complejos, pero también significa que las búsquedas tardan más que búsquedas rápidas. Por ejemplo, use gpt-5.5 con reasoning.effort establecido en medium o high para equilibrar la profundidad de búsqueda y la latencia.
Investigación profunda
Deep Research es un modo controlado por agentes diseñado para investigaciones extendidas. El modelo realiza el razonamiento en varios pasos, abre y lee muchas páginas y sintetiza los resultados en una respuesta completa enriquecida a citas. Use este modo con o3-deep-research, o con gpt-5.5 y reasoning.effort establecidos en high o xhigh.
La investigación profunda se puede ejecutar durante varios minutos y es mejor para las cargas de trabajo de estilo de segundo plano que priorizan la integridad con respecto a la velocidad.
Cómo funciona
Usas la búsqueda en la web declarando la herramienta {"type": "web_search"} en tu solicitud. El modelo decide si se debe llamar a la herramienta en función del mensaje del usuario y la configuración.
Nota
Web Search en la API de respuestas funciona con modelos GPT-4 y versiones posteriores.
En los ejemplos siguientes, reemplace por gpt-5.5 el nombre de su propia implementación de modelos. El mismo patrón de assert que se muestra en los fragmentos de código de Microsoft Entra ID básicos se aplica a los fragmentos de código de clave de API y a los ejemplos de ubicación del usuario y filtrado de dominio.
Microsoft Entra ID:
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://ai.azure.com/.default"
)
# Use the OpenAI client with the Azure v1 endpoint.
openai = OpenAI(
base_url=endpoint,
api_key=token_provider,
)
response = openai.responses.create(
model="gpt-5.5",
tools=[{"type": "web_search"}],
input="Please perform a web search on the latest trends in renewable energy",
)
print(response.output_text)
# Verify the call succeeded.
assert response.output_text, "Empty output_text"
assert any(item.type == "web_search_call" for item in response.output), \
"No web_search_call in response"
Clave de API:
import os
from openai import OpenAI
endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
openai = OpenAI(
base_url=endpoint,
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
)
response = openai.responses.create(
model="gpt-5.5",
tools=[{"type": "web_search"}],
input="Please perform a web search on the latest trends in renewable energy",
)
print(response.output_text)
Forma de respuesta
Una respuesta correcta que usa la búsqueda web normalmente contiene dos partes:
[
{
"id": "ws_68b9d1220b288199bf942a3e48055f3602e3b78a8dbf73ac",
"type": "web_search_call",
"status": "completed",
"action": {
"type": "search",
"query": "latest trends in renewable energy 2025"
}
},
{
"id": "msg_68b9d123f4788199a544b6b97e65673e02e3b78a8dbf73ac",
"type": "message",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "output_text",
"annotations": [
{
"type": "url_citation",
"start_index": 1358,
"end_index": 1462,
"url": "https://...",
"title": "Title..."
}
],
"text": "If you're searching for uplifting....."
}
],
}
]
- Elemento
web_search_callde salida que registra la acción realizada:-
search: una acción de búsqueda web, incluida la consulta (y, opcionalmente, los dominios buscados). Las acciones de búsqueda incurren en costos de llamadas de herramientas (consulte precios). -
open_page: indica que el agente abrió una página. Disponible con todos los modelos de razonamiento. -
find_in_page: indica el agente buscado en una página abierta. Disponible con todos los modelos de razonamiento.
-
- Elemento de salida de mensaje que contiene:
- El texto anclado en
message.content[0].text. - Citas de URL en
message.content[0].annotations, uno o varios objetosurl_citationque incluyen la URL, el título y los rangos de caracteres.
- El texto anclado en
Cuando se usa un modelo de razonamiento, la output matriz también contiene un reasoning elemento junto con web_search_call y message. Analice el array por type en lugar de por posición.
Controlar los resultados por ubicación del usuario
Puede refinar los resultados de búsqueda pasando la ubicación aproximada del usuario. Se admiten los siguientes campos:
| Campo | Description | Ejemplo |
|---|---|---|
country |
Código de país o región ISO de dos letras. | US |
city |
Nombre de ciudad de texto libre. | Chicago |
region |
Región de texto libre o nombre de estado. | Illinois |
timezone |
Identificador de zona horaria de IANA. | America/Chicago |
Nota
Los campos city, region y timezone solo se admiten cuando se utiliza la herramienta web_search.
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://ai.azure.com/.default"
)
openai = OpenAI(base_url=endpoint, api_key=token_provider)
response = openai.responses.create(
model="gpt-5.5",
tools=[
{
"type": "web_search",
"user_location": {
"type": "approximate",
"country": "US",
"city": "Chicago",
"region": "Illinois",
"timezone": "America/Chicago",
},
}
],
input="Give me a positive news story from the web today in my city",
)
print(response.output_text)
Para usar la autenticación de clave de API, reemplace la credencial de Microsoft Entra por la clave de API, como se muestra en el ejemplo basic.
Filtrado de dominios
Puede limitar los resultados a un conjunto específico de dominios mediante el filtrado de dominios. Use el allowed_domains campo para incluir hasta 100 direcciones URL o el blocked_domains campo para excluir dominios de los resultados. Puede omitir el prefijo HTTP o HTTPS al dar formato a las direcciones URL. Por ejemplo, usa microsoft.com en lugar de https://www.microsoft.com/. Los subdominios también se incluyen en la búsqueda. El filtrado de dominios solo funciona con la web_search herramienta en la API de respuestas.
Nota
Los SDK de OpenAI para .NET y Java todavía no exponen constructores tipados para blocked_domains. Los ejemplos de C# y Java aquí usan las tramas de escape públicas de los SDK (JsonPatch.Set para .NET, putAdditionalProperty para Java) para establecer el campo. Cuando se lancen los constructores tipados, sustituye esas llamadas por sus equivalentes tipados.
Para devolver las fuentes consultadas por el modelo, configure include como ["web_search_call.action.sources"]. Las URL de origen coincidentes aparecen en el array action.sources del elemento de salida web_search_call. Cada entrada contiene un type y un url. Los títulos de página no se devuelven en action.sources; en su lugar, el texto fundamentado del modelo incluye los títulos en las anotaciones url_citation del elemento del mensaje.
Para devolver los fragmentos de los resultados de búsqueda que consultó el modelo, establezca include en ["web_search_call.results"]. La web_search_call.results opción solo se admite cuando se usa un modelo de razonamiento.
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://ai.azure.com/.default"
)
openai = OpenAI(base_url=endpoint, api_key=token_provider)
response = openai.responses.create(
model="gpt-5.5",
reasoning={"effort": "low"},
tools=[
{
"type": "web_search",
"filters": {
"allowed_domains": [
"pubmed.ncbi.nlm.nih.gov",
"clinicaltrials.gov",
"www.who.int",
"www.cdc.gov",
"www.fda.gov",
],
"blocked_domains": [
"en.wikipedia.org",
"www.reddit.com",
],
},
}
],
tool_choice="auto",
include=["web_search_call.action.sources"],
input="Please perform a web search on how semaglutide is used in the treatment of diabetes.",
)
print(response.output_text)
Para usar la autenticación de clave de API, reemplace la credencial de Microsoft Entra por la clave de API, como se muestra en el ejemplo basic.
Limitaciones
- No se admite el acceso directo a Internet. Azure OpenAI siempre trata el parámetro
external_web_accesscomofalse. - La lista de permitidos de dominio admite hasta 100 direcciones URL.
- Las acciones de las llamadas de búsqueda web generan costes de llamadas a herramientas. Para más información, consulte los precios.
- Se admite la versión preliminar de la herramienta de búsqueda web (
web_search_preview), pero no se recomienda. - Las
open_pageacciones yfind_in_pagesolo están disponibles con modelos de razonamiento.
Administración de la herramienta de búsqueda web
Puede habilitar o deshabilitar la herramienta web_search en la API de respuestas en el nivel de suscripción mediante CLI de Azure. Esta configuración se aplica a todas las cuentas de la suscripción especificada.
Requisitos previos
Antes de ejecutar los siguientes comandos, asegúrese de que tiene los siguientes requisitos previos:
- CLI de Azure instalado.
- Ha iniciado sesión en Azure con
az login. - Tiene acceso de propietario o colaborador a la suscripción.
Deshabilitación de la búsqueda web
Para deshabilitar la web_search herramienta para todas las cuentas de una suscripción:
az feature unregister --name OpenAI.BlockedTools.web_search --namespace Microsoft.CognitiveServices --subscription "<subscription-id>"
Este comando deshabilita la búsqueda web en todas las cuentas de la suscripción especificada.
Habilitación de la búsqueda web
Para habilitar la web_search herramienta:
az feature register --name OpenAI.BlockedTools.web_search --namespace Microsoft.CognitiveServices --subscription "<subscription-id>"
Este comando habilita la funcionalidad de búsqueda web de Bing para todas las cuentas de la suscripción.
Solución de problemas
-
Sin citas devueltas: confirme que la solicitud incluye
tools: [{"type": "web_search"}]. Si el modelo no llama a la herramienta, indique más explícitamente que navegue por la web o que solicite citas. - Herramienta bloqueada: pida al administrador de la suscripción que compruebe la configuración de características de suscripción para las herramientas bloqueadas. Consulte Administración de la herramienta de búsqueda web.
-
Errores de autenticación: en el caso de las claves de API, compruebe que establece
AZURE_OPENAI_API_KEY. Para Microsoft Entra ID, compruebe que el ámbito del token eshttps://ai.azure.com/.default.