Azure OpenAI REST API gebruiken

Voltooid

Azure OpenAI biedt een REST API voor interactie en het genereren van antwoorden die ontwikkelaars kunnen gebruiken om AI-functionaliteit toe te voegen aan hun toepassingen. In deze les wordt het voorbeeldgebruik, de invoer en uitvoer van de API behandeld.

Notitie

Voordat u met de API communiceert, moet u een Azure OpenAI-resource maken in Azure Portal, een model in die resource implementeren en uw eindpunt en sleutels ophalen. Bekijk de aan de slag met De Azure OpenAI-service om te leren hoe u dit doet.

Voor elke aanroep naar de REST API hebt u het eindpunt en een sleutel uit uw Azure OpenAI-resource nodig en de naam die u hebt opgegeven voor uw geïmplementeerde model. In de volgende voorbeelden worden de volgende tijdelijke aanduidingen gebruikt:

Naam van tijdelijke aanduiding Weergegeven als
YOUR_ENDPOINT_NAME Dit basiseindpunt vindt u in de sectie Sleutels en eindpunten in Azure Portal. Dit is het basiseindpunt van uw resource, zoals https://sample.openai.azure.com/.
YOUR_API_KEY Sleutels vindt u in de sectie Sleutels en eindpunt in Azure Portal. U kunt een van beide sleutels voor uw resource gebruiken.
YOUR_DEPLOYMENT_NAME Deze implementatienaam is de naam die wordt opgegeven bij het implementeren van uw model in Azure AI Studio.

Chatvoltooiingen

Zodra u een model in uw Azure OpenAI-resource hebt geïmplementeerd, kunt u een prompt naar de service verzenden met behulp van een POST aanvraag.

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?"}]}'

Het antwoord van de API is vergelijkbaar met de volgende 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
        }
    ]
}

MET REST-eindpunten kunt u andere optionele invoerparameters opgeven, zoals temperatureen max_tokens meer. Als u een van deze parameters in uw aanvraag wilt opnemen, voegt u deze toe aan de invoergegevens met de aanvraag.

Insluitingen

Insluitingen zijn handig voor specifieke indelingen die eenvoudig worden gebruikt door machine learning-modellen. Een aanvraag voor het embeddings eindpunt om insluitingen te genereren op basis van de invoertekstPOST.

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...\"}"

Wanneer u insluitingen genereert, moet u een model in Azure OpenAI gebruiken dat is bedoeld voor insluitingen. Deze modellen beginnen met text-embedding of text-similarity, afhankelijk van de functionaliteit die u zoekt.

Het antwoord van de API is vergelijkbaar met de volgende JSON:

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