Azure OpenAI en la referencia de Api de datos (clásico)

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/completions a /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: deploymentName se cambia a deployment_name.
  • El tipo AzureCognitiveSearch de fuente de datos cambia a azure_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

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.

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)