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-01
Swagger 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 indeployment_name
. - Il tipo di
AzureCognitiveSearch
origine dati viene modificato inazure_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
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.
- Azure AI Search
- Azure Cosmos DB per MongoDB vCore
- Indice di Azure Machine Learning (anteprima)
- Elasticsearch (anteprima)
- Pinecone (anteprima)
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 openai
pip 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))