Azure OpenAI On Your Data API Reference (classic)

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.

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 18.07.2024) Sobald dieses Modell eingestellt wird funktionieren alle Azure OpenAI On Your Data API-Endpunkte und unterstützte Datenquellen-Connectoren nicht mehr.

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}

Supported versions

Note

Pinecone und Elasticsearch werden als Vorschau unterstützt.

URI parameters

Name In Type Required Description
deployment-id path string True Spezifiziert den Namen der Bereitstellung des Chat-Abschlussmodells, der für diese Anfrage verwendet werden soll.
endpoint path string True Azure OpenAI endpoints. Zum Beispiel: https://{YOUR_RESOURCE_NAME}.openai.azure.com
api-version query string True Die API-Version, die für diesen Vorgang verwendet werden soll.

Request body

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 Type Required Description
data_sources DataSource[] True 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.

Response body

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.

Chat message

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

Name Type Required Description
context Context False Repräsentiert die inkrementellen Schritte, die Azure OpenAI On Your Data während der Verarbeitung der Anfrage ausführt, einschließlich der abgerufenen Dokumente.

Context

Name Type Required Description
citations Citation[] False Das Ergebnis der Datenquellenabruf, das zur Erzeugung der Assistentennachricht in der Antwort verwendet wird. Kunden können Referenzen aus den Zitaten angeben.
intent string False Die aus dem Chatverlauf erkannte Absicht. Das Weitergeben der vorherigen Absicht ist nicht mehr nötig. Ignoriere diese Eigenschaft.
all_retrieved_documents Retrieved documents[] False Alle gesicherten Dokumente.

Citation

Name Type Required Description
content string True Der Inhalt der Zitate.
title string False Der Titel der Auszeichnung.
url string False Die URL des Zitats.
filepath string False Der Dateipfad des Zitats.
chunk_id string False Die Chunk-ID der Strafzettel.

Retrieved documents

Name Type Required Description
search_queries string[] True Die Suchanfragen wurden verwendet, um das Dokument abzurufen.
data_source_index integer True Der Index der Datenquelle.
original_search_score double True Die ursprüngliche Suchwertung des abgerufenen Dokuments.
rerank_score double False Die Rerang-Punktzahl des geborgenen Dokuments.
filter_reason string False 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.

Data source

Diese Liste zeigt die unterstützten Datenquellen.

Examples

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

Prerequisites:

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