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.

  • Toegang verleend tot Azure OpenAI in het gewenste Azure abonnement.

    Op dit moment wordt alleen toegang tot deze service verleend door een aanvraag te doen. U kunt toegang tot Azure OpenAI aanvragen door het formulier in te vullen op https://aka.ms/oai/access. Open een probleem op deze opslagplaats om contact met ons op te stellen als u een probleem hebt.

  • Een Azure OpenAI Service-resource met de gpt-35-turbo of de gpt-4 geïmplementeerde modellen. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.

Tip

Probeer de nieuwe geïntegreerde Azure AI Studio (preview) uit, die mogelijkheden uit meerdere Azure AI-services combineert.

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 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.

Schermopname van de landingspagina van Azure OpenAI Studio met Chat playground gemarkeerd.

Speeltuin

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.

Schermopname van de pagina Chatspeeltuin.

Configuratie van assistent

U kunt de vervolgkeuzelijst Configuratieassistent 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 moet en moet niet beantwoorden en hoe u antwoorden kunt opmaken.

Door enkele voorbeelden toe te voegen, kunt u gespreksvoorbeelden opgeven die door het model worden gebruikt voor in-context learning.

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 Verzenden selecteert, wordt de ingevoerde tekst naar de voltooiings-API verzonden en worden de resultaten teruggezet naar het tekstvak.

Selecteer de knop Chat wissen om de huidige gespreksgeschiedenis te verwijderen.

Instellingen

Naam Beschrijving
Installaties Uw implementatienaam die is gekoppeld aan een specifiek model.
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.
Maximale lengte (tokens) Stel een limiet in voor het aantal tokens per modelantwoord. De API ondersteunt maximaal 4096 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.
Belangrijkste waarschijnlijkheden 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.
Gesprekken met meerdere paden Selecteer het aantal eerdere berichten dat u wilt opnemen in elke nieuwe API-aanvraag. Dit helpt de modelcontext te geven voor nieuwe gebruikersquery's. Als u dit getal instelt op 10, worden vijf gebruikersquery's en vijf systeemreacties weergegeven.
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.

Panelen weergeven

Standaard zijn er drie panelen: assistent instellen, chatsessie en instellingen. Met deelvensters kunt u de panelen toevoegen, verwijderen en opnieuw rangschikken. Als u ooit een paneel sluit en het terug moet krijgen, gebruikt u Deelvensters weergeven om het verloren paneel te herstellen.

Een chatsessie starten

  1. Selecteer in de vervolgkeuzelijst voor het instellen van de assistent de xbox-klantondersteuningsagent

  2. U wordt gevraagd of u het systeembericht wilt bijwerken en selecteer Doorgaan.

  3. Voer in het chatsessievenster de volgende vraag in: 'Ik ben geïnteresseerd in het kopen van een nieuwe Xbox' en selecteer Verzenden.

  4. U ontvangt een antwoord dat vergelijkbaar is met:

    Schermopname van een eerste vraag en antwoord in speeltuin.

  5. Voer een vervolgvraag in, zoals: 'Welke modellen ondersteunen 4K?'

    Schermopname van vervolgvraag en antwoord in speeltuin.

  6. Nu u een basisgesprek hebt, selecteert u Code weergeven onder Configuratie van assistent en hebt u een herhaling van de code achter het hele gesprek tot nu toe:

#Note: The openai-python library support for Azure OpenAI is in preview.
import os
import openai
openai.api_type = "azure"
openai.api_base = "https://docs-test-001.openai.azure.com/"
openai.api_version = "2024-02-01"
openai.api_key = os.getenv("OPENAI_API_KEY")

