Azure OpenAI REST API gebruiken
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 temperature
en 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"
}