Quickstart: Aan de slag met GPT-35-Turbo en GPT-4 met Azure OpenAI Service
Gebruik dit artikel om aan de slag te gaan met Azure OpenAI.
Vereisten
- Een Azure-abonnement: maak er gratis een.
- Een Azure OpenAI-serviceresource met een
gpt-4o
van degpt-4o-mini
geïmplementeerde modellen. We raden u aan om standaard- of algemene modelimplementatietypen te gebruiken voor initiële verkenning. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Ga naar Azure OpenAI Studio
Navigeer naar Azure OpenAI Studio op https://oai.azure.com/ en meld u aan met referenties die toegang hebben tot uw Azure OpenAI-resource. Selecteer tijdens of na de aanmeldingswerkstroom de juiste map, het Azure-abonnement en de Azure OpenAI-resource.
Selecteer chatspeeltuin op de landingspagina van Azure OpenAI Studio.
Speelplaats
Begin met het verkennen van OpenAI-mogelijkheden met een no-code-benadering via de Azure OpenAI Studio Chat-speeltuin. Op deze pagina kunt u snel herhalen en experimenteren met de mogelijkheden.
Instellingen
U kunt de vervolgkeuzelijst *Promptvoorbeelden gebruiken om enkele vooraf geladen systeemberichtvoorbeelden te selecteren om aan de slag te gaan.
Systeemberichten geven het model instructies over hoe het zich moet gedragen en eventuele context waarnaar wordt verwezen bij het genereren van een antwoord. U kunt de persoonlijkheid van de assistent beschrijven, vertellen wat het wel en niet moet beantwoorden en hoe u antwoorden kunt opmaken.
U kunt op elk gewenst moment tijdens het gebruik van de Chat-speeltuin Code weergeven selecteren om voorbeelden van Python-, curl- en json-code vooraf ingevuld te zien op basis van uw huidige selecties voor chatsessies en instellingen. U kunt deze code vervolgens gebruiken en een toepassing schrijven om dezelfde taak te voltooien die u momenteel uitvoert met de speeltuin.
Chatsessie
Als u de knop Enter selecteert of het pijl-rechts selecteert, wordt de ingevoerde tekst verzonden naar de API voor voltooiing van de chat en worden de resultaten teruggezet naar het tekstvak.
Selecteer de knop Chat wissen om de huidige gespreksgeschiedenis te verwijderen.
Sleutelinstellingen
Naam | Beschrijving |
---|---|
Installaties | Uw implementatienaam die is gekoppeld aan een specifiek model. |
Uw gegevens toevoegen | |
Parameters | Aangepaste parameters waarmee de modelreacties worden gewijzigd. Wanneer u begint, raden we u aan om de standaardwaarden voor de meeste parameters te gebruiken |
Temperatuur | Bepaalt willekeurigheid. Het verlagen van de temperatuur betekent dat het model meer terugkerende en deterministische reacties produceert. Het verhogen van de temperatuur resulteert in onverwachtere of creatieve reacties. Probeer de temperatuur of top P aan te passen, maar niet beide. |
Maximaal antwoord (tokens) | Stel een limiet in voor het aantal tokens per modelantwoord. De API op de nieuwste modellen ondersteunt maximaal 128.000 tokens die worden gedeeld tussen de prompt (inclusief systeembericht, voorbeelden, berichtgeschiedenis en gebruikersquery) en het antwoord van het model. Eén token is ongeveer vier tekens voor typische Engelse tekst. |
Bovenste p | Net als bij temperatuur bepaalt deze willekeurigheid, maar wordt een andere methode gebruikt. Als u top P verlaagt, wordt de tokenselectie van het model beperkt tot likelier-tokens. Als u top P verhoogt, kan het model kiezen uit tokens met zowel een hoge als een lage kans. Probeer de temperatuur of top P aan te passen, maar niet beide. |
Reeksen stoppen | Stopvolgorde zorgt ervoor dat het model het antwoord op een gewenst punt beëindigt. Het modelantwoord eindigt vóór de opgegeven reeks, dus bevat deze niet de tekst van de stopreeks. Voor GPT-35-Turbo zorgt het gebruik <|im_end|> ervan ervoor dat het modelantwoord geen opvolgende gebruikersquery genereert. U kunt maximaal vier stopreeksen opnemen. |
Code weergeven
Zodra u hebt geëxperimenteerd met het model, selecteert u de <knop /> Code weergeven. Dit geeft u een herhaling van de code achter uw hele gesprek tot nu toe:
Inzicht in de promptstructuur
Als u het voorbeeld van Code weergeven bekijkt, ziet u dat het gesprek is onderverdeeld in drie verschillende rollen system
, , user
. assistant
Telkens wanneer u het model berichtt, wordt de hele gespreksgeschiedenis tot dat punt opnieuw verzonden. Wanneer u de API voor het voltooien van chats gebruikt, heeft het model geen echt geheugen van wat u in het verleden naar het model hebt verzonden, zodat u de gespreksgeschiedenis voor context opgeeft zodat het model correct kan reageren.
De handleiding voor het voltooien van chats biedt een uitgebreide inleiding in de nieuwe promptstructuur en het effectief gebruiken van modellen voor chatvoltooiing.
Uw model implementeren
Zodra u tevreden bent met de ervaring in Azure OpenAI Studio, kunt u rechtstreeks vanuit Studio een web-app implementeren door de knop Implementeren te selecteren.
Dit biedt u de mogelijkheid om te implementeren in een zelfstandige webtoepassing of een copilot in Copilot Studio (preview) als u uw eigen gegevens op het model gebruikt.
Als u er bijvoorbeeld voor kiest om een web-app te implementeren:
De eerste keer dat u een web-app implementeert, selecteert u Een nieuwe web-app maken. Kies een naam voor de app, die deel gaat uitmaken van de APP-URL. Bijvoorbeeld: https://<appname>.azurewebsites.net
.
Selecteer uw abonnement, resourcegroep, locatie en prijsplan voor de gepubliceerde app. Als u een bestaande app wilt bijwerken, selecteert u Publiceren naar een bestaande web-app en kiest u de naam van uw vorige app in de vervolgkeuzelijst.
Als u ervoor kiest om een web-app te implementeren, raadpleegt u de belangrijke overwegingen voor het gebruik ervan.
Resources opschonen
Als u klaar bent met het testen van de Chat-speeltuin, kunt u de resource of resourcegroep verwijderen als u een Azure OpenAI-resource wilt opschonen en verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd.
Volgende stappen
- Meer informatie over het werken met het nieuwe
gpt-35-turbo
model met de handleiding GPT-35-Turbo & GPT-4. - Bekijk de GitHub-opslagplaats met Voorbeelden van Azure OpenAI voor meer voorbeelden
Sjabloon voor het ophalen van augmented generation (RAG)-sjabloon voor broncodepakket | (NuGet)-voorbeelden| | |
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- De .NET 7 SDK
- Een Azure OpenAI Service-resource met de
gpt-35-turbo
of degpt-4
geïmplementeerde modellen. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Instellingen
Een nieuwe .NET Core-app maken
Gebruik in een consolevenster (zoals cmd, PowerShell of Bash) de opdracht dotnet new
om een nieuwe console-app te maken met de naam azure-openai-quickstart
. Met deze opdracht maakt u een eenvoudig 'Hallo wereld'-project met één C#-bronbestand: Program.cs.
dotnet new console -n azure-openai-quickstart
Wijzig uw map in de zojuist gemaakte app-map. U kunt de toepassing maken met:
dotnet build
De build-uitvoer mag geen waarschuwingen of fouten bevatten.
...
Build succeeded.
0 Warning(s)
0 Error(s)
...
Installeer de OpenAI .NET-clientbibliotheek met:
dotnet add package Azure.AI.OpenAI --prerelease
Sleutel en eindpunt ophalen
Als u azure OpenAI wilt aanroepen, hebt u een eindpunt en een sleutel nodig.
Naam van de variabele | Weergegeven als |
---|---|
ENDPOINT |
Het service-eindpunt vindt u in de sectie Sleutels en eindpunten bij het controleren van uw resource vanuit Azure Portal. U kunt het eindpunt ook vinden via de pagina Implementaties in Azure AI Studio. Een voorbeeldeindpunt is: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt KEY1 of KEY2 gebruiken. |
Ga naar uw resource in Azure Portal. De sectie Sleutels en eindpunt vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1
of KEY2
gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.
Omgevingsvariabelen
Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.
Belangrijk
Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Een voorbeeldtoepassing maken
Open in de projectmap het program.cs-bestand en vervang het door de volgende code:
Zonder antwoordstreaming
using Azure;
using Azure.AI.OpenAI;
using static System.Environment;
string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");
AzureOpenAIClient azureClient = new(
new Uri(endpoint),
new AzureKeyCredential(key));
// This must match the custom deployment name you chose for your model
ChatClient chatClient = azureClient.GetChatClient("gpt-35-turbo");
ChatCompletion completion = chatClient.CompleteChat(
[
new SystemChatMessage("You are a helpful assistant that talks like a pirate."),
new UserChatMessage("Does Azure OpenAI support customer managed keys?"),
new AssistantChatMessage("Yes, customer managed keys are supported by Azure OpenAI"),
new UserChatMessage("Do other Azure AI services support this too?")
]);
Console.WriteLine($"{completion.Role}: {completion.Content[0].Text}");
Belangrijk
Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel over beveiliging van Azure AI-services voor meer informatie over referentiebeveiliging.
dotnet run program.cs
Uitvoer
Assistant : Yes, many other Azure AI services also support customer managed keys, including Azure Cognitive Services, Azure Machine Learning, and Azure Databricks. By using customer managed keys, you can retain complete control over your encryption keys and provide an additional layer of security for your AI assets.
Dit wacht totdat het model het volledige antwoord heeft gegenereerd voordat de resultaten worden afgedrukt. Als u het antwoord asynchroon wilt streamen en de resultaten wilt afdrukken, kunt u de inhoud van program.cs vervangen door de code in het volgende voorbeeld.
Asynchroon met streaming
using Azure;
using Azure.AI.OpenAI;
using OpenAI.Chat;
using static System.Environment;
string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");
AzureOpenAIClient azureClient = new(
new Uri(endpoint),
new AzureKeyCredential(key));
// This must match the custom deployment name you chose for your model
ChatClient chatClient = azureClient.GetChatClient("gpt-35-turbo");
var chatUpdates = chatClient.CompleteChatStreamingAsync(
[
new SystemChatMessage("You are a helpful assistant that talks like a pirate."),
new UserChatMessage("Does Azure OpenAI support customer managed keys?"),
new AssistantChatMessage("Yes, customer managed keys are supported by Azure OpenAI"),
new UserChatMessage("Do other Azure AI services support this too?")
]);
await foreach(var chatUpdate in chatUpdates)
{
if (chatUpdate.Role.HasValue)
{
Console.Write($"{chatUpdate.Role} : ");
}
foreach(var contentPart in chatUpdate.ContentUpdate)
{
Console.Write(contentPart.Text);
}
}
Resources opschonen
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource verwijderen. Voordat u de resource verwijdert, moet u eerst geïmplementeerde modellen verwijderen.
Volgende stappen
Voorbeelden van broncodepakket | (Go)|
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- Go 1.21.0 of hoger lokaal geïnstalleerd.
- Een Azure OpenAI-serviceresource met het
gpt-35-turbo
geïmplementeerde model. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Instellingen
Sleutel en eindpunt ophalen
Als u azure OpenAI wilt aanroepen, hebt u een eindpunt en een sleutel nodig.
Naam van de variabele | Weergegeven als |
---|---|
ENDPOINT |
Het service-eindpunt vindt u in de sectie Sleutels en eindpunten bij het controleren van uw resource vanuit Azure Portal. U kunt het eindpunt ook vinden via de pagina Implementaties in Azure AI Studio. Een voorbeeldeindpunt is: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt KEY1 of KEY2 gebruiken. |
Ga naar uw resource in Azure Portal. De sectie Sleutels en eindpunt vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1
of KEY2
gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.
Omgevingsvariabelen
Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.
Belangrijk
Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Een voorbeeldtoepassing maken
Maak een nieuw bestand met de naam chat_completions.go. Kopieer de volgende code naar het bestand chat_completions.go .
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
"github.com/Azure/azure-sdk-for-go/sdk/azcore"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
)
func main() {
azureOpenAIKey := os.Getenv("AZURE_OPENAI_API_KEY")
modelDeploymentID := os.Getenv("YOUR_MODEL_DEPLOYMENT_NAME")
maxTokens:= int32(400)
// Ex: "https://<your-azure-openai-host>.openai.azure.com"
azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
if azureOpenAIKey == "" || modelDeploymentID == "" || azureOpenAIEndpoint == "" {
fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n")
return
}
keyCredential := azcore.NewKeyCredential(azureOpenAIKey)
// In Azure OpenAI you must deploy a model before you can use it in your client. For more information
// see here: https://learn.microsoft.com/azure/cognitive-services/openai/how-to/create-resource
client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)
if err != nil {
// TODO: Update the following line with your application specific error handling logic
log.Printf("ERROR: %s", err)
return
}
// This is a conversation in progress.
// NOTE: all messages, regardless of role, count against token usage for this API.
messages := []azopenai.ChatRequestMessageClassification{
// You set the tone and rules of the conversation with a prompt as the system role.
&azopenai.ChatRequestSystemMessage{Content: to.Ptr("You are a helpful assistant.")},
// The user asks a question
&azopenai.ChatRequestUserMessage{Content: azopenai.NewChatRequestUserMessageContent("Does Azure OpenAI support customer managed keys?")},
// The reply would come back from the model. You'd add it to the conversation so we can maintain context.
&azopenai.ChatRequestAssistantMessage{Content: to.Ptr("Yes, customer managed keys are supported by Azure OpenAI")},
// The user answers the question based on the latest reply.
&azopenai.ChatRequestUserMessage{Content: azopenai.NewChatRequestUserMessageContent("What other Azure Services support customer managed keys?")},
// from here you'd keep iterating, sending responses back from ChatGPT
}
gotReply := false
resp, err := client.GetChatCompletions(context.TODO(), azopenai.ChatCompletionsOptions{
// This is a conversation in progress.
// NOTE: all messages count against token usage for this API.
Messages: messages,
DeploymentName: &modelDeploymentID,
MaxTokens: &maxTokens,
}, nil)
if err != nil {
// TODO: Update the following line with your application specific error handling logic
log.Printf("ERROR: %s", err)
return
}
for _, choice := range resp.Choices {
gotReply = true
if choice.ContentFilterResults != nil {
fmt.Fprintf(os.Stderr, "Content filter results\n")
if choice.ContentFilterResults.Error != nil {
fmt.Fprintf(os.Stderr, " Error:%v\n", choice.ContentFilterResults.Error)
}
fmt.Fprintf(os.Stderr, " Hate: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Hate.Severity, *choice.ContentFilterResults.Hate.Filtered)
fmt.Fprintf(os.Stderr, " SelfHarm: sev: %v, filtered: %v\n", *choice.ContentFilterResults.SelfHarm.Severity, *choice.ContentFilterResults.SelfHarm.Filtered)
fmt.Fprintf(os.Stderr, " Sexual: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Sexual.Severity, *choice.ContentFilterResults.Sexual.Filtered)
fmt.Fprintf(os.Stderr, " Violence: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Violence.Severity, *choice.ContentFilterResults.Violence.Filtered)
}
if choice.Message != nil && choice.Message.Content != nil {
fmt.Fprintf(os.Stderr, "Content[%d]: %s\n", *choice.Index, *choice.Message.Content)
}
if choice.FinishReason != nil {
// this choice's conversation is complete.
fmt.Fprintf(os.Stderr, "Finish reason[%d]: %s\n", *choice.Index, *choice.FinishReason)
}
}
if gotReply {
fmt.Fprintf(os.Stderr, "Received chat completions reply\n")
}
}
Belangrijk
Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel over beveiliging van Azure AI-services voor meer informatie over referentiebeveiliging.
Open nu een opdrachtprompt en voer het volgende uit:
go mod init chat_completions.go
Volgende uitvoering:
go mod tidy
go run chat_completions.go
Uitvoer
Content filter results
Hate: sev: safe, filtered: false
SelfHarm: sev: safe, filtered: false
Sexual: sev: safe, filtered: false
Violence: sev: safe, filtered: false
Content[0]: As of my last update in early 2023, in Azure, several AI services support the use of customer-managed keys (CMKs) through Azure Key Vault. This allows customers to have control over the encryption keys used to secure their data at rest. The services that support this feature typically fall under Azure's range of cognitive services and might include:
1. Azure Cognitive Search: It supports using customer-managed keys to encrypt the index data.
2. Azure Form Recognizer: For data at rest, you can use customer-managed keys for added security.
3. Azure Text Analytics: CMKs can be used for encrypting your data at rest.
4. Azure Blob Storage: While not exclusively an AI service, it's often used in conjunction with AI services to store data, and it supports customer-managed keys for encrypting blob data.
Note that the support for CMKs can vary by service and sometimes even by the specific feature within the service. Additionally, the landscape of cloud services is fast evolving, and new features, including security capabilities, are frequently added. Therefore, it's recommended to check the latest Azure documentation or contact Azure support for the most current information about CMK support for any specific Azure AI service.
Finish reason[0]: stop
Received chat completions reply
Resources opschonen
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource verwijderen. Voordat u de resource verwijdert, moet u eerst geïmplementeerde modellen verwijderen.
Volgende stappen
Bekijk de GitHub-opslagplaats met Azure OpenAI-voorbeelden voor meer voorbeelden
Broncodeartefact (Maven) | Samples | Retrieval Augmented Generation (RAG) enterprise chat template | IntelliJ IDEA |
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- De huidige versie van de Java Development Kit (JDK)
- Het hulpprogramma Gradle of een andere afhankelijkheidsbeheerder.
- Een Azure OpenAI Service-resource met de
gpt-35-turbo
of degpt-4
geïmplementeerde modellen. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Instellingen
Sleutel en eindpunt ophalen
Als u azure OpenAI wilt aanroepen, hebt u een eindpunt en een sleutel nodig.
Naam van de variabele | Weergegeven als |
---|---|
ENDPOINT |
Het service-eindpunt vindt u in de sectie Sleutels en eindpunten bij het controleren van uw resource vanuit Azure Portal. U kunt het eindpunt ook vinden via de pagina Implementaties in Azure AI Studio. Een voorbeeldeindpunt is: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt KEY1 of KEY2 gebruiken. |
Ga naar uw resource in Azure Portal. De sectie Sleutels en eindpunt vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1
of KEY2
gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.
Omgevingsvariabelen
Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.
Belangrijk
Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Een nieuwe Java-toepassing maken
Maak een nieuw Gradle-project.
Maak in een consolevenster (zoals cmd, PowerShell of Bash) een nieuwe map voor de app, en navigeer naar deze map.
mkdir myapp && cd myapp
Voer de opdracht gradle init
uit vanuit uw werkmap. Met deze opdracht maakt u essentiële buildbestanden voor Gradle, inclusief build.gradle.kts, dat tijdens runtime wordt gebruikt om de toepassing te maken en te configureren.
gradle init --type basic
Wanneer u wordt gevraagd om een DSL te kiezen, selecteert u Kotlin.
De Java SDK installeren
Deze quickstart maakt gebruik van de Gradle-afhankelijkheidsmanager. U vindt de clientbibliotheek en informatie voor andere afhankelijkheidsbeheerders in de Maven Central Repository.
Zoek build.gradle.kts en open het met uw favoriete IDE of teksteditor. Kopieer het vervolgens in de volgende buildconfiguratie. Deze configuratie definieert het project als een Java-toepassing waarvan het toegangspunt de klasse OpenAIQuickstart is. De Azure AI Vision-bibliotheek wordt geïmporteerd.
plugins {
java
application
}
application {
mainClass.set("OpenAIQuickstart")
}
repositories {
mavenCentral()
}
dependencies {
implementation(group = "com.azure", name = "azure-ai-openai", version = "1.0.0-beta.10")
implementation("org.slf4j:slf4j-simple:1.7.9")
}
Een voorbeeldtoepassing maken
Maak een Java-bestand.
Voer de volgende opdracht uit vanuit uw werkmap om een projectbronmap te maken:
mkdir -p src/main/java
Navigeer naar de nieuwe map en maak een bestand met de naam OpenAIQuickstart.java.
Open OpenAIQuickstart.java in de gewenste editor of IDE en plak de volgende code.
package com.azure.ai.openai.usage; import com.azure.ai.openai.OpenAIClient; import com.azure.ai.openai.OpenAIClientBuilder; import com.azure.ai.openai.models.ChatChoice; import com.azure.ai.openai.models.ChatCompletions; import com.azure.ai.openai.models.ChatCompletionsOptions; import com.azure.ai.openai.models.ChatRequestAssistantMessage; import com.azure.ai.openai.models.ChatRequestMessage; import com.azure.ai.openai.models.ChatRequestSystemMessage; import com.azure.ai.openai.models.ChatRequestUserMessage; import com.azure.ai.openai.models.ChatResponseMessage; import com.azure.ai.openai.models.CompletionsUsage; import com.azure.core.credential.AzureKeyCredential; import com.azure.core.util.Configuration; import java.util.ArrayList; import java.util.List; public class OpenAIQuickstart { public static void main(String[] args) { String azureOpenaiKey = Configuration.getGlobalConfiguration().get("AZURE_OPENAI_API_KEY"); String endpoint = Configuration.getGlobalConfiguration().get("AZURE_OPENAI_ENDPOINT"); String deploymentOrModelId = "{azure-open-ai-deployment-model-id}"; OpenAIClient client = new OpenAIClientBuilder() .endpoint(endpoint) .credential(new AzureKeyCredential(azureOpenaiKey)) .buildClient(); List<ChatRequestMessage> chatMessages = new ArrayList<>(); chatMessages.add(new ChatRequestSystemMessage("You are a helpful assistant.")); chatMessages.add(new ChatRequestUserMessage("Does Azure OpenAI support customer managed keys?")); chatMessages.add(new ChatRequestAssistantMessage("Yes, customer managed keys are supported by Azure OpenAI?")); chatMessages.add(new ChatRequestUserMessage("Do other Azure AI services support this too?")); ChatCompletions chatCompletions = client.getChatCompletions(deploymentOrModelId, new ChatCompletionsOptions(chatMessages)); System.out.printf("Model ID=%s is created at %s.%n", chatCompletions.getId(), chatCompletions.getCreatedAt()); for (ChatChoice choice : chatCompletions.getChoices()) { ChatResponseMessage message = choice.getMessage(); System.out.printf("Index: %d, Chat Role: %s.%n", choice.getIndex(), message.getRole()); System.out.println("Message:"); System.out.println(message.getContent()); } System.out.println(); CompletionsUsage usage = chatCompletions.getUsage(); System.out.printf("Usage: number of prompt token is %d, " + "number of completion token is %d, and number of total tokens in request and response is %d.%n", usage.getPromptTokens(), usage.getCompletionTokens(), usage.getTotalTokens()); } }
Belangrijk
Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel over beveiliging van Azure AI-services voor meer informatie over referentiebeveiliging.
Ga terug naar de hoofdmap van het project en bouw de app met:
gradle build
Voer het vervolgens uit met de
gradle run
opdracht:gradle run
Uitvoer
Model ID=chatcmpl-7JYnyE4zpd5gaIfTRH7hNpeVsvAw4 is created at 1684896378.
Index: 0, Chat Role: assistant.
Message:
Yes, most of the Azure AI services support customer managed keys. However, there may be some exceptions, so it is best to check the documentation of each specific service to confirm.
Usage: number of prompt token is 59, number of completion token is 36, and number of total tokens in request and response is 95.
Resources opschonen
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource verwijderen. Voordat u de resource verwijdert, moet u eerst geïmplementeerde modellen verwijderen.
Volgende stappen
Voorbeeld van broncodeartefacten (Maven) | |
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- De huidige versie van de Java Development Kit (JDK)
- Het Hulpprogramma Spring Boot CLI
- Een Azure OpenAI-serviceresource met het
gpt-35-turbo
geïmplementeerde model. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen. In dit voorbeeld wordt ervan uitgegaan dat uw implementatienaam overeenkomt met de modelnaamgpt-35-turbo
Instellingen
Sleutel en eindpunt ophalen
Als u azure OpenAI wilt aanroepen, hebt u een eindpunt en een sleutel nodig.
Naam van de variabele | Weergegeven als |
---|---|
ENDPOINT |
Het service-eindpunt vindt u in de sectie Sleutels en eindpunten bij het controleren van uw resource vanuit Azure Portal. U kunt het eindpunt ook vinden via de pagina Implementaties in Azure AI Studio. Een voorbeeldeindpunt is: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt KEY1 of KEY2 gebruiken. |
Ga naar uw resource in Azure Portal. De sectie Sleutels en eindpunt vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1
of KEY2
gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.
Omgevingsvariabelen
Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.
Belangrijk
Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
Notitie
In Spring AI wordt de modelnaam standaard ingesteld op gpt-35-turbo
. Het is alleen nodig om de SPRING_AI_AZURE_OPENAI_MODEL
waarde op te geven als u een model met een andere naam hebt geïmplementeerd.
export SPRING_AI_AZURE_OPENAI_API_KEY="REPLACE_WITH_YOUR_KEY_VALUE_HERE"
export SPRING_AI_AZURE_OPENAI_ENDPOINT="REPLACE_WITH_YOUR_ENDPOINT_HERE"
export SPRING_AI_AZURE_OPENAI_MODEL="REPLACE_WITH_YOUR_MODEL_NAME_HERE"
Een nieuwe Spring-toepassing maken
Maak een nieuw Spring-project.
Maak in een Bash-venster een nieuwe map voor uw app en navigeer ernaartoe.
mkdir ai-chat-demo && cd ai-chat-demo
Voer de opdracht spring init
uit vanuit uw werkmap. Met deze opdracht maakt u een standaardmapstructuur voor uw Spring-project, inclusief het belangrijkste Bronbestand van Java-klasse en het pom.xml-bestand dat wordt gebruikt voor het beheren van op Maven gebaseerde projecten.
spring init -a ai-chat-demo -n AIChat --force --build maven -x
De gegenereerde bestanden en mappen lijken op de volgende structuur:
ai-chat-demo/
|-- pom.xml
|-- mvn
|-- mvn.cmd
|-- HELP.md
|-- src/
|-- main/
| |-- resources/
| | |-- application.properties
| |-- java/
| |-- com/
| |-- example/
| |-- aichatdemo/
| |-- AiChatApplication.java
|-- test/
|-- java/
|-- com/
|-- example/
|-- aichatdemo/
|-- AiChatApplicationTests.java
Spring-toepassing bewerken
Bewerk het pom.xml bestand.
Open vanuit de hoofdmap van de projectmap het pom.xml-bestand in de gewenste editor of IDE en overschrijf het bestand met de volgende inhoud:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.2.0</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>ai-chat-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>AIChat</name> <description>Demo project for Spring Boot</description> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.experimental.ai</groupId> <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId> <version>0.7.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <releases> <enabled>false</enabled> </releases> </repository> </repositories> </project>
Open in de map src/main/java/com/example/aichatdemo AiChatApplication.java in uw favoriete editor of IDE en plak de volgende code:
package com.example.aichatdemo; import java.util.ArrayList; import java.util.List; import org.springframework.ai.client.AiClient; import org.springframework.ai.prompt.Prompt; import org.springframework.ai.prompt.messages.ChatMessage; import org.springframework.ai.prompt.messages.Message; import org.springframework.ai.prompt.messages.MessageType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class AiChatApplication implements CommandLineRunner { private static final String ROLE_INFO_KEY = "role"; @Autowired private AiClient aiClient; public static void main(String[] args) { SpringApplication.run(AiChatApplication.class, args); } @Override public void run(String... args) throws Exception { System.out.println(String.format("Sending chat prompts to AI service. One moment please...\r\n")); final List<Message> msgs = new ArrayList<>(); msgs.add(new ChatMessage(MessageType.SYSTEM, "You are a helpful assistant")); msgs.add(new ChatMessage(MessageType.USER, "Does Azure OpenAI support customer managed keys?")); msgs.add(new ChatMessage(MessageType.ASSISTANT, "Yes, customer managed keys are supported by Azure OpenAI?")); msgs.add(new ChatMessage(MessageType.USER, "Do other Azure AI services support this too?")); final var resps = aiClient.generate(new Prompt(msgs)); System.out.println(String.format("Prompt created %d generated response(s).", resps.getGenerations().size())); resps.getGenerations().stream() .forEach(gen -> { final var role = gen.getInfo().getOrDefault(ROLE_INFO_KEY, MessageType.ASSISTANT.getValue()); System.out.println(String.format("Generated respose from \"%s\": %s", role, gen.getText())); }); } }
Belangrijk
Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel over beveiliging van Azure AI-services voor meer informatie over referentiebeveiliging.
Ga terug naar de hoofdmap van het project en voer de app uit met behulp van de volgende opdracht:
./mvnw spring-boot:run
Uitvoer
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.1.5)
2023-11-07T13:31:10.884-06:00 INFO 6248 --- [ main] c.example.aichatdemo.AiChatApplication : No active profile set, falling back to 1 default profile: "default"
2023-11-07T13:31:11.595-06:00 INFO 6248 --- [ main] c.example.aichatdemo.AiChatApplication : Started AiChatApplication in 0.994 seconds (process running for 1.28)
Sending chat prompts to AI service. One moment please...
Prompt created 1 generated response(s).
Generated respose from "assistant": Yes, other Azure AI services also support customer managed keys. Azure AI Services, Azure Machine Learning, and other AI services in Azure provide options for customers to manage and control their encryption keys. This allows customers to have greater control over their data and security.
Resources opschonen
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource verwijderen. Voordat u de resource verwijdert, moet u eerst geïmplementeerde modellen verwijderen.
Volgende stappen
Bekijk de GitHub-opslagplaats met Azure OpenAI-voorbeelden voor meer voorbeelden
Voorbeelden van broncodepakket | (npm) |
Notitie
Dit artikel is bijgewerkt om het nieuwste OpenAI npm-pakket te gebruiken dat nu volledig ondersteuning biedt voor Azure OpenAI. Als u op zoek bent naar codevoorbeelden voor de verouderde Azure OpenAI JavaScript SDK, zijn ze momenteel nog steeds beschikbaar in deze opslagplaats.
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- LTS-versies van Node.js
- Azure CLI die wordt gebruikt voor verificatie zonder wachtwoord in een lokale ontwikkelomgeving, maakt de benodigde context door u aan te melden met de Azure CLI.
- Een Azure OpenAI-serviceresource met een
gpt-35-turbo
ofgpt-4
reeks modellen die zijn geïmplementeerd. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Instellingen
Sleutel en eindpunt ophalen
Als u azure OpenAI wilt aanroepen, hebt u een eindpunt en een sleutel nodig.
Naam van de variabele | Weergegeven als |
---|---|
ENDPOINT |
Het service-eindpunt vindt u in de sectie Sleutels en eindpunten bij het controleren van uw resource vanuit Azure Portal. U kunt het eindpunt ook vinden via de pagina Implementaties in Azure AI Studio. Een voorbeeldeindpunt is: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt KEY1 of KEY2 gebruiken. |
Ga naar uw resource in Azure Portal. De sectie Sleutels en eindpunt vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1
of KEY2
gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.
Omgevingsvariabelen
Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.
Belangrijk
Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Een Node-toepassing maken
Maak in een consolevenster (zoals cmd, PowerShell of Bash) een nieuwe map voor de app, en navigeer naar deze map.
De clientbibliotheek installeren
Installeer de vereiste pakketten voor JavaScript met npm vanuit de context van uw nieuwe map:
npm install openai @azure/identity
Het package.json-bestand van uw app wordt bijgewerkt met de afhankelijkheden.
Een voorbeeldtoepassing maken
Open een opdrachtprompt waar u het nieuwe project wilt en maak een nieuw bestand met de naam ChatCompletion.js. Kopieer de volgende code naar het ChatCompletion.js-bestand.
const { AzureOpenAI } = require("openai");
const {
DefaultAzureCredential,
getBearerTokenProvider
} = require("@azure/identity");
// You will need to set these environment variables or edit the following values
const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "<endpoint>";
const apiVersion = "2024-05-01-preview";
const deployment = "gpt-4o"; //This must match your deployment name.
// keyless authentication
const credential = new DefaultAzureCredential();
const scope = "https://cognitiveservices.azure.com/.default";
const azureADTokenProvider = getBearerTokenProvider(credential, scope);
async function main() {
const client = new AzureOpenAI({ endpoint, apiKey, azureADTokenProvider, deployment });
const result = await client.chat.completions.create({
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Does Azure OpenAI support customer managed keys?" },
{ role: "assistant", content: "Yes, customer managed keys are supported by Azure OpenAI?" },
{ role: "user", content: "Do other Azure AI services support this too?" },
],
model: "",
});
for (const choice of result.choices) {
console.log(choice.message);
}
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
module.exports = { main };
Voer het script uit met de volgende opdracht:
node.exe ChatCompletion.js
Uitvoer
== Chat Completions Sample ==
{
content: 'Yes, several other Azure AI services also support customer managed keys for enhanced security and control over encryption keys.',
role: 'assistant'
}
Notitie
Als u de fout krijgt: Er is een fout opgetreden: OpenAIError: De apiKey
argumenten sluiten azureADTokenProvider
elkaar wederzijds uit. Er kan slechts één tegelijk worden doorgegeven. Mogelijk moet u een vooraf bestaande omgevingsvariabele voor de API-sleutel uit uw systeem verwijderen. Hoewel het codevoorbeeld microsoft Entra-id niet expliciet verwijst naar de omgevingsvariabele van de API-sleutel, wordt deze fout nog steeds gegenereerd als er een aanwezig is op het systeem dat dit voorbeeld uitvoert.
Resources opschonen
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource verwijderen. Voordat u de resource verwijdert, moet u eerst geïmplementeerde modellen verwijderen.
Volgende stappen
Voorbeelden van broncodepakket | (npm) |
Notitie
Dit artikel is bijgewerkt om het nieuwste OpenAI npm-pakket te gebruiken dat nu volledig ondersteuning biedt voor Azure OpenAI. Als u op zoek bent naar codevoorbeelden voor de verouderde Azure OpenAI JavaScript SDK, zijn ze momenteel nog steeds beschikbaar in deze opslagplaats.
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- LTS-versies van Node.js
- TypeScript
- Azure CLI die wordt gebruikt voor verificatie zonder wachtwoord in een lokale ontwikkelomgeving, maakt de benodigde context door u aan te melden met de Azure CLI.
- Een Azure OpenAI-serviceresource met een
gpt-35-turbo
ofgpt-4
reeks modellen die zijn geïmplementeerd. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Instellingen
Sleutel en eindpunt ophalen
Als u azure OpenAI wilt aanroepen, hebt u een eindpunt en een sleutel nodig.
Naam van de variabele | Weergegeven als |
---|---|
ENDPOINT |
Het service-eindpunt vindt u in de sectie Sleutels en eindpunten bij het controleren van uw resource vanuit Azure Portal. U kunt het eindpunt ook vinden via de pagina Implementaties in Azure AI Studio. Een voorbeeldeindpunt is: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt KEY1 of KEY2 gebruiken. |
Ga naar uw resource in Azure Portal. De sectie Sleutels en eindpunt vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1
of KEY2
gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.
Omgevingsvariabelen
Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.
Belangrijk
Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Een Node-toepassing maken
Maak in een consolevenster (zoals cmd, PowerShell of Bash) een nieuwe map voor de app, en navigeer naar deze map.
De clientbibliotheek installeren
Installeer de vereiste pakketten voor JavaScript met npm vanuit de context van uw nieuwe map:
npm install openai @azure/identity
Het package.json-bestand van uw app wordt bijgewerkt met de afhankelijkheden.
Een voorbeeldtoepassing maken
Open een opdrachtprompt waar u het nieuwe project wilt en maak een nieuw bestand met de naam ChatCompletion.ts. Kopieer de volgende code naar het ChatCompletion.ts-bestand.
import { AzureOpenAI } from "openai";
import {
DefaultAzureCredential,
getBearerTokenProvider
} from "@azure/identity";
import type {
ChatCompletion,
ChatCompletionCreateParamsNonStreaming,
} from "openai/resources/index";
// You will need to set these environment variables or edit the following values
const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "<endpoint>";
// Required Azure OpenAI deployment name and API version
const apiVersion = "2024-08-01-preview";
const deploymentName = "gpt-4o-mini"; //This must match your deployment name.
// keyless authentication
const credential = new DefaultAzureCredential();
const scope = "https://cognitiveservices.azure.com/.default";
const azureADTokenProvider = getBearerTokenProvider(credential, scope);
function getClient(): AzureOpenAI {
return new AzureOpenAI({
endpoint,
azureADTokenProvider,
apiVersion,
deployment: deploymentName,
});
}
function createMessages(): ChatCompletionCreateParamsNonStreaming {
return {
messages: [
{ role: "system", content: "You are a helpful assistant." },
{
role: "user",
content: "Does Azure OpenAI support customer managed keys?",
},
{
role: "assistant",
content: "Yes, customer managed keys are supported by Azure OpenAI?",
},
{ role: "user", content: "Do other Azure AI services support this too?" },
],
model: "",
};
}
async function printChoices(completion: ChatCompletion): Promise<void> {
for (const choice of completion.choices) {
console.log(choice.message);
}
}
export async function main() {
const client = getClient();
const messages = createMessages();
const result = await client.chat.completions.create(messages);
await printChoices(result);
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
Bouw het script met de volgende opdracht:
tsc
Voer het script uit met de volgende opdracht:
node.exe ChatCompletion.js
Uitvoer
== Chat Completions Sample ==
{
content: 'Yes, several other Azure AI services also support customer managed keys for enhanced security and control over encryption keys.',
role: 'assistant'
}
Notitie
Als u de fout krijgt: Er is een fout opgetreden: OpenAIError: De apiKey
argumenten sluiten azureADTokenProvider
elkaar wederzijds uit. Er kan slechts één tegelijk worden doorgegeven. Mogelijk moet u een vooraf bestaande omgevingsvariabele voor de API-sleutel uit uw systeem verwijderen. Hoewel het codevoorbeeld microsoft Entra-id niet expliciet verwijst naar de omgevingsvariabele van de API-sleutel, wordt deze fout nog steeds gegenereerd als er een aanwezig is op het systeem dat dit voorbeeld uitvoert.
Resources opschonen
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource verwijderen. Voordat u de resource verwijdert, moet u eerst geïmplementeerde modellen verwijderen.
Volgende stappen
Bibliotheekbroncodepakket (PyPi) | Ophalen augmented generation (RAG) enterprise chatsjabloon | |
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- Python 3.8 of nieuwere versie.
- De volgende Python-bibliotheken: besturingssysteem.
- Een Azure OpenAI Service-resource met de
gpt-35-turbo
of degpt-4
geïmplementeerde modellen. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Instellingen
Installeer de OpenAI Python-clientbibliotheek met:
pip install openai
Notitie
Deze bibliotheek wordt onderhouden door OpenAI. Raadpleeg de releasegeschiedenis om de meest recente updates voor de bibliotheek bij te houden.
Sleutel en eindpunt ophalen
Als u azure OpenAI wilt aanroepen, hebt u een eindpunt en een sleutel nodig.
Naam van de variabele | Weergegeven als |
---|---|
ENDPOINT |
Het service-eindpunt vindt u in de sectie Sleutels en eindpunten bij het controleren van uw resource vanuit Azure Portal. U kunt het eindpunt ook vinden via de pagina Implementaties in Azure AI Studio. Een voorbeeldeindpunt is: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt KEY1 of KEY2 gebruiken. |
Ga naar uw resource in Azure Portal. De sectie Sleutels en eindpunt vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1
of KEY2
gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.
Omgevingsvariabelen
Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.
Belangrijk
Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Een nieuwe Python-toepassing maken
Maak een nieuw Python-bestand met de naam quickstart.py. Open deze vervolgens in uw favoriete editor of IDE.
Vervang de inhoud van quickstart.py door de volgende code.
U moet de model
variabele instellen op de implementatienaam die u hebt gekozen bij het implementeren van de GPT-3.5-Turbo- of GPT-4-modellen. Als u de modelnaam invoert, treedt er een fout op, tenzij u een implementatienaam hebt gekozen die identiek is aan de naam van het onderliggende model.
import os
from openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-02-01"
)
response = client.chat.completions.create(
model="gpt-35-turbo", # model = "deployment_name".
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
{"role": "user", "content": "Do other Azure AI services support this too?"}
]
)
print(response.choices[0].message.content)
Belangrijk
Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel over beveiliging van Azure AI-services voor meer informatie over referentiebeveiliging.
Voer de toepassing uit met de
python
opdracht in uw quickstart-bestand:python quickstart.py
Uitvoer
{
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "Yes, most of the Azure AI services support customer managed keys. However, not all services support it. You can check the documentation of each service to confirm if customer managed keys are supported.",
"role": "assistant"
}
}
],
"created": 1679001781,
"id": "chatcmpl-6upLpNYYOx2AhoOYxl9UgJvF4aPpR",
"model": "gpt-3.5-turbo-0301",
"object": "chat.completion",
"usage": {
"completion_tokens": 39,
"prompt_tokens": 58,
"total_tokens": 97
}
}
Yes, most of the Azure AI services support customer managed keys. However, not all services support it. You can check the documentation of each service to confirm if customer managed keys are supported.
Informatie over de berichtstructuur
De GPT-35-Turbo- en GPT-4-modellen zijn geoptimaliseerd voor gebruik met invoer die is opgemaakt als een gesprek. De messages
variabele geeft een matrix van woordenlijsten door met verschillende rollen in het gesprek dat is uitgelijnd door systeem, gebruiker en assistent. Het systeembericht kan worden gebruikt om het model te primen door context of instructies op te geven over hoe het model moet reageren.
De HANDLEIDING GPT-35-Turbo & GPT-4 biedt een uitgebreide inleiding tot de opties voor het communiceren met deze nieuwe modellen.
Resources opschonen
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource verwijderen. Voordat u de resource verwijdert, moet u eerst geïmplementeerde modellen verwijderen.
Volgende stappen
- Meer informatie over het werken met GPT-35-Turbo en de GPT-4-modellen met onze handleiding.
- Bekijk de GitHub-opslagplaats met Azure OpenAI-voorbeelden voor meer voorbeelden
Vereisten
- Een Azure-abonnement: maak er gratis een.
- Een Azure OpenAI Service-resource met de
gpt-35-turbo
of degpt-4
geïmplementeerde modellen. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Instellingen
Sleutel en eindpunt ophalen
Als u azure OpenAI wilt aanroepen, hebt u een eindpunt en een sleutel nodig.
Naam van de variabele | Weergegeven als |
---|---|
ENDPOINT |
Het service-eindpunt vindt u in de sectie Sleutels en eindpunten bij het controleren van uw resource vanuit Azure Portal. U kunt het eindpunt ook vinden via de pagina Implementaties in Azure AI Studio. Een voorbeeldeindpunt is: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt KEY1 of KEY2 gebruiken. |
Ga naar uw resource in Azure Portal. De sectie Sleutels en eindpunt vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1
of KEY2
gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.
Omgevingsvariabelen
Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.
Belangrijk
Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
REST-API
Voer in een bash-shell de volgende opdracht uit. U moet vervangen door gpt-35-turbo
de implementatienaam die u hebt gekozen bij het implementeren van de GPT-35-Turbo- of GPT-4-modellen. Als u de modelnaam invoert, treedt er een fout op, tenzij u een implementatienaam hebt gekozen die identiek is aan de naam van het onderliggende model.
curl $AZURE_OPENAI_ENDPOINT/openai/deployments/gpt-35-turbo/chat/completions?api-version=2024-02-01 \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d '{"messages":[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},{"role": "user", "content": "Do other Azure AI services support this too?"}]}'
De indeling van de eerste regel van de opdracht met een voorbeeldeindpunt wordt als volgt curl https://docs-test-001.openai.azure.com/openai/deployments/{YOUR-DEPLOYMENT_NAME_HERE}/chat/completions?api-version=2024-02-01 \
weergegeven als er een fout wordt gecontroleerd om ervoor te zorgen dat u de /
scheiding tussen uw eindpunt en /openai/deployments
.
Als u deze opdracht wilt uitvoeren in een normale Windows-opdrachtprompt, moet u de tekst wijzigen om de \
regeleinden te verwijderen.
Belangrijk
Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel over beveiliging van Azure AI-services voor meer informatie over referentiebeveiliging.
Uitvoer
{"id":"chatcmpl-6v7mkQj980V1yBec6ETrKPRqFjNw9",
"object":"chat.completion","created":1679072642,
"model":"gpt-35-turbo",
"usage":{"prompt_tokens":58,
"completion_tokens":68,
"total_tokens":126},
"choices":[{"message":{"role":"assistant",
"content":"Yes, other Azure AI services also support customer managed keys. Azure AI services offer multiple options for customers to manage keys, such as using Azure Key Vault, customer-managed keys in Azure Key Vault or customer-managed keys through Azure Storage service. This helps customers ensure that their data is secure and access to their services is controlled."},"finish_reason":"stop","index":0}]}
Uitvoeropmaak die is aangepast voor gemakkelijker lezen, is de werkelijke uitvoer één blok tekst zonder regeleinden.
Informatie over de berichtstructuur
De GPT-35-Turbo- en GPT-4-modellen zijn geoptimaliseerd voor gebruik met invoer die is opgemaakt als een gesprek. De messages
variabele geeft een matrix van woordenlijsten door met verschillende rollen in het gesprek dat is uitgelijnd door systeem, gebruiker en assistent. Het systeembericht kan worden gebruikt om het model te primen door context of instructies op te geven over hoe het model moet reageren.
De HANDLEIDING GPT-35-Turbo & GPT-4 biedt een uitgebreide inleiding tot de opties voor het communiceren met deze nieuwe modellen.
Resources opschonen
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource verwijderen. Voordat u de resource verwijdert, moet u eerst geïmplementeerde modellen verwijderen.
Volgende stappen
- Meer informatie over het werken met GPT-35-Turbo en de GPT-4-modellen met onze handleiding.
- Bekijk de GitHub-opslagplaats met Azure OpenAI-voorbeelden voor meer voorbeelden
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- U kunt de nieuwste versie, PowerShell 7 of Windows PowerShell 5.1 gebruiken.
- Een Azure OpenAI-serviceresource met een model dat is geïmplementeerd. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
- Een Azure OpenAI Service-resource met de
gpt-35-turbo
of degpt-4
geïmplementeerde modellen. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Sleutel en eindpunt ophalen
Als u azure OpenAI wilt aanroepen, hebt u een eindpunt en een sleutel nodig.
Naam van de variabele | Weergegeven als |
---|---|
ENDPOINT |
Het service-eindpunt vindt u in de sectie Sleutels en eindpunten bij het controleren van uw resource vanuit Azure Portal. U kunt het eindpunt ook vinden via de pagina Implementaties in Azure AI Studio. Een voorbeeldeindpunt is: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt KEY1 of KEY2 gebruiken. |
Ga naar uw resource in Azure Portal. Het eindpunt en de sleutels vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1
of KEY2
gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.
Omgevingsvariabelen
Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.
Belangrijk
Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
$Env:AZURE_OPENAI_API_KEY = 'YOUR_KEY_VALUE'
$Env:AZURE_OPENAI_ENDPOINT = 'YOUR_ENDPOINT'
Een nieuw PowerShell-script maken
Maak een nieuw PowerShell-bestand met de naam quickstart.ps1. Open deze vervolgens in uw favoriete editor of IDE.
Vervang de inhoud van quickstart.ps1 door de volgende code. U moet de
engine
variabele instellen op de implementatienaam die u hebt gekozen bij het implementeren van de GPT-35-Turbo- of GPT-4-modellen. Als u de modelnaam invoert, treedt er een fout op, tenzij u een implementatienaam hebt gekozen die identiek is aan de naam van het onderliggende model.# Azure OpenAI metadata variables $openai = @{ api_key = $Env:AZURE_OPENAI_API_KEY api_base = $Env:AZURE_OPENAI_ENDPOINT # your endpoint should look like the following https://YOUR_RESOURCE_NAME.openai.azure.com/ api_version = '2024-02-01' # this may change in the future name = 'YOUR-DEPLOYMENT-NAME-HERE' #This will correspond to the custom name you chose for your deployment when you deployed a model. } # Completion text $messages = @() $messages += @{ role = 'system' content = 'You are a helpful assistant.' } $messages += @{ role = 'user' content = 'Does Azure OpenAI support customer managed keys?' } $messages += @{ role = 'assistant' content = 'Yes, customer managed keys are supported by Azure OpenAI.' } $messages += @{ role = 'user' content = 'Do other Azure AI services support this too?' } # Header for authentication $headers = [ordered]@{ 'api-key' = $openai.api_key } # Adjust these values to fine-tune completions $body = [ordered]@{ messages = $messages } | ConvertTo-Json # Send a request to generate an answer $url = "$($openai.api_base)/openai/deployments/$($openai.name)/chat/completions?api-version=$($openai.api_version)" $response = Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Post -ContentType 'application/json' return $response
Belangrijk
Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Het PowerShell-geheimbeheer met Azure Key Vault. Zie het artikel over beveiliging van Azure AI-services voor meer informatie over referentiebeveiliging.
Voer het script uit met behulp van PowerShell:
./quickstart.ps1
Uitvoer
# the output of the script will be a .NET object containing the response
id : chatcmpl-7sdJJRC6fDNGnfHMdfHXvPkYFbaVc
object : chat.completion
created : 1693255177
model : gpt-35-turbo
choices : {@{index=0; finish_reason=stop; message=}}
usage : @{completion_tokens=67; prompt_tokens=55; total_tokens=122}
# convert the output to JSON
./quickstart.ps1 | ConvertTo-Json -Depth 3
# or to view the text returned, select the specific object property
$reponse = ./quickstart.ps1
$response.choices.message.content
Informatie over de berichtstructuur
De GPT-35-Turbo- en GPT-4-modellen zijn geoptimaliseerd voor gebruik met invoer die is opgemaakt als een gesprek. De messages
variabele geeft een matrix van woordenlijsten door met verschillende rollen in het gesprek dat is uitgelijnd door systeem, gebruiker en assistent. Het systeembericht kan worden gebruikt om het model te primen door context of instructies op te geven over hoe het model moet reageren.
De HANDLEIDING GPT-35-Turbo & GPT-4 biedt een uitgebreide inleiding tot de opties voor het communiceren met deze nieuwe modellen.
Resources opschonen
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource verwijderen. Voordat u de resource verwijdert, moet u eerst geïmplementeerde modellen verwijderen.
Volgende stappen
- Meer informatie over het werken met GPT-35-Turbo en de GPT-4-modellen met onze handleiding.
- Bekijk de GitHub-opslagplaats met Azure OpenAI-voorbeelden voor meer voorbeelden