response = openai.ChatCompletion.create(
  engine="gpt-35-turbo", # replace this value with the deployment name you chose when you deployed the associated model.
  messages = [{"role":"system","content":"You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."},{"role":"user","content":"How much is a PS5?"},{"role":"assistant","content":"I apologize, but I do not have information about the prices of other gaming devices such as the PS5. My primary focus is to assist with issues regarding Xbox devices. Is there a specific issue you are having with your Xbox device that I may be able to help with?"},{"role":"user","content":"I am interested in buying an Xbox?"},{"role":"assistant","content":"Great! There are several Xbox models available in the market, including the Xbox Series X, Xbox Series S, and Xbox One. The Xbox Series X is the latest and most powerful console, while the Xbox Series S is a more affordable option that still offers great performance. The Xbox One is the previous generation console, but it still has a large library of games available to play.\n\nBefore purchasing an Xbox, you may want to consider factors such as your budget, the types of games you want to play, and whether you want to play games in 4K resolution. Once you have decided on a console, you can purchase it from a retailer or directly from the Xbox website. Let me know if you have any other questions or concerns!"},{"role":"user","content":"Which models are 4K?"},{"role":"assistant","content":"Both the Xbox Series X and Xbox One X support 4K resolution gaming. The Xbox Series S, on the other hand, supports up to 1440p resolution gaming, but it can upscale games to 4K. It's worth noting that in order to take advantage of 4K gaming, you'll need a 4K TV or monitor that supports HDR (High Dynamic Range) and HDMI 2.0 or higher."}],
  temperature=0,
  max_tokens=350,
  top_p=0.95,
  frequency_penalty=0,
  presence_penalty=0,
  stop=None)

Inzicht in de promptstructuur

Als u het voorbeeld van Code weergeven bekijkt, ziet u enkele unieke tokens die geen deel uitmaken van een typische GPT-voltooiingsaanroep. GPT-35-Turbo is getraind om speciale tokens te gebruiken om verschillende delen van de prompt af te bakenen. Inhoud wordt geleverd aan het model tussen <|im_start|> en <|im_end|> tokens. De prompt begint met een systeembericht dat kan worden gebruikt om het model te primen door context of instructies voor het model op te geven. Daarna bevat de prompt een reeks berichten tussen de gebruiker en de assistent.

Het antwoord van de assistent op de prompt wordt vervolgens onder het <|im_start|>assistant token geretourneerd en eindigt met <|im_end|> het aantekenen dat de assistent het antwoord heeft voltooid. U kunt ook de wisselknop Onbewerkte syntaxis weergeven gebruiken om deze tokens weer te geven in het chatsessievenster.

De HANDLEIDING GPT-35-Turbo & GPT-4 biedt een uitgebreide inleiding tot de nieuwe promptstructuur en het effectief gebruiken van het gpt-35-turbo model.

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.

Een schermopname van de knop voor modelimplementatie in Azure OpenAI Studio.

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

Sjabloon voor het ophalen van augmented generation (RAG)-sjabloon voor broncodepakket | (NuGet)-voorbeelden| | |

Vereisten

  • Een Azure-abonnement - Een gratis abonnement maken
  • Toegang verleend aan de Azure OpenAI-service in het gewenste Azure-abonnement. Op dit moment wordt alleen toegang tot deze service verleend door een aanvraag te doen. U kunt toegang aanvragen tot De Azure OpenAI-service door het formulier in te vullen op https://aka.ms/oai/access.
  • De .NET 7 SDK
  • Een Azure OpenAI Service-resource met de gpt-35-turbo of de gpt-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 Waarde
ENDPOINT Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt ook de waarde vinden in de codeweergave van Azure OpenAI Studio>Playground>. 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.

Schermopname van de overzichtsgebruikersinterface voor een Azure OpenAI-resource in Azure Portal met het eindpunt en de locatie van toegangssleutels die rood zijn omcirkeld.

Omgevingsvariabelen

Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.

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");

OpenAIClient client = new(new Uri(endpoint), new AzureKeyCredential(key));

var chatCompletionsOptions = new ChatCompletionsOptions()
{
    DeploymentName = "gpt-35-turbo", //This must match the custom deployment name you chose for your model
    Messages =
    {
        new ChatRequestSystemMessage("You are a helpful assistant."),
        new ChatRequestUserMessage("Does Azure OpenAI support customer managed keys?"),
        new ChatRequestAssistantMessage("Yes, customer managed keys are supported by Azure OpenAI."),
        new ChatRequestUserMessage("Do other Azure AI services support this too?"),
    },
    MaxTokens = 100
};

Response<ChatCompletions> response = client.GetChatCompletions(chatCompletionsOptions);

Console.WriteLine(response.Value.Choices[0].Message.Content);

Console.WriteLine();

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

Yes, many of the Azure AI services support customer managed keys. Some examples include Text Analytics, Speech Services, and Translator. However, it's important to note that not all services support customer managed keys, so it's best to check the documentation for each individual service to see if it is supported.

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 static System.Environment;

string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");

OpenAIClient client = new(new Uri(endpoint), new AzureKeyCredential(key));

var chatCompletionsOptions = new ChatCompletionsOptions()
{
    DeploymentName= "gpt-35-turbo", //This must match the custom deployment name you chose for your model
    Messages =
    {
        new ChatRequestSystemMessage("You are a helpful assistant."),
        new ChatRequestUserMessage("Does Azure OpenAI support customer managed keys?"),
        new ChatRequestAssistantMessage("Yes, customer managed keys are supported by Azure OpenAI."),
        new ChatRequestUserMessage("Do other Azure AI services support this too?"),
    },
    MaxTokens = 100
};

await foreach (StreamingChatCompletionsUpdate chatUpdate in client.GetChatCompletionsStreaming(chatCompletionsOptions))
{
    if (chatUpdate.Role.HasValue)
    {
        Console.Write($"{chatUpdate.Role.Value.ToString().ToUpperInvariant()}: ");
    }
    if (!string.IsNullOrEmpty(chatUpdate.ContentUpdate))
    {
        Console.Write(chatUpdate.ContentUpdate);
    }
}

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
  • Toegang verleend aan de Azure OpenAI-service in het gewenste Azure-abonnement. Op dit moment wordt alleen toegang tot deze service verleend door een aanvraag te doen. U kunt toegang aanvragen tot De Azure OpenAI-service door het formulier in te vullen op https://aka.ms/oai/access.
  • 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 Waarde
ENDPOINT Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt ook de waarde vinden in de codeweergave van Azure OpenAI Studio>Playground>. 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.

Schermopname van de overzichtsgebruikersinterface voor een Azure OpenAI-resource in Azure Portal met het eindpunt en de locatie van toegangssleutels die rood zijn omcirkeld.

Omgevingsvariabelen

Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.

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/to"
)

func main() {
	azureOpenAIKey := os.Getenv("AZURE_OPENAI_API_KEY")
    //modelDeploymentID = deployment name, if model name and deployment name do not match change this value to name chosen when you deployed the model.
	modelDeploymentID := "gpt-35-turbo" 

	// 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, err := azopenai.NewKeyCredential(azureOpenAIKey)

	if err != nil {
		//  TODO: Update the following line with your application specific error handling logic
		log.Fatalf("ERROR: %s", err)
	}

	client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)

	if err != nil {
		//  TODO: Update the following line with your application specific error handling logic
		log.Fatalf("ERROR: %s", err)
	}

	// This is a conversation in progress.
	// NOTE: all messages, regardless of role, count against token usage for this API.
	messages := []azopenai.ChatMessage{
		// You set the tone and rules of the conversation with a prompt as the system role.
		{Role: to.Ptr(azopenai.ChatRoleSystem), Content: to.Ptr("You are a helpful assistant.")},

		// The user asks a question
		{Role: to.Ptr(azopenai.ChatRoleUser), Content: to.Ptr("Does Azure OpenAI support customer managed keys?")},

		// The reply would come back from the Azure OpenAI model. You'd add it to the conversation so we can maintain context.
		{Role: to.Ptr(azopenai.ChatRoleAssistant), Content: to.Ptr("Yes, customer managed keys are supported by Azure OpenAI")},

		// The user answers the question based on the latest reply.
		{Role: to.Ptr(azopenai.ChatRoleUser), Content: to.Ptr("Do other Azure AI services support this too?")},

		// from here you'd keep iterating, sending responses back from the chat completions API
	}

	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,
		Deployment: modelDeploymentID,
	}, nil)

	if err != nil {
		//  TODO: Update the following line with your application specific error handling logic
		log.Fatalf("ERROR: %s", err)
	}

	for _, choice := range resp.Choices {
		fmt.Fprintf(os.Stderr, "Content[%d]: %s\n", *choice.Index, *choice.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.

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[0]: Yes, many Azure AI services also support customer managed keys. These services enable you to bring your own encryption keys for data at rest, which provides you with more control over the security of your data.

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
  • Toegang verleend aan de Azure OpenAI-service in het gewenste Azure-abonnement. Op dit moment wordt alleen toegang tot deze service verleend door een aanvraag te doen. U kunt toegang aanvragen tot De Azure OpenAI-service door het formulier in te vullen op https://aka.ms/oai/access.
  • Het hulpprogramma Gradle of een andere afhankelijkheidsbeheerder.
  • Een Azure OpenAI Service-resource met de gpt-35-turbo of de gpt-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 Waarde
ENDPOINT Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt ook de waarde vinden in de codeweergave van Azure OpenAI Studio>Playground>. 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.

Schermopname van de overzichtsgebruikersinterface voor een Azure OpenAI-resource in Azure Portal met het eindpunt en de locatie van toegangssleutels die rood zijn omcirkeld.

Omgevingsvariabelen

Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.

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.3")
    implementation("org.slf4j:slf4j-simple:1.7.9")
}

Een voorbeeldtoepassing maken

  1. 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.

  2. Open OpenAIQuickstart.java in de gewenste editor of IDE en plak de volgende code.

    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.ChatMessage;
    import com.azure.ai.openai.models.ChatRole;
    import com.azure.ai.openai.models.CompletionsUsage;
    import com.azure.core.credential.AzureKeyCredential;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class GetChatCompletionsSample {
    
        public static void main(String[] args) {
            String azureOpenaiKey = System.getenv("AZURE_OPENAI_API_KEY");;
            String endpoint = System.getenv("AZURE_OPENAI_ENDPOINT");;
            String deploymentOrModelId = "gpt-35-turbo";
    
          OpenAIClient client = new OpenAIClientBuilder()
                .endpoint(endpoint)
                .credential(new AzureKeyCredential(azureOpenaiKey))
                .buildClient();
    
            List<ChatMessage> chatMessages = new ArrayList<>();
            chatMessages.add(new ChatMessage(ChatRole.SYSTEM, "You are a helpful assistant"));
            chatMessages.add(new ChatMessage(ChatRole.USER, "Does Azure OpenAI support customer managed keys?"));
            chatMessages.add(new ChatMessage(ChatRole.ASSISTANT, "Yes, customer managed keys are supported by Azure OpenAI?"));
            chatMessages.add(new ChatMessage(ChatRole.USER, "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()) {
                ChatMessage 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.

  3. 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

Instellingen

Sleutel en eindpunt ophalen

Als u azure OpenAI wilt aanroepen, hebt u een eindpunt en een sleutel nodig.

Naam van de variabele Waarde
ENDPOINT Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt ook de waarde vinden in de codeweergave van Azure OpenAI Studio>Playground>. 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.

Schermopname van de overzichtsgebruikersinterface voor een Azure OpenAI-resource in Azure Portal met het eindpunt en de locatie van toegangssleutels die rood zijn omcirkeld.

Omgevingsvariabelen

Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.

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

  1. 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>
    
  2. 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.

  3. 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

Sjabloon voor broncodepakket (npm) | Samples | Retrieval Augmented Generation (RAG) enterprise chat template | |

Vereisten

  • Een Azure-abonnement - Een gratis abonnement maken
  • Toegang verleend aan de Azure OpenAI-service in het gewenste Azure-abonnement. Op dit moment wordt alleen toegang tot deze service verleend door een aanvraag te doen. U kunt toegang aanvragen tot De Azure OpenAI-service door het formulier in te vullen op https://aka.ms/oai/access.
  • LTS-versies van Node.js
  • Een Azure OpenAI Service-resource met de gpt-35-turbo of de gpt-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 Waarde
ENDPOINT Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt ook de waarde vinden in de codeweergave van Azure OpenAI Studio>Playground>. 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.

Schermopname van de overzichtsgebruikersinterface voor een Azure OpenAI-resource in Azure Portal met het eindpunt en de locatie van toegangssleutels die rood zijn omcirkeld.

Omgevingsvariabelen

Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.

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. Voer vervolgens de npm init opdracht uit om een knooppunttoepassing te maken met een package.json-bestand .

npm init

De clientbibliotheek installeren

Installeer de Azure OpenAI-clientbibliotheek voor JavaScript met npm:

npm install @azure/openai

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 { OpenAIClient, AzureKeyCredential } = require("@azure/openai");
const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] ;
const azureApiKey = process.env["AZURE_OPENAI_API_KEY"] ;

const 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" },
];

async function main() {
  console.log("== Chat Completions Sample ==");

  const client = new OpenAIClient(endpoint, new AzureKeyCredential(azureApiKey));
  const deploymentId = "gpt-35-turbo";
  const result = await client.getChatCompletions(deploymentId, messages);

  for (const choice of result.choices) {
    console.log(choice.message);
  }
}

main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

module.exports = { main };

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 het script uit met de volgende opdracht:

node.exe ChatCompletion.js

Uitvoer

== Chat Completions Sample ==
{
  role: 'assistant',
  content: 'Yes, most Azure AI services support customer managed keys. It is always best to check the specific service documentation to confirm this.'
}

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
  • Toegang verleend aan De Azure OpenAI-service in het gewenste Azure-abonnement. Op dit moment wordt alleen toegang tot deze service verleend door een aanvraag te doen. U kunt toegang aanvragen tot De Azure OpenAI-service door het formulier in te vullen op https://aka.ms/oai/access.
  • Python 3.8 of nieuwere versie.
  • De volgende Python-bibliotheken: besturingssysteem.
  • Een Azure OpenAI Service-resource met de gpt-35-turbo of de gpt-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 en is momenteel in preview. Raadpleeg de releasegeschiedenis of de version.py doorvoergeschiedenis 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 Waarde
ENDPOINT Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt ook de waarde vinden in de codeweergave van Azure OpenAI Studio>Playground>. 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.

Schermopname van de overzichtsgebruikersinterface voor een Azure OpenAI-resource in Azure Portal met het eindpunt en de locatie van toegangssleutels die rood zijn omcirkeld.

Omgevingsvariabelen

Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.

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

  1. Maak een nieuw Python-bestand met de naam quickstart.py. Open deze vervolgens in uw favoriete editor of IDE.

  2. 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.

  1. 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

REST API-specificatie |

Vereisten

  • Een Azure-abonnement: maak er gratis een.
  • Toegang verleend aan De Azure OpenAI-service in het gewenste Azure-abonnement. Op dit moment wordt alleen toegang tot deze service verleend door een aanvraag te doen. U kunt toegang aanvragen tot De Azure OpenAI-service door het formulier in te vullen op https://aka.ms/oai/access.
  • Een Azure OpenAI Service-resource met de gpt-35-turbo of de gpt-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 Waarde
ENDPOINT Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt ook de waarde vinden in de codeweergave van Azure OpenAI Studio>Playground>. 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.

Schermopname van de overzichtsgebruikersinterface voor een Azure OpenAI-resource in Azure Portal met het eindpunt en de locatie van toegangssleutels die rood zijn omcirkeld.

Omgevingsvariabelen

Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.

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

Vereisten

Sleutel en eindpunt ophalen

Als u azure OpenAI wilt aanroepen, hebt u een eindpunt en een sleutel nodig.

Naam van de variabele Waarde
ENDPOINT Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt ook de waarde vinden in de codeweergave van Azure OpenAI Studio>Playground>. 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.

Schermopname van de overzichtsgebruikersinterface voor een Azure OpenAI-resource in De Azure-portal met de locatie voor eindpunt- en toegangssleutels in rood omcirkeld.

Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.

Omgevingsvariabelen

$Env:AZURE_OPENAI_API_KEY = 'YOUR_KEY_VALUE'
$Env:AZURE_OPENAI_ENDPOINT = 'YOUR_ENDPOINT'

Een nieuw PowerShell-script maken

  1. Maak een nieuw PowerShell-bestand met de naam quickstart.ps1. Open deze vervolgens in uw favoriete editor of IDE.

  2. 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.

  3. 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