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.
Solo se aplica a:Portal de foundry (clásico). Este artículo no está disponible para el nuevo portal de Foundry.
Obtenga más información sobre el nuevo portal.
Note
Los vínculos de este artículo pueden abrir contenido en la nueva documentación de Microsoft Foundry en lugar de la documentación de Foundry (clásico) que está viendo ahora.
Importante
Azure OpenAI On Your Data está obsoleto y se acerca a su jubilación. El servicio se retirará el 14 de octubre de 2026
Microsoft ha dejado de incorporar nuevos modelos a Azure OpenAI On Your Data. Esta función solo soporta los siguientes modelos:
- GPT-4o (versiones 2024-05-13, 2024-08-06 y 20-11-2024)
- GPT-4o-mini (versión 2024-07-18)
Recomendamos que migres Azure cargas de trabajo de OpenAI On Your Data a Foundry Agent Service con Foundry IQ para recuperar contenido y generar respuestas fundamentadas a partir de tus datos. Para empezar, consulta Connect a Foundry IQ base de conocimientos.
Este artículo ofrece documentación de referencia para Python y REST para la nueva API de OpenAI sobre tus datos de Azure. La última versión de la API es 2024-05-01-previewSwagger spec.
Note
Desde la versión 2024-02-15-preview de la API hemos introducido los siguientes cambios importantes en comparación con versiones anteriores de la API:
- La ruta de la API cambia de
/extensions/chat/completionsa/chat/completions. - La convención de nombres de las claves de propiedad y los valores de enum cambia de carcasa de camello a carcasa de serpiente. Ejemplo:
deploymentNamese cambia adeployment_name. - El tipo
AzureCognitiveSearchde fuente de datos cambia aazure_search. - Las citas e intención se trasladan desde los mensajes de la herramienta contextual del mensaje asistente al nivel raíz del contexto del mensaje asistente con un esquema explícito definido.
POST {endpoint}/openai/deployments/{deployment-id}/chat/completions?api-version={api-version}
Versiones compatibles
-
2024-02-15-previewSwagger swagger. -
2024-02-01Swagger swagger. -
2024-05-01-previewEspecificación de Swagger
Note
Pinecone y Elasticsearch se soportan como una vista previa.
Parámetros de URI
| Name | En | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
deployment-id |
ruta | string | True | Especifica el nombre del modelo de despliegue de finalizaciones de chat que se debe usar para esta solicitud. |
endpoint |
ruta | string | True | Azure puntos de conexión de OpenAI. Por ejemplo: https://{YOUR_RESOURCE_NAME}.openai.azure.com |
api-version |
consulta | string | True | Versión de la API que se va a usar para esta operación. |
Cuerpo de la solicitud
El cuerpo de la solicitud hereda el mismo esquema de la solicitud API de completación de chats. Esta tabla muestra los parámetros únicos para Azure OpenAI On Your Data.
| Name | Tipo | Obligatorio | Descripción |
|---|---|---|---|
data_sources |
dataSource[] | True | Las entradas de configuración para Azure OpenAI On Your Data. Debe haber exactamente un elemento en el array. Si no se proporciona data_sources, el servicio utiliza directamente el modelo de completación de chats y no utiliza Azure OpenAI On Your Data. Cuando especifiques el data_sources parámetro, no podrás usar los logprobs parámetros o top_logprobs . |
Cuerpo de respuesta
El cuerpo de respuesta hereda el mismo esquema de completaciones de chats en respuesta API. El mensaje de chat respuesta tiene una propiedad context, que se añade para Azure OpenAI On Your Data.
Mensaje de chat
El esquema de mensajes del asistente de respuesta hereda del mensaje de chat del asistente de completaciones de chat, y se extiende con la propiedad context.
| Name | Tipo | Obligatorio | Descripción |
|---|---|---|---|
context |
Contexto | Falso | Representa los pasos incrementales realizados por Azure OpenAI On Your Data al procesar la solicitud, incluidos los documentos recuperados. |
Context
| Name | Tipo | Obligatorio | Descripción |
|---|---|---|---|
citations |
Cita[] | Falso | El resultado de recuperación de la fuente de datos, utilizado para generar el mensaje asistente en la respuesta. Los clientes pueden obtener referencias a partir de las citas. |
intent |
string | Falso | La intención detectada en el historial de chat. Ya no es necesario devolver la intención anterior. Ignora esta propiedad. |
all_retrieved_documents |
Documentos recuperados[] | Falso | Todos los documentos recuperados. |
Cita
| Name | Tipo | Obligatorio | Descripción |
|---|---|---|---|
content |
string | True | El contenido de la cita. |
title |
string | Falso | El título de la cita. |
url |
string | Falso | La URL de la cita. |
filepath |
string | Falso | La ruta del archivo de la cita. |
chunk_id |
string | Falso | La identificación del fragmento de la multa. |
Documentos recuperados
| Name | Tipo | Obligatorio | Descripción |
|---|---|---|---|
search_queries |
string[] | True | Las consultas de búsqueda utilizadas para recuperar el documento. |
data_source_index |
integer | True | El índice de la fuente de datos. |
original_search_score |
double | True | La puntuación original de búsqueda del documento recuperado. |
rerank_score |
double | Falso | La puntuación de reclasificación del documento recuperado. |
filter_reason |
string | Falso | Representa la razón de filtrar el documento. Si el documento no se filtra, este campo permanecerá sin ajustar. Será score si el documento está filtrado por el umbral original de puntuación de búsqueda definido por strictness. Lo rerank será si el documento no está filtrado por el umbral original de puntuación de búsqueda, pero sí por la puntuación de reclasificación y top_n_documents. |
Origen de datos
Esta lista muestra las fuentes de datos soportadas.
- Búsqueda de Azure AI
- Azure Cosmos DB para núcleo virtual de MongoDB
- Elasticsearch (versión preliminar)
- Pinecone (versión preliminar)
Ejemplos
Este ejemplo muestra cómo pasar el historial de conversaciones para obtener mejores resultados.
Requisitos previos:
- Configura la asignación de roles desde el sistema OpenAI asignado a la identidad gestionada de Azure al servicio de búsqueda de Azure. Roles obligatorios:
Search Index Data Reader,Search Service Contributor. - Configura la asignación de roles del usuario al recurso de Azure OpenAI. Rol obligatorio:
Cognitive Services OpenAI User. - Instala la CLI de Arizona y ejecuta
az login. - Definamos las siguientes variables de entorno:
AzureOpenAIEndpoint,ChatCompletionsDeploymentName,SearchEndpoint,SearchIndex.
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export SearchEndpoint=https://example.search.windows.net
export SearchIndex=example-index
Instala los últimos paquetes openaipip , azure-identity.
import os
from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
endpoint = os.environ.get("AzureOpenAIEndpoint")
deployment = os.environ.get("ChatCompletionsDeploymentName")
search_endpoint = os.environ.get("SearchEndpoint")
search_index = os.environ.get("SearchIndex")
token_provider = get_bearer_token_provider(DefaultAzureCredential(), "https://ai.azure.com/.default")
client = AzureOpenAI(
azure_endpoint=endpoint,
azure_ad_token_provider=token_provider,
api_version="2024-05-01-preview",
)
completion = client.chat.completions.create(
model=deployment,
messages=[
{
"role": "user",
"content": "Who is DRI?",
},
{
"role": "assistant",
"content": "DRI stands for Directly Responsible Individual of a service. Which service are you asking about?"
},
{
"role": "user",
"content": "Opinion mining service"
}
],
extra_body={
"data_sources": [
{
"type": "azure_search",
"parameters": {
"endpoint": search_endpoint,
"index_name": search_index,
"authentication": {
"type": "system_assigned_managed_identity"
}
}
}
]
}
)
print(completion.model_dump_json(indent=2))
# render the citations
content = completion.choices[0].message.content
context = completion.choices[0].message.context
for citation_index, citation in enumerate(context["citations"]):
citation_reference = f"[doc{citation_index + 1}]"
url = "https://example.com/?redirect=" + citation["url"] # replace with actual host and encode the URL
filepath = citation["filepath"]
title = citation["title"]
snippet = citation["content"]
chunk_id = citation["chunk_id"]
replaced_html = f"<a href='{url}' title='{title}\n{snippet}''>(See from file {filepath}, Part {chunk_id})</a>"
content = content.replace(citation_reference, replaced_html)
print(content)