Azure OpenAI in Ihrer Daten-API-Referenz (klassisch)

Gilt nur für:Foundry (klassisches) Portal. Dieser Artikel ist für das neue Foundry-Portal nicht verfügbar. Erfahren Sie mehr über das neue Portal.

Note

Links in diesem Artikel können Inhalte in der neuen Microsoft Foundry-Dokumentation anstelle der jetzt angezeigten Foundry-Dokumentation (klassisch) öffnen.

Important

Azure OpenAI On Your Data ist veraltet und steht kurz vor dem Ruhestand. Der Dienst wird am 14. Oktober 2026 eingestellt.

Microsoft hat die Einführung neuer Modelle für Azure OpenAI On Your Data eingestellt. Diese Funktion unterstützt nur die folgenden Modelle:

  • GPT-4o (Versionen 2024-05-13, 2024-08-06 und 20.11.2024)
  • GPT-4o-mini (Version 2024-07-18)

Wir empfehlen, Azure OpenAI On Your Data Workloads zu Foundry Agent Service mit Foundry IQ zu migrieren, um Inhalte abzurufen und fundierte Antworten aus Ihren Daten zu generieren. Um zu starten, siehe Connect a Foundry IQ Knowledge Base.

Dieser Artikel bietet eine Referenzdokumentation für Python und REST für die neue Azure OpenAI On Your Data API. Die neueste API-Version ist 2024-05-01-previewSwagger spec.

Note

Seit der API-Version 2024-02-15-preview haben wir im Vergleich zu früheren API-Versionen folgende fehlerhafte Änderungen eingeführt:

  • Der API-Pfad wird von /extensions/chat/completions zu /chat/completionsgeändert.
  • Die Benennungskonvention von Eigenschaftsschlüsseln und Enum-Werten wurde von Camel Casing auf Snake Casing geändert. Beispiel: deploymentName wird zu deployment_namegeändert.
  • Der Datenquellentyp AzureCognitiveSearch wird auf azure_searchgeändert.
  • Die Zitate und die Absicht werden von den Context-Tool-Nachrichten der Assistant Nachricht auf die Kontextwurzelebene der Assistant Message mit explizitem Schema verschoben.
POST {endpoint}/openai/deployments/{deployment-id}/chat/completions?api-version={api-version}

Unterstützte Versionen

Note

Pinecone und Elasticsearch werden als Vorschau unterstützt.

URI-Parameter

Name In Typ Erforderlich Beschreibung
deployment-id path string Richtig Spezifiziert den Namen der Bereitstellung des Chat-Abschlussmodells, der für diese Anfrage verwendet werden soll.
endpoint path string Richtig Azure OpenAI-Endpunkte. Zum Beispiel: https://{YOUR_RESOURCE_NAME}.openai.azure.com
api-version Abfrage string Richtig Die API-Version, die für diesen Vorgang verwendet werden soll.

Anforderungstext

Der Request-Body erbt dasselbe Schema der Chat-Abschluss-API-Anfragen. Diese Tabelle zeigt die für Azure OpenAI einzigartigen Parameter auf Ihren Daten.

Name Typ Erforderlich Beschreibung
data_sources DataSource-[] Richtig Die Konfigurationseinträge für Azure OpenAI On Your Data. Es muss genau ein Element im Array geben. Wenn data_sources nicht bereitgestellt wird, verwendet der Dienst das Chat-Abschlussmodell direkt und Azure OpenAI On Your Data nicht. Wenn du den Parameter data_sources angibst, kannst du die logprobs oder-Parameter top_logprobs nicht verwenden.

Antwortkörper

Der Antwortkörper erbt dasselbe Schema der Chat-Abschluss-API-Antwort. Die Response-Chatnachricht besitzt eine Eigenschaft context, die für Azure OpenAI On Your Data hinzugefügt wird.

Chatnachricht

Das Response Assistant-Nachrichtenschema erbt von der Chat-Completerings-Assistant-Chatnachricht und wird mit der Eigenschaft contexterweitert.

Name Typ Erforderlich Beschreibung
context Zusammenhang Falsch Repräsentiert die inkrementellen Schritte, die Azure OpenAI On Your Data während der Verarbeitung der Anfrage ausführt, einschließlich der abgerufenen Dokumente.

Kontext

Name Typ Erforderlich Beschreibung
citations Zitat[] Falsch Das Ergebnis der Datenquellenabruf, das zur Erzeugung der Assistentennachricht in der Antwort verwendet wird. Kunden können Referenzen aus den Zitaten angeben.
intent string Falsch Die aus dem Chatverlauf erkannte Absicht. Das Weitergeben der vorherigen Absicht ist nicht mehr nötig. Ignoriere diese Eigenschaft.
all_retrieved_documents Abgerufene Dokumente[] Falsch Alle gesicherten Dokumente.

Zitat

Name Typ Erforderlich Beschreibung
content string Richtig Der Inhalt der Zitate.
title string Falsch Der Titel der Auszeichnung.
url string Falsch Die URL des Zitats.
filepath string Falsch Der Dateipfad des Zitats.
chunk_id string Falsch Die Chunk-ID der Strafzettel.

Abgerufene Dokumente

Name Typ Erforderlich Beschreibung
search_queries string[] Richtig Die Suchanfragen wurden verwendet, um das Dokument abzurufen.
data_source_index integer Richtig Der Index der Datenquelle.
original_search_score doppelt Richtig Die ursprüngliche Suchwertung des abgerufenen Dokuments.
rerank_score doppelt Falsch Die Rerang-Punktzahl des geborgenen Dokuments.
filter_reason string Falsch Stellt die Begründung für das Filtern des Dokuments dar. Wenn das Dokument nicht gefiltert wird, bleibt dieses Feld ungesetzt. Dies gilt, score wenn das Dokument nach der ursprünglichen Suchwertschwelle gefiltert wird, die durch definiert ist strictness. Dies gilt rerank , wenn das Dokument nicht nach der ursprünglichen Suchwertschwelle gefiltert wird, sondern nach Rerank Score und top_n_documents.

Datenquelle

Diese Liste zeigt die unterstützten Datenquellen.

Examples

Dieses Beispiel zeigt, wie man den Gesprächsverlauf weitergibt, um bessere Ergebnisse zu erzielen.

Voraussetzungen:

  • Konfigurieren Sie die Rollenzuweisungen aus dem Azure OpenAI-System-zugewiesenen verwalteten Identitätsdienst an den Azure-Suchdienst. Erforderliche Rollen: Search Index Data Reader, Search Service Contributor.
  • Konfigurieren Sie die Rollenzuweisungen vom Benutzer auf die Azure OpenAI-Ressource. Erforderliche Rolle: Cognitive Services OpenAI User.
  • Installiere Az CLI und führe az login.
  • Definieren Sie die folgenden Umweltvariablen: AzureOpenAIEndpoint, ChatCompletionsDeploymentName, ,SearchEndpointSearchIndex .
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export SearchEndpoint=https://example.search.windows.net
export SearchIndex=example-index

Installiere 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://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)