Azure OpenAI in Ihrer Daten-API-Referenz
Dieser Artikel enthält eine Referenzdokumentation zu Python und REST für die neue API für Azure OpenAI für Ihre Daten. Die neueste API-Version ist 2024-05-01-preview
Swagger-Spezifikation.
Hinweis
Seit der API-Version 2024-02-15-preview
haben wir die folgenden Breaking Changes im Vergleich zu früheren API-Versionen eingeführt:
- Der API-Pfad wird von
/extensions/chat/completions
in/chat/completions
geändert. - Bei der Namenskonvention von Eigenschaftsschlüsseln und Enumerationswerten werden nun Unterstriche und keine Binnenmajuskeln mehr verwendet. Beispiel:
deploymentName
wird indeployment_name
geändert. - Der Datenquellentyp
AzureCognitiveSearch
wird inazure_search
geändert. - Die Zitate und Absichten werden aus den Kontexttoolnachrichten der Assistentennachricht in die Kontextstammebene der Assistentennachricht verschoben. Dabei wird ein explizites Schema definiert.
POST {endpoint}/openai/deployments/{deployment-id}/chat/completions?api-version={api-version}
Unterstützte Versionen
2024-02-15-preview
Swagger-Spezifikation2024-02-01
Swagger-Spezifikation2024-05-01-preview
Swagger-Spezifikation
Hinweis
Azure Machine Learning-Indizes, Pinecone und Elasticsearch werden als Vorschauversion unterstützt.
URI-Parameter
Name | Geben Sie in | Type | Erforderlich | Beschreibung |
---|---|---|---|---|
deployment-id |
path | Zeichenfolge | True | Gibt den Namen der Modellimplementierung für Chatvervollständigungen an, der für diese Anforderung verwendet werden soll. |
endpoint |
path | Zeichenfolge | True | Azure OpenAI-Endpunkte. Beispiel: https://{YOUR_RESOURCE_NAME}.openai.azure.com |
api-version |
query | Zeichenfolge | True | Hierbei handelt es sich um die für diesen Vorgang zu verwendende API-Version. |
Anforderungstext
Der Anforderungstext erbt dasselbe Schema von der Anforderung der Chatvervollständigungs-API. Die folgende Tabelle enthält die für „Azure OpenAI für Ihre Daten“ eindeutigen Parameter.
Name | Type | Erforderlich | Beschreibung |
---|---|---|---|
data_sources |
DataSource[] | True | Die Konfigurationseinträge für „Azure OpenAI für Ihre Daten“. Es muss genau ein Element im Array vorhanden sein. Wenn data_sources nicht angegeben wird, verwendet der Dienst das Chatvervollständigungsmodell direkt und verwendet nicht „Azure OpenAI für Ihre Daten“. Wenn Sie den Parameter data_sources angeben, können Sie die Parameter logprobs oder top_logprobs nicht verwenden. |
Antworttext
Der Antworttext erbt dasselbe Schema von der Antwort der Chatvervollständigungs-API. Die Antwortchatnachricht verfügt über eine context
-Eigenschaft, die für „Azure OpenAI für Ihre Daten“ hinzugefügt wird.
Chatnachricht
Das Nachrichtenschema des Antwort-Assistenten erbt von der Chat-Nachricht des Assistenten für Chat-Abschlüsse und wird um die Eigenschaft context
erweitert.
Name | Type | Erforderlich | Beschreibung |
---|---|---|---|
context |
Kontext | False | Stellt die inkrementellen Schritte dar, die Azure OpenAI On Your Data während der Verarbeitung der Anfrage durchführt, einschließlich der abgerufenen Dokumente. |
Kontext
Name | Type | Erforderlich | Beschreibung |
---|---|---|---|
citations |
Citation[] | False | Das Ergebnis des Datenquellenabrufs, das zum Generieren der Assistentennachricht in der Antwort verwendet wird. Kunden können Referenzen aus den Zitaten wiedergeben. |
intent |
Zeichenfolge | False | Die erkannte Absicht aus dem Chatverlauf. Die Rückgabe der vorherigen Absicht ist nicht mehr erforderlich. Ignorieren Sie diese Eigenschaft. |
all_retrieved_documents |
Abgerufene Dokumente[] | False | Alle abgerufenen Dokumente. |
Quellenangaben
Name | Type | Erforderlich | Beschreibung |
---|---|---|---|
content |
Zeichenfolge | True | Der Inhalt des Zitats. |
title |
Zeichenfolge | False | Der Titel des Zitats. |
url |
Zeichenfolge | False | Die URL des Zitats. |
filepath |
Zeichenfolge | False | Der Dateipfad des Zitats. |
chunk_id |
Zeichenfolge | False | Die Segment-ID des Zitats. |
Abgerufene Dokumente
Name | Type | Erforderlich | Beschreibung |
---|---|---|---|
search_queries |
string[] | True | Die zum Abrufen des Dokuments verwendeten Suchabfragen. |
data_source_index |
integer | True | Der Index der Datenquelle. |
original_search_score |
double | True | Die ursprüngliche Suchbewertung des abgerufenen Dokuments. |
rerank_score |
double | False | Die neue Rangpunktzahl des abgerufenen Dokuments. |
filter_reason |
Zeichenfolge | False | Stellt die Begründung für die Filterung des Dokuments dar. Wenn das Dokument nicht gefiltert wird, bleibt dieses Feld leer. Wenn das Dokument nach dem durch strictness definierten Schwellenwert der ursprünglichen Suchbewertung gefiltert wird, hat das Feld den Wert score . Wenn das Dokument nicht nach dem Schwellenwert der ursprünglichen Suchbewertung, sondern nach neuer Rangpunktzahl und top_n_documents gefiltert wird, hat das Feld den Wert rerank . |
Datenquelle
In der folgenden Liste sind die unterstützten Datenquellen aufgeführt:
- Azure KI Cognitive Search
- Azure Cosmos DB für MongoDB vCore
- Azure Machine Learning Index (Vorschau)
- Elasticsearch (Vorschau)
- Pinecone (Vorschau)
Beispiele
Dieses Beispiel zeigt, wie Sie den Gesprächsverlauf für bessere Ergebnisse weitergeben können.
Voraussetzungen:
- Konfigurieren Sie die Rollenzuweisungen aus dem Azure OpenAI-System, dem der Azure-Suchdienst verwaltete Identität zugewiesen wurde. Erforderliche Rollen:
Search Index Data Reader
,Search Service Contributor
. - Konfigurieren Sie die Rollenzuweisungen vom Benutzer zur Azure OpenAI-Ressource. Erforderliche Rolle:
Cognitive Services OpenAI User
. - Installieren Sie Az CLI und führen Sie
az login
aus. - Definieren Sie die folgenden Umgebungsvariablen:
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
Installieren Sie die neuesten pip-Pakete openai
, 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-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)