Verwenden der OpenAI-REST-API

Abgeschlossen

Azure OpenAI bietet eine REST-API für die Interaktion und die Generierung von Antworten, mit der Entwickler KI-Funktionen zu ihren Anwendungen hinzufügen können. In dieser Lerneinheit werden Beispielnutzung, Eingabe und Ausgabe der API behandelt.

Hinweis

Bevor Sie mit der API interagieren, müssen Sie eine Azure OpenAI-Ressource im Azure-Portal erstellen, ein Modell in dieser Ressource bereitstellen und Ihren Endpunkt und Ihre Schlüssel abrufen. Informationen dazu finden Sie unter Erste Schritte mit Azure OpenAI Service.

Für jeden Aufruf der REST-API benötigen Sie den Endpunkt und einen Schlüssel aus Ihrer Azure OpenAI-Ressource sowie den Namen, den Sie für Ihr bereitgestelltes Modell angegeben haben. In den folgenden Beispielen werden die folgenden Platzhalter verwendet:

Platzhaltername Wert
YOUR_ENDPOINT_NAME Dieser Basisendpunkt befindet sich im Abschnitt Schlüssel und Endpunkt im Azure-Portal. Dies ist der Basisendpunkt Ihrer Ressource, z. B. https://sample.openai.azure.com/.
YOUR_API_KEY Schlüssel befinden sich im Abschnitt Schlüssel und Endpunkt im Azure-Portal. Sie können beide Schlüssel für Ihre Ressource verwenden.
YOUR_DEPLOYMENT_NAME Dieser Bereitstellungsname ist der Name, den Sie beim Bereitstellen Ihres Modells in Azure KI Studio angegeben haben.

Chatvervollständigungen

Sobald Sie ein Modell in Ihrer Azure OpenAI-Ressource bereitgestellt haben, können Sie mit einer Anfrage eine POST-Anforderung an den Dienst senden.

curl https://YOUR_ENDPOINT_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/chat/completions?api-version=2023-03-15-preview \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d '{"messages":[{"role": "system", "content": "You are a helpful assistant, teaching people about AI."},
{"role": "user", "content": "Does Azure OpenAI support multiple languages?"},
{"role": "assistant", "content": "Yes, Azure OpenAI supports several languages, and can translate between them."},
{"role": "user", "content": "Do other Azure AI Services support translation too?"}]}'

Die Antwort der API ähnelt der folgenden JSON:

{
    "id": "chatcmpl-6v7mkQj980V1yBec6ETrKPRqFjNw9",
    "object": "chat.completion",
    "created": 1679001781,
    "model": "gpt-35-turbo",
    "usage": {
        "prompt_tokens": 95,
        "completion_tokens": 84,
        "total_tokens": 179
    },
    "choices": [
        {
            "message":
                {
                    "role": "assistant",
                    "content": "Yes, other Azure AI Services also support translation. Azure AI Services offer translation between multiple languages for text, documents, or custom translation through Azure AI Services Translator."
                },
            "finish_reason": "stop",
            "index": 0
        }
    ]
}

REST-Endpunkte erlauben die Angabe weiterer optionaler Eingabeparameter, wie z. B. temperature, max_tokens und mehr. Wenn Sie einen dieser Parameter in Ihre Anforderung einschließen möchten, fügen Sie sie den Eingabedaten mit der Anforderung hinzu.

Einbettungen

Einbettungen sind hilfreich für bestimmte Formate, die problemlos von Machine Learning-Modellen genutzt werden können. Um Einbettungen aus dem Eingabetext zu generieren, senden Sie per POST eine Anforderung an den embeddings-Endpunkt.

curl https://YOUR_ENDPOINT_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings?api-version=2022-12-01 \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d "{\"input\": \"The food was delicious and the waiter...\"}"

Achten Sie bei der Erstellung von Einbettungen darauf, dass Sie ein Modell in Azure OpenAI verwenden, das für Einbettungen gedacht ist. Diese Modelle beginnen mit text-embedding oder text-similarity, je nachdem, nach welcher Funktionalität Sie suchen.

Die Antwort der API ähnelt der folgenden JSON:

{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [
        0.0172990688066482523,
        -0.0291879814639389515,
        ....
        0.0134544348834753042,
      ],
      "index": 0
    }
  ],
  "model": "text-embedding-ada:002"
}