Share via


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 die 2024-02-01Swagger-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 in deployment_name geändert.
  • Der Datenquellentyp AzureCognitiveSearch wird in azure_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-previewSwagger-Spezifikation
  • 2024-02-01Swagger-Spezifikation

Hinweis

Azure Machine Learning Indizes, Pinecone und Elasticsearch werden in der 2024-02-15-previewAPI-Version nur als Vorschau 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“.

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.

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.

Datenquelle

In der folgenden Liste sind die unterstützten Datenquellen aufgeführt:

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