Share via


Informazioni di riferimento sull'API dati in OpenAI di Azure

Questo articolo fornisce la documentazione di riferimento per Python e REST per la nuova istanza di Azure OpenAI nell'API dati. La versione più recente dell'API è 2024-02-01Swagger spec.

Nota

Poiché la versione 2024-02-15-preview dell'API ha introdotto le modifiche di rilievo seguenti rispetto alle versioni precedenti dell'API:

  • Il percorso DELL'API viene modificato da /extensions/chat/completions a /chat/completions.
  • La convenzione di denominazione delle chiavi di proprietà e dei valori di enumerazione viene modificata da maiuscole e minuscole camel a maiuscole e minuscole di serpente. Esempio: deploymentName viene modificato in deployment_name.
  • Il tipo di AzureCognitiveSearch origine dati viene modificato in azure_search.
  • Le citazioni e la finalità vengono spostate dai messaggi dello strumento di contesto del messaggio assistente al livello radice del contesto del messaggio dell'assistente con lo schema esplicito definito.
POST {endpoint}/openai/deployments/{deployment-id}/chat/completions?api-version={api-version}

Versioni supportate

Nota

Gli indici di Azure Machine Learning, Pinecone e Elasticsearch sono supportati solo nella versione api 2024-02-15-preview come anteprima.

Parametri URI

Nome Tra Type Obbligatorio Descrizione
deployment-id path string True Specifica il nome della distribuzione del modello di completamento della chat da usare per questa richiesta.
endpoint path string True Endpoint OpenAI di Azure. Ad esempio: https://{YOUR_RESOURCE_NAME}.openai.azure.com
api-version query string True Versione dell'API da usare per questa operazione.

Corpo della richiesta

Il corpo della richiesta eredita lo stesso schema della richiesta API di completamento chat. Questa tabella mostra i parametri univoci per Azure OpenAI sui dati.

Nome Digita Obbligatorio Descrizione
data_sources DataSource[] Vero Voci di configurazione per Azure OpenAI nei dati. Nella matrice deve essere presente esattamente un elemento. Se data_sources non viene specificato, il servizio usa direttamente il modello di completamento della chat e non usa Azure OpenAI nei dati.

Corpo della risposta

Il corpo della risposta eredita lo stesso schema della risposta api di completamento della chat. Il messaggio di chat di risposta ha una context proprietà aggiunta per Azure OpenAI nei dati.

Messaggio di chat

Lo schema del messaggio di Assistente risposta eredita dal messaggio di chat assistant completamento chat ed è esteso con la proprietà context.

Nome Digita Obbligatorio Descrizione
context Contesto Falso Rappresenta i passaggi incrementali eseguiti da Azure OpenAI sui dati durante l'elaborazione della richiesta, inclusi i documenti recuperati.

Contesto

Nome Digita Obbligatorio Descrizione
citations Citazione[] Falso Risultato del recupero dell'origine dati, utilizzato per generare il messaggio di assistente nella risposta. I client possono eseguire il rendering dei riferimenti dalle citazioni.
intent string Falso Finalità rilevata dalla cronologia delle chat. Il passaggio della finalità precedente non è più necessario. Ignorare questa proprietà.

Citazione

Nome Digita Obbligatorio Descrizione
content stringa True Contenuto della citazione.
title string Falso Titolo della citazione.
url string Falso URL della citazione.
filepath string Falso Percorso del file della citazione.
chunk_id string Falso ID blocco della citazione.

Origine dati

Questo elenco mostra le origini dati supportate.

Esempi

In questo esempio viene illustrato come passare la cronologia delle conversazioni per ottenere risultati migliori.

Prerequisiti:

  • Configurare le assegnazioni di ruolo dall'identità gestita assegnata dal sistema OpenAI di Azure al servizio di ricerca di Azure. Ruoli obbligatori: Search Index Data Reader, Search Service Contributor.
  • Configurare le assegnazioni di ruolo dall'utente alla risorsa OpenAI di Azure. Ruolo obbligatorio: Cognitive Services OpenAI User.
  • Installare l'interfaccia della riga di comando di Az ed eseguire az login.
  • Definire le variabili di ambiente seguenti: 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

Installare i pacchetti openaipip più recenti , 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://cognitiveservices.azure.com/.default")

client = AzureOpenAI(
    azure_endpoint=endpoint,
    azure_ad_token_provider=token_provider,
    api_version="2024-02-01",
)

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))