Referenční informace k rozhraní API pro Azure OpenAI

Tento článek obsahuje referenční dokumentaci pro Python a REST pro nové rozhraní Azure OpenAI ve vašem rozhraní DATA API. Nejnovější verze rozhraní API je 2024-02-01specifikace Swagger.

Poznámka:

Vzhledem k tomu, že jsme ve verzi 2024-02-15-preview rozhraní API zavedli následující zásadní změny v porovnání se staršími verzemi rozhraní API:

  • Cesta rozhraní API se změní z /extensions/chat/completions na /chat/completions.
  • Konvence pojmenování klíčů vlastností a výčtových hodnot se mění z camel casing na had casing. Příklad: deploymentName je změněn na deployment_name.
  • Typ AzureCognitiveSearch zdroje dat se změní na azure_search.
  • Citace a záměr se přesunou ze zpráv kontextových zpráv pomocníka do kořenové úrovně kontextu zprávy asistenta s explicitním schématem.
POST {endpoint}/openai/deployments/{deployment-id}/chat/completions?api-version={api-version}

Podporované verze

Poznámka:

Indexy Služby Azure Machine Learning, Pinecone a Elasticsearch se podporují jenom ve 2024-02-15-preview verzi API ve verzi Preview.

Parametry identifikátoru URI

Název V Typ Požadováno Popis
deployment-id path string True Určuje název nasazení modelu dokončení chatu, který se má pro tento požadavek použít.
endpoint path string True Koncové body Azure OpenAI Příklad: https://{YOUR_RESOURCE_NAME}.openai.azure.com
api-version query string True Verze rozhraní API, která se má použít pro tuto operaci.

Text požadavku

Tělo požadavku dědí stejné schéma požadavku rozhraní API pro dokončování chatu. Tato tabulka zobrazuje parametry jedinečné pro Azure OpenAI ve vašich datech.

Name Type Požadováno Popis
data_sources Zdroj dat[] True Položky konfigurace pro Azure OpenAI ve vašich datech. V poli musí být přesně jeden prvek. Pokud data_sources není k dispozici, služba používá model dokončování chatu přímo a nepoužívá Azure OpenAI ve vašich datech.

Text odpovědi

Tělo odpovědi dědí stejné schéma odpovědi rozhraní API pro dokončování chatu. Zpráva chatu s odpovědí má context vlastnost, která se přidá pro Azure OpenAI ve vašich datech.

Chatovací zpráva

Schéma zpráv pomocníka pro odpovědi dědí ze zprávy pomocníka pro dokončování chatu a je rozšířen o vlastnost context.

Name Type Požadováno Popis
context Kontext False Představuje přírůstkové kroky prováděné službou Azure OpenAI ve vašich datech při zpracování požadavku, včetně načtených dokumentů.

Kontext

Name Type Požadováno Popis
citations Citace[] False Výsledek načtení zdroje dat použitý k vygenerování zprávy asistenta v odpovědi. Klienti mohou vykreslit odkazy z citací.
intent string False Zjištěný záměr z historie chatu. Předání předchozího záměru už není potřeba. Tuto vlastnost ignorujte.

Citace

Name Type Požadováno Popis
content string True Obsah citace.
title string False Název citace.
url string False Adresa URL citace.
filepath string False Cesta k souboru citace.
chunk_id string False ID bloku citace.

Zdroj dat

Tento seznam zobrazuje podporované zdroje dat.

Příklady

Tento příklad ukazuje, jak předat historii konverzací pro lepší výsledky.

Požadavky:

  • Nakonfigurujte přiřazení rolí ze systému Azure OpenAI přiřazené spravované identitě ke službě Azure Search. Požadované role: Search Index Data Reader, Search Service Contributor.
  • Nakonfigurujte přiřazení rolí od uživatele k prostředku Azure OpenAI. Požadovaná role: Cognitive Services OpenAI User.
  • Nainstalujte Az CLI a spusťte az loginpříkaz .
  • Definujte následující proměnné prostředí: 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

Nainstalujte nejnovější balíčky openaipip , 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))