Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erfahren Sie die ersten Schritte für die Verwendung von Azure OpenAI.
Voraussetzungen
- Azure-Abonnement – kostenloses Abonnement erstellen.
- Eine Azure OpenAI in Azure KI Foundry Modell-Ressource mit entweder
gpt-4o
oder den bereitgestelltengpt-4o-mini
Modellen. Es wird empfohlen, Standard- oder globale Standardmodelle der Bereitstellungstypen für die anfängliche Erkundung zu verwenden. Weitere Informationen zur Modellimplementierung finden Sie im Leitfaden zur Ressourcenbereitstellung.
Gehe zu Azure KI Foundry
Navigieren Sie zum Azure AI Foundry-Portal , und melden Sie sich mit Anmeldeinformationen an, die Zugriff auf Ihre Azure OpenAI-Ressource haben. Wählen Sie während oder nach dem Anmeldeworkflow das passende Verzeichnis, Azure-Abonnement und die Azure OpenAI-Ressource aus.
Wählen Sie in Azure AI Foundry die Option Chat-Playground aus.
Spielplatz
Beginnen Sie mit der Erkundung der Azure OpenAI-Funktionen mit einem codefreien Ansatz über den Azure AI Foundry Chat-Playground. Auf dieser Seite können Sie die Funktionen ganz einfach schrittweise erkunden und mit ihnen experimentieren.
Einrichten
Sie können die Dropdownliste *Promptbeispiele verwenden, um zu Beginn einige vorab geladene Beispiele für Systemmeldungen auszuwählen.
Systemmeldungen geben dem Modell Anweisungen dazu, wie es sich verhalten sollte und auf welchen Kontext es beim Generieren einer Antwort verweisen soll. Sie können die Persönlichkeit des Assistenten beschreiben, ihm sagen, was er beantworten soll und was nicht, und ihm sagen, wie Antworten formatiert werden sollen.
Während Sie den Chat-Playground verwenden, können Sie jederzeit Code anzeigen auswählen, um Python-, cURL- und JSON-Codebeispiele anzuzeigen, die basierend auf Ihrer aktuellen Chat-Sitzung und Ihrer Auswahl der Einstellungen vorab ausgefüllt wurden. Sie können dann diesen Code verwenden und eine Anwendung schreiben, um dieselbe Aufgabe auszuführen, die Sie derzeit mit dem Playground ausführen.
Chat-Sitzung
Durch Auswählen der Schaltfläche Senden oder des Pfeils nach rechts wird der eingegebene Text an die Chatvervollständigungs-API gesendet, und die Ergebnisse werden in das Textfeld zurückgegeben.
Wählen Sie die Schaltfläche Chat löschen aus, um den aktuellen Konversationsverlauf zu löschen.
Wichtige Einstellungen
Name | Beschreibung |
---|---|
Bereitstellungen | Ihr Bereitstellungsname, der einem bestimmten Modell zugeordnet ist. |
Hinzufügen Ihrer Daten | |
Parameter | Benutzerdefinierte Parameter, die die Modellantworten ändern. Zu Beginn wird empfohlen, für die meisten Parameter die Standardwerte zu verwenden. |
Temperatur | Steuert die Zufälligkeit. Eine Senkung der Temperatur bedeutet, dass das Modell mehr wiederholte und deterministische Antworten erzeugt. Eine Erhöhung der Temperatur führt zu unerwarteten oder kreativen Antworten. Versuchen Sie, entweder die Temperatur oder Top P anzupassen, aber nicht beides. |
Maximale Antwortanzahl (Token) | Legen Sie einen Grenzwert für die Anzahl von Token pro Modellantwort fest. Die API der neuesten Modelle unterstützt insgesamt maximal 128.000 Token, die zwischen dem Prompt (einschließlich Systemmeldung, Beispielen, Nachrichtenverlauf und Benutzerabfrage) und der Antwort des Modells aufgeteilt werden. Ein Token für typisch englischen Text besteht aus ungefähr vier Zeichen. |
Oberste p | Ähnlich wie bei der Temperatur steuert dies die Zufälligkeit, aber es wird eine andere Methode verwendet. Eine Senkung von Top P schränkt die Token-Auswahl des Modells auf wahrscheinlichere Token ein. Bei einer Erhöhung von Top P kann das Modell aus Token mit hoher und niedriger Wahrscheinlichkeit auswählen. Versuchen Sie, entweder die Temperatur oder Top P anzupassen, aber nicht beides. |
Stoppsequenzen | Mit der Stoppsequenz beendet das Modell seine Antwort an einem gewünschten Punkt. Die Modellantwort endet vor der angegebenen Sequenz, sodass sie den Text der Stoppsequenz nicht enthält. Bei GPT-35-Turbo wird mit Verwendung von <|im_end|> sichergestellt, dass die Modellantwort keine Nachverfolgungs-Benutzerabfrage generiert. Sie können bis zu vier Stoppsequenzen einschließen. |
Code anzeigen
Nachdem Sie mit dem Modell experimentiert haben, wählen Sie die Schaltfläche </> Code anzeigen aus. Dadurch erhalten Sie eine Wiedergabe des Codes hinter Ihrer gesamten bisherigen Unterhaltung:
Grundlegendes zur Struktur der Eingabeaufforderung
Wenn Sie das Beispiel aus Code anzeigen untersuchen, sehen Sie, dass die Unterhaltung in drei verschiedene Rollen unterteilt ist: system
, user
, assistant
. Jedes Mal, wenn Sie eine Nachricht an das Modell senden, wird der gesamte Verlauf der Unterhaltungen bis zu diesem Punkt erneut gesendet. Wenn Sie die Chatvervollständigungs-API verwenden, hat das Modell keinen echten Speicher der in der Vergangenheit an es gesendeten Inhalte. Sie stellen daher den Unterhaltungsverlauf als Kontext bereit, damit das Modell ordnungsgemäß reagieren kann.
Die Anleitung für Chatvervollständigung bietet eine ausführliche Einführung in die neue Promptstruktur und die effektive Verwendung von Chatvervollständigungsmodellen.
Bereitstellen Ihres Modells
Wenn Sie mit der Benutzeroberfläche zufrieden sind, können Sie eine Web-App direkt über das Portal bereitstellen, indem Sie die Schaltfläche Bereitstellen in auswählen.
Dadurch können Sie entweder eine eigenständige Webanwendung oder einen Copilot in Copilot Studio (Vorschau) bereitstellen, wenn Sie ihre eigenen Daten im Modell verwenden.
Beispiel: Wenn Sie sich für die Bereitstellung einer Webanwendung entscheiden:
Wenn Sie zum ersten Mal eine Web-App bereitstellen, sollten Sie Neue Web-App erstellen auswählen. Geben Sie der App einen Namen, der Teil der App-URL wird. Beispiel: https://<appname>.azurewebsites.net
.
Wählen Sie Ihr Abonnement, Ihre Ressourcengruppe, Ihren Standort und Ihren Preisplan für die veröffentlichte App aus. Um eine bestehende App zu aktualisieren, wählen Sie In einer vorhandenen Web-App veröffentlichen aus, und wählen Sie den Namen Ihrer vorherigen App aus dem Dropdownmenü.
Wenn Sie sich für die Bereitstellung einer Webanwendung entscheiden, lesen Sie diese wichtigen Überlegungen zur Verwendung.
Bereinigen von Ressourcen
Nachdem Sie den Chat-Playground getestet haben, können Sie die Ressource oder Ressourcengruppe löschen, wenn Sie eine Azure OpenAI-Ressource bereinigen und entfernen möchten. Wenn Sie die Ressourcengruppe löschen, werden auch alle anderen Ressourcen gelöscht, die ihr zugeordnet sind.
Nächste Schritte
- Erfahren Sie mehr über die Arbeit mit dem neuen
gpt-35-turbo
-Modell in der Schrittanleitung für GPT-35-Turbo und GPT-4. - Weitere Beispiele finden Sie im GitHub-Repository für Azure OpenAI-Beispiele
Quellcode- | Paket (NuGet) | Beispiele| Retrieval Augmented Generation (RAG) – Vorlage für Unternehmenschat |
Voraussetzungen
- Azure-Abonnement: Kostenloses Azure-Konto
- Das .NET 7 SDK
- Eine Azure OpenAI in Azure KI Foundry Modell-Ressource mit dem bereitgestellten
gpt-4o
Modell. Weitere Informationen zur Modellimplementierung finden Sie im Leitfaden zur Ressourcenbereitstellung.
Voraussetzungen für Microsoft Entra ID
Für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID müssen Sie:
- Die Azure CLI installieren, die für die schlüssellose Authentifizierung mit Microsoft Entra ID verwendet wird
- Weisen Sie Ihrem Benutzerkonto die
Cognitive Services User
-Rolle zu. Sie können Rollen im Azure-Portal unter Zugriffssteuerung (IAM)>Rollenzuweisung hinzufügen zuweisen.
Einrichten
Erstellen Sie einen neuen Ordner
chat-quickstart
, und wechseln Sie mit dem folgenden Befehl zum Schnellstartordner:mkdir chat-quickstart && cd chat-quickstart
Erstellen Sie eine neue Konsolenanwendung mit dem folgenden Befehl:
dotnet new console
Installieren Sie die OpenAI .NET-Clientbibliothek mit dem Befehl dotnet add package:
dotnet add package Azure.AI.OpenAI --prerelease
Installieren Sie für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID das Paket Azure.Identity mit:
dotnet add package Azure.Identity
Melden Sie sich für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID mit dem folgenden Befehl bei Azure an:
az login
Abrufen von Ressourceninformationen
Sie müssen die folgenden Informationen abrufen, um Ihre Anwendung bei Ihrer Azure OpenAI-Ressource zu authentifizieren:
Variablenname | Wert |
---|---|
AZURE_OPENAI_ENDPOINT |
Diesen Wert finden Sie im Abschnitt Schlüssel und Endpunkt, wenn Sie die Ressource über das Azure-Portal untersuchen. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Dieser Wert entspricht dem benutzerdefinierten Namen, den Sie während der Bereitstellung eines Modells für die Bereitstellung ausgewählt haben. Diesen Wert finden Sie unter Ressourcenverwaltung>Modellbereitstellungen im Azure-Portal. |
OPENAI_API_VERSION |
Erfahren Sie mehr über API-Versionen. Sie können die Version im Code ändern oder eine Umgebungsvariable verwenden. |
Erfahren Sie mehr über schlüssellose Authentifizierung und das Festlegen von Umgebungsvariablen.
Ausführen der Schnellstartanleitung
Der Beispielcode in diesem Schnellstart verwendet Microsoft Entra ID für die empfohlene schlüssellose Authentifizierung. Wenn Sie einen API-Schlüssel verwenden möchten, können Sie das DefaultAzureCredential
Objekt durch ein AzureKeyCredential
Objekt ersetzen.
AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
Sie können Streaming oder Nicht-Streaming verwenden, um den Chatabschluss zu erhalten. Die folgenden Codebeispiele zeigen, wie beide Methoden verwendet werden. Das erste Beispiel zeigt, wie die Nicht-Streaming-Methode verwendet wird, und das zweite Beispiel zeigt, wie die Streamingmethode verwendet wird.
Ohne Antwortstreaming
Führen Sie die folgenden Schritte aus, um die Schnellstartanleitung auszuführen:
Ersetzen Sie den Inhalt von
Program.cs
durch den folgenden Code, und aktualisieren Sie die Platzhalterwerte durch Ihren eigenen.using Azure; using Azure.Identity; using OpenAI.Assistants; using Azure.AI.OpenAI; using OpenAI.Chat; using static System.Environment; string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? "https://<your-resource-name>.openai.azure.com/"; string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY") ?? "<your-key>"; // Use the recommended keyless credential instead of the AzureKeyCredential credential. AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); //AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(key)); // This must match the custom deployment name you chose for your model ChatClient chatClient = openAIClient.GetChatClient("gpt-4o"); 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 services support this too?") ]); Console.WriteLine($"{completion.Role}: {completion.Content[0].Text}");
Führen Sie die Anwendung mit dem folgenden Befehl aus:
dotnet run
Ausgabe
Assistant: Arrr, ye be askin’ a fine question, matey! Aye, several Azure services support customer-managed keys (CMK)! This lets ye take the wheel and secure yer data with encryption keys stored in Azure Key Vault. Services such as Azure Machine Learning, Azure Cognitive Search, and others also offer CMK fer data protection. Always check the specific service's documentation fer the latest updates, as features tend to shift swifter than the tides, aye!
Dadurch wird gewartet, bis das Modell seine gesamte Antwort generiert hat, bevor die Ergebnisse gedruckt werden. Wenn Sie die Antwort asynchron streamen und die Ergebnisse drucken möchten, können Sie alternativ den Inhalt von Program.cs durch den Code im nächsten Beispiel ersetzen.
Asynchron mit Streaming
Führen Sie die folgenden Schritte aus, um die Schnellstartanleitung auszuführen:
Ersetzen Sie den Inhalt von
Program.cs
durch den folgenden Code, und aktualisieren Sie die Platzhalterwerte durch Ihren eigenen.using Azure; using Azure.Identity; using OpenAI.Assistants; using Azure.AI.OpenAI; using OpenAI.Chat; using static System.Environment; string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? "https://<your-resource-name>.openai.azure.com/"; string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY") ?? "<your-key>"; // Use the recommended keyless credential instead of the AzureKeyCredential credential. AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); //AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(key)); // This must match the custom deployment name you chose for your model ChatClient chatClient = openAIClient.GetChatClient("gpt-4o"); 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 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); } }
Führen Sie die Anwendung mit dem folgenden Befehl aus:
dotnet run
Ausgabe
Assistant: Arrr, ye be askin’ a fine question, matey! Aye, many Azure services support customer-managed keys (CMK)! This lets ye take the wheel and secure yer data with encryption keys stored in Azure Key Vault. Services such as Azure Machine Learning, Azure Cognitive Search, and others also offer CMK fer data protection. Always check the specific service's documentation fer the latest updates, as features tend to shift swifter than the tides, aye!
Bereinigen von Ressourcen
Wenn Sie eine Azure OpenAI-Ressource bereinigen und entfernen möchten, können Sie die Ressource löschen. Vor dem Löschen der Ressource müssen Sie zunächst alle bereitgestellten Modelle löschen.
Nächste Schritte
- Starten Sie mit dem Chat mithilfe Ihrer eigenen Datenprobe für .NET
- Weitere Beispiele finden Sie im GitHub-Repository für Azure OpenAI-Beispiele
Quellcode | Paket (Go)| Beispiele
Voraussetzungen
- Azure-Abonnement: Kostenloses Azure-Konto
- Lokale Installation von Go 1.21.0 oder höher.
- Eine Azure OpenAI in Azure KI Foundry Modell-Ressource mit dem bereitgestellten
gpt-4
Modell. Weitere Informationen zur Modellimplementierung finden Sie im Leitfaden zur Ressourcenbereitstellung.
Voraussetzungen für Microsoft Entra ID
Für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID müssen Sie:
- Die Azure CLI installieren, die für die schlüssellose Authentifizierung mit Microsoft Entra ID verwendet wird
- Weisen Sie Ihrem Benutzerkonto die
Cognitive Services User
-Rolle zu. Sie können Rollen im Azure-Portal unter Zugriffssteuerung (IAM)>Rollenzuweisung hinzufügen zuweisen.
Einrichten
Erstellen Sie einen neuen Ordner
chat-quickstart
, und wechseln Sie mit dem folgenden Befehl zum Schnellstartordner:mkdir chat-quickstart && cd chat-quickstart
Melden Sie sich für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID mit dem folgenden Befehl bei Azure an:
az login
Abrufen von Ressourceninformationen
Sie müssen die folgenden Informationen abrufen, um Ihre Anwendung bei Ihrer Azure OpenAI-Ressource zu authentifizieren:
Variablenname | Wert |
---|---|
AZURE_OPENAI_ENDPOINT |
Diesen Wert finden Sie im Abschnitt Schlüssel und Endpunkt, wenn Sie die Ressource über das Azure-Portal untersuchen. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Dieser Wert entspricht dem benutzerdefinierten Namen, den Sie während der Bereitstellung eines Modells für die Bereitstellung ausgewählt haben. Diesen Wert finden Sie unter Ressourcenverwaltung>Modellbereitstellungen im Azure-Portal. |
OPENAI_API_VERSION |
Erfahren Sie mehr über API-Versionen. Sie können die Version im Code ändern oder eine Umgebungsvariable verwenden. |
Erfahren Sie mehr über schlüssellose Authentifizierung und das Festlegen von Umgebungsvariablen.
Ausführen der Schnellstartanleitung
Der Beispielcode in diesem Schnellstart verwendet Microsoft Entra ID für die empfohlene schlüssellose Authentifizierung. Wenn Sie einen API-Schlüssel verwenden möchten, können Sie die Implementierung von NewDefaultAzureCredential
durch NewKeyCredential
ersetzen.
azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
credential, err := azidentity.NewDefaultAzureCredential(nil)
client, err := azopenai.NewClient(azureOpenAIEndpoint, credential, nil)
So führen Sie das Beispiel aus:
Erstellen Sie eine neue Datei mit dem Namen chat_completions_keyless.go. Kopieren Sie den folgenden Code in die Datei chat_completions_keyless.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/azidentity" ) func main() { azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT") modelDeploymentID := "gpt-4o" maxTokens:= int32(400) credential, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { log.Printf("ERROR: %s", err) return } client, err := azopenai.NewClient( azureOpenAIEndpoint, credential, nil) if err != nil { log.Printf("ERROR: %s", err) return } // This is a conversation in progress. // All messages, regardless of role, count against token usage for this API. messages := []azopenai.ChatRequestMessageClassification{ // System message sets the tone and rules of the conversation. &azopenai.ChatRequestSystemMessage{ Content: azopenai.NewChatRequestSystemMessageContent( "You are a helpful assistant."), }, // The user asks a question &azopenai.ChatRequestUserMessage{ Content: azopenai.NewChatRequestUserMessageContent( "Can I use honey as a substitute for sugar?"), }, // The reply would come back from the model. You // add it to the conversation so we can maintain context. &azopenai.ChatRequestAssistantMessage{ Content: azopenai.NewChatRequestAssistantMessageContent( "Yes, you can use use honey as a substitute for sugar."), }, // The user answers the question based on the latest reply. &azopenai.ChatRequestUserMessage{ Content: azopenai.NewChatRequestUserMessageContent( "What other ingredients can I use as a substitute for sugar?"), }, // From here you can keep iterating, sending responses back from the chat model. } gotReply := false resp, err := client.GetChatCompletions(context.TODO(), azopenai.ChatCompletionsOptions{ // This is a conversation in progress. // All messages count against token usage for this API. Messages: messages, DeploymentName: &modelDeploymentID, MaxTokens: &maxTokens, }, nil) if err != nil { // Implement 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 { // The conversation for this choice 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") } }
Führen Sie den folgenden Befehl aus, um ein neues Go-Modul zu erstellen:
go mod init chat_completions_keyless.go
Führen Sie
go mod tidy
aus, um die erforderlichen Abhängigkeiten zu installieren.go mod tidy
Führen Sie den folgenden Befehl aus, um das Beispiel auszuführen:
go run chat_completions_keyless.go
Ausgabe
Die Ausgabe des Beispielcodes sieht ähnlich wie folgt aus:
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]: There are many alternatives to sugar that you can use, depending on the type of recipe you’re making and your dietary needs or taste preferences. Here are some popular sugar substitutes:
---
### **Natural Sweeteners**
1. **Honey**
- Sweeter than sugar and adds moisture, with a distinct flavor.
- Substitution: Use ¾ cup honey for 1 cup sugar, and reduce the liquid in your recipe by 2 tablespoons. Lower the baking temperature by 25°F to prevent over-browning.
2. **Maple Syrup**
- Adds a rich, earthy sweetness with a hint of maple flavor.
- Substitution: Use ¾ cup syrup for 1 cup sugar. Reduce liquids by 3 tablespoons.
3. **Agave Nectar**
- Sweeter and milder than honey, it dissolves well in cold liquids.
- Substitution: Use ⅔ cup agave for 1 cup sugar. Reduce liquids in the recipe slightly.
4. **Molasses**
- A byproduct of sugar production with a robust, slightly bitter flavor.
- Substitution: Use 1 cup of molasses for 1 cup sugar. Reduce liquid by ¼ cup and consider combining it with other sweeteners due to its strong flavor.
5. **Coconut Sugar**
- Made from the sap of coconut palms, it has a rich, caramel-like flavor.
- Substitution: Use it in a 1:1 ratio for sugar.
6. **Date Sugar** (or Medjool Dates)
- Made from ground, dried dates, or blended into a puree, offering a rich, caramel taste.
- Substitution: Use 1:1 for sugar. Adjust liquid in recipes if needed.
---
### **Calorie-Free or Reduced-Calorie Sweeteners**
1. **Stevia**
- A natural sweetener derived from stevia leaves, hundreds of
Finish reason[0]: length
Received chat completions reply
Bereinigen von Ressourcen
Wenn Sie eine Azure OpenAI-Ressource bereinigen und entfernen möchten, können Sie die Ressource löschen. Vor dem Löschen der Ressource müssen Sie zunächst alle bereitgestellten Modelle löschen.
Nächste Schritte
Weitere Beispiele finden Sie im GitHub-Repository für Azure OpenAI-Beispiele
Quellcode | Artefakt (Maven) | Beispiele | Vorlage für Retrieval Augmented Generation (RAG) Unternehmenschat | IntelliJ IDEA
Voraussetzungen
- Azure-Abonnement: Kostenloses Azure-Konto
- Aktuelle Version des Java Development Kit (JDK)
- Gradle-Buildtool oder einen anderen Abhängigkeit-Manager.
- Eine Azure OpenAI in Azure KI Foundry Modell-Ressource mit dem bereitgestellten
gpt-4
Modell. Weitere Informationen zur Modellimplementierung finden Sie im Leitfaden zur Ressourcenbereitstellung.
Voraussetzungen für Microsoft Entra ID
Für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID müssen Sie:
- Die Azure CLI installieren, die für die schlüssellose Authentifizierung mit Microsoft Entra ID verwendet wird
- Weisen Sie Ihrem Benutzerkonto die
Cognitive Services User
-Rolle zu. Sie können Rollen im Azure-Portal unter Zugriffssteuerung (IAM)>Rollenzuweisung hinzufügen zuweisen.
Einrichten
Erstellen Sie einen neuen Ordner
chat-quickstart
, und wechseln Sie mit dem folgenden Befehl zum Schnellstartordner:mkdir chat-quickstart && cd chat-quickstart
Installieren Sie Apache Maven. Führen Sie dann
mvn -v
aus, um die erfolgreiche Installation zu bestätigen.Erstellen Sie im Stammverzeichnis Ihres Projekts eine neue Datei
pom.xml
, und kopieren Sie folgende Code in diese Datei:<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.azure.samples</groupId> <artifactId>quickstart-dall-e</artifactId> <version>1.0.0-SNAPSHOT</version> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>com.azure</groupId> <artifactId>azure-ai-openai</artifactId> <version>1.0.0-beta.10</version> </dependency> <dependency> <groupId>com.azure</groupId> <artifactId>azure-core</artifactId> <version>1.53.0</version> </dependency> <dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> <version>1.15.1</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.9</version> </dependency> </dependencies> </project>
Installieren Sie das Azure OpenAI SDK und Abhängigkeiten.
mvn clean dependency:copy-dependencies
Melden Sie sich für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID mit dem folgenden Befehl bei Azure an:
az login
Abrufen von Ressourceninformationen
Sie müssen die folgenden Informationen abrufen, um Ihre Anwendung bei Ihrer Azure OpenAI-Ressource zu authentifizieren:
Variablenname | Wert |
---|---|
AZURE_OPENAI_ENDPOINT |
Diesen Wert finden Sie im Abschnitt Schlüssel und Endpunkt, wenn Sie die Ressource über das Azure-Portal untersuchen. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Dieser Wert entspricht dem benutzerdefinierten Namen, den Sie während der Bereitstellung eines Modells für die Bereitstellung ausgewählt haben. Diesen Wert finden Sie unter Ressourcenverwaltung>Modellbereitstellungen im Azure-Portal. |
OPENAI_API_VERSION |
Erfahren Sie mehr über API-Versionen. Sie können die Version im Code ändern oder eine Umgebungsvariable verwenden. |
Erfahren Sie mehr über schlüssellose Authentifizierung und das Festlegen von Umgebungsvariablen.
App starten
Der Beispielcode in diesem Schnellstart verwendet Microsoft Entra ID für die empfohlene schlüssellose Authentifizierung. Wenn Sie einen API-Schlüssel verwenden möchten, können Sie das DefaultAzureCredential
Objekt durch ein AzureKeyCredential
Objekt ersetzen.
OpenAIClient client = new OpenAIClientBuilder()
.endpoint(endpoint)
.credential(new DefaultAzureCredentialBuilder().build())
.buildAsyncClient();
Führen Sie die folgenden Schritte aus, um eine Konsolenanwendung für die Spracherkennung zu erstellen.
Erstellen Sie eine neue Datei mit dem Namen Quickstart.java im selben Projektstammverzeichnis.
Kopieren Sie den folgenden Code in Quickstart.java:
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.identity.DefaultAzureCredentialBuilder; import com.azure.core.util.Configuration; import java.util.ArrayList; import java.util.List; public class QuickstartEntra { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("AZURE_OPENAI_ENDPOINT"); String deploymentOrModelId = "gpt-4o"; // Use the recommended keyless credential instead of the AzureKeyCredential credential. OpenAIClient client = new OpenAIClientBuilder() .endpoint(endpoint) .credential(new DefaultAzureCredentialBuilder().build()) .buildClient(); List<ChatRequestMessage> chatMessages = new ArrayList<>(); chatMessages.add(new ChatRequestSystemMessage("You are a helpful assistant.")); chatMessages.add(new ChatRequestUserMessage("Can I use honey as a substitute for sugar?")); chatMessages.add(new ChatRequestAssistantMessage("Yes, you can use use honey as a substitute for sugar.")); chatMessages.add(new ChatRequestUserMessage("What other ingredients can I use as a substitute for sugar?")); 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()); } }
Führen Sie die neue Konsolenanwendung aus, um ein Image zu generieren:
javac Quickstart.java -cp ".;target\dependency\*" java -cp ".;target\dependency\*" Quickstart
Ausgabe
Model ID=chatcmpl-BDgC0Yr8YNhZFhLABQYfx6QfERsVO is created at 2025-03-21T23:35:52Z.
Index: 0, Chat Role: assistant.
Message:
If you're looking to replace sugar in cooking, baking, or beverages, there are several alternatives you can use depending on your tastes, dietary needs, and the recipe. Here's a list of common sugar substitutes:
### **Natural Sweeteners**
1. **Honey**
- Sweeter than sugar, so you may need less.
- Adds moisture to recipes.
- Adjust liquids and cooking temperature when baking to avoid over-browning.
2. **Maple Syrup**
- Provides a rich, complex flavor.
- Can be used in baking, beverages, and sauces.
- Reduce the liquid content slightly in recipes.
3. **Agave Syrup**
- Sweeter than sugar and has a mild flavor.
- Works well in drinks, smoothies, and desserts.
- Contains fructose, so use sparingly.
4. **Date Sugar or Date Paste**
- Made from dates, it's a whole-food sweetener with fiber and nutrients.
- Great for baked goods and smoothies.
- May darken recipes due to its color.
5. **Coconut Sugar**
- Similar in taste and texture to brown sugar.
- Less refined than white sugar.
- Slightly lower glycemic index, but still contains calories.
6. **Molasses**
- Dark, syrupy byproduct of sugar refining.
- Strong flavor; best for specific recipes like gingerbread or BBQ sauce.
### **Artificial Sweeteners**
1. **Stevia**
- Extracted from the leaves of the stevia plant.
- Virtually calorie-free and much sweeter than sugar.
- Available as liquid, powder, or granulated.
2. **Erythritol**
- A sugar alcohol with few calories and a clean, sweet taste.
- Doesn?t caramelize like sugar.
- Often blended with other sweeteners.
3. **Xylitol**
- A sugar alcohol similar to erythritol.
- Commonly used in baking and beverages.
- Toxic to pets (especially dogs), so handle carefully.
### **Whole Fruits**
1. **Mashed Bananas**
- Natural sweetness works well in baking.
- Adds moisture to recipes.
- Can replace sugar partially or fully depending on the dish.
2. **Applesauce (Unsweetened)**
- Adds sweetness and moisture to baked goods.
- Reduce other liquids in the recipe accordingly.
3. **Pureed Dates, Figs, or Prunes**
- Dense sweetness with added fiber and nutrients.
- Ideal for energy bars, smoothies, and baking.
### **Other Options**
1. **Brown Rice Syrup**
- Less sweet than sugar, with a mild flavor.
- Good for granola bars and baked goods.
2. **Yacon Syrup**
- Extracted from the root of the yacon plant.
- Sweet and rich in prebiotics.
- Best for raw recipes.
3. **Monk Fruit Sweetener**
- Natural sweetener derived from monk fruit.
- Often mixed with erythritol for easier use.
- Provides sweetness without calories.
### **Tips for Substitution**
- Sweeteners vary in sweetness, texture, and liquid content, so adjust recipes accordingly.
- When baking, reducing liquids or fats slightly may be necessary.
- Taste test when possible to ensure the sweetness level matches your preference.
Whether you're seeking healthier options, low-calorie substitutes, or simply alternatives for flavor, these sugar substitutes can work for a wide range of recipes!
Usage: number of prompt token is 60, number of completion token is 740, and number of total tokens in request and response is 800.
Bereinigen von Ressourcen
Wenn Sie eine Azure OpenAI-Ressource bereinigen und entfernen möchten, können Sie die Ressource löschen. Vor dem Löschen der Ressource müssen Sie zunächst alle bereitgestellten Modelle löschen.
Nächste Schritte
- Erste Schritte mit dem Chat und eigenen Daten für Java
- Weitere Beispiele finden Sie im GitHub-Repository für Azure OpenAI-Beispiele
Quellcode | Artifacts (Maven) | Beispiel
Voraussetzungen
- Azure-Abonnement: Kostenloses Azure-Konto
- Aktuelle Version des Java Development Kit (JDK)
- Das Spring Boot CLI-Tool
- Eine Azure OpenAI in Azure KI Foundry Modell-Ressource mit dem bereitgestellten
gpt-4
Modell. Weitere Informationen zur Modellimplementierung finden Sie im Leitfaden zur Ressourcenbereitstellung. In diesem Beispiel wird davon ausgegangen, dass ihr Bereitstellungsname dem Modellnamengpt-4
entspricht.
Einrichten
Abrufen von Schlüssel und Endpunkt
Für erfolgreiche Azure OpenAI-Aufrufe benötigen Sie einen Endpunkt und einen Schlüssel.
Variablenname | Wert |
---|---|
ENDPOINT |
Der Dienstendpunkt befindet sich im Abschnitt Schlüssel und Endpunkt, wenn Sie Ihre Ressource aus dem Azure-Portal untersuchen. Alternativ können Sie den Endpunkt über die Seite Bereitstellungen im Azure KI Foundry-Portal finden. Ein Beispielendpunkt ist https://docs-test-001.openai.azure.com/ . |
API-KEY |
Diesen Wert finden Sie im Abschnitt Schlüssel und Endpunkt, wenn Sie die Ressource über das Azure-Portal untersuchen. Sie können KEY1 oder KEY2 verwenden. |
Wechseln Sie zu Ihrer Ressource im Azure-Portal. Den Abschnitt Schlüssel und Endpunkt finden Sie im Abschnitt Ressourcenverwaltung. Kopieren Sie die Werte für Endpunkt und Zugriffsschlüssel, da Sie beide für die Authentifizierung Ihrer API-Aufrufe benötigen. Sie können KEY1
oder KEY2
verwenden. Wenn Sie jederzeit zwei Schlüssel zur Verfügung haben, können Sie die Schlüssel auf sichere Weise rotieren und neu generieren, ohne Dienstunterbrechungen zu verursachen.
Umgebungsvariablen
Erstellen und Zuweisen von beständigen Umgebungsvariablen für Ihren Schlüssel und Endpunkt.
Wichtig
Verwenden Sie API-Schlüssel mit Vorsicht. Fügen Sie den API-Schlüssel nicht direkt in Ihren Code ein, und machen Sie ihn nicht öffentlich zugänglich. Wenn Sie einen API-Schlüssel verwenden, speichern Sie ihn sicher in Azure Key Vault. Weitere Informationen zur sicheren Verwendung von API-Schlüsseln in Ihren Apps finden Sie unter API-Schlüssel mit Azure Key Vault.
Weitere Informationen zur Sicherheit von KI Services finden Sie unter Authentifizieren von Anforderungen an Azure KI Services.
Hinweis
Spring KI setzt den Modellnamen standardmäßig auf gpt-35-turbo
. Es ist nur erforderlich, den SPRING_AI_AZURE_OPENAI_MODEL
Wert bereitzustellen, wenn Sie ein Modell mit einem anderen Namen bereitgestellt haben.
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"
Erstellen einer neuen Spring-Anwendung
Erstellen Sie ein neues Spring-Projekt.
Erstellen Sie in einem Bash-Fenster ein neues Verzeichnis für Ihre App, und navigieren Sie dorthin.
mkdir ai-chat-demo && cd ai-chat-demo
Führen Sie den Befehl spring init
in Ihrem Arbeitsverzeichnis aus. Dieser Befehl erstellt eine Standardverzeichnisstruktur für Ihr Spring-Projekt, einschließlich der Hauptquelldatei der Java-Klassen und der Datei pom.xml, die für die Verwaltung von Maven-basierten Projekten verwendet wird.
spring init -a ai-chat-demo -n AIChat --force --build maven -x
Die generierten Dateien und Ordner ähneln der folgenden Struktur:
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-Anwendung bearbeiten
Bearbeiten Sie die pom.xml-Datei.
Öffnen Sie im Stammverzeichnis des Projektverzeichnisses die Datei pom.xml in Ihrem bevorzugten Editor oder Ihrer IDE, und überschreiben Sie die Datei mit folgendem Inhalt:
<?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.3.4</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> <spring-ai.version>1.0.0-M5</spring-ai.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-bom</artifactId> <version>${spring-ai.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> </project>
Öffnen Sie im Ordner src/main/java/com/example/aicompletiondemoAiCompletionApplication.java in Ihrem bevorzugten Editor oder Ihrer IDE, und fügen Sie den folgenden Code ein:
package com.example.aichatdemo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.chat.client.ChatClient; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; @SpringBootApplication public class AiChatApplication { private static final Logger log = LoggerFactory.getLogger(AiChatApplication.class); public static void main(String[] args) { SpringApplication.run(AiChatApplication.class, args); } @Bean CommandLineRunner commandLineRunner(ChatClient.Builder builder) { return args -> { var chatClient = builder.build(); log.info("Sending chat prompts to AI service. One moment please..."); String response = chatClient.prompt() .user("What was Microsoft's original internal codename for the project that eventually became Azure?") .call() .content(); log.info("Response: {}", response); }; } }
Wichtig
Verwenden Sie für die Produktion eine sichere Art der Speicherung und des Zugriffs auf Ihre Anmeldeinformationen wie Azure Key Vault. Weitere Informationen zur Sicherheit von Anmeldeinformationen finden Sie in diesem Sicherheitsartikel .
Navigieren Sie zurück zum Projektstammordner, und führen Sie die App mithilfe des folgenden Befehls aus:
./mvnw spring-boot:run
Ausgabe
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.3.4)
2025-03-14T13:35:30.145-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : Starting AiChatApplication using Java 23.0.2 with PID 93252 (/Users/vega/dev/msft/spring-ai-samples/ai-chat-demo/target/classes started by vega in /Users/vega/dev/msft/spring-ai-samples/ai-chat-demo)
2025-03-14T13:35:30.146-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : No active profile set, falling back to 1 default profile: "default"
2025-03-14T13:35:30.500-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : Started AiChatApplication in 0.445 seconds (process running for 0.633)
2025-03-14T13:35:30.501-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : Sending chat prompts to AI service. One moment please...
2025-03-14T13:35:31.950-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : Response: Microsoft's original internal codename for the project that eventually became Azure was "Project Red Dog." This initiative ultimately led to the development and launch of the Microsoft Azure cloud computing platform.
Bereinigen von Ressourcen
Wenn Sie eine Azure OpenAI-Ressource bereinigen und entfernen möchten, können Sie die Ressource löschen. Vor dem Löschen der Ressource müssen Sie zunächst alle bereitgestellten Modelle löschen.
Nächste Schritte
Weitere Beispiele finden Sie im GitHub-Repository für Azure OpenAI-Beispiele
Quellcode | Paket (npm) | Beispiele
Hinweis
In diesem Leitfaden wird das neuesten npm-Paket von OpenAI verwendet, das Azure OpenAI jetzt vollständig unterstützt. Wenn Sie Codebeispiele für das JavaScript-Legacy-SDK von Azure OpenAI suchen, sind diese derzeit noch in diesem Repository verfügbar.
Voraussetzungen
- Azure-Abonnement: Kostenloses Azure-Konto
- LTS-Versionen von Node.js
- Die Azure CLI wird für die kennwortlose Authentifizierung in einer lokalen Entwicklungsumgebung verwendet. Erstellen Sie den erforderlichen Kontext, indem Sie sich mit der Azure CLI anmelden.
- Eine Azure OpenAI-Ressource in Azure KI Foundry Modellen mit einem bereitgestellten
gpt-4
Serienmodell. Weitere Informationen zur Modellimplementierung finden Sie im Leitfaden zur Ressourcenbereitstellung.
Voraussetzungen für Microsoft Entra ID
Für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID müssen Sie:
- Die Azure CLI installieren, die für die schlüssellose Authentifizierung mit Microsoft Entra ID verwendet wird
- Weisen Sie Ihrem Benutzerkonto die
Cognitive Services User
-Rolle zu. Sie können Rollen im Azure-Portal unter Zugriffssteuerung (IAM)>Rollenzuweisung hinzufügen zuweisen.
Einrichten
Erstellen Sie einen neuen Ordner
chat-quickstart
, und wechseln Sie mit dem folgenden Befehl zum Schnellstartordner:mkdir chat-quickstart && cd chat-quickstart
Erstellen Sie
package.json
mit dem folgenden Befehl:npm init -y
Installieren Sie die OpenAI-Clientbibliothek für JavaScript mit:
npm install openai
Für die empfohlene kennwortlose Authentifizierung:
npm install @azure/identity
Abrufen von Ressourceninformationen
Sie müssen die folgenden Informationen abrufen, um Ihre Anwendung bei Ihrer Azure OpenAI-Ressource zu authentifizieren:
Variablenname | Wert |
---|---|
AZURE_OPENAI_ENDPOINT |
Diesen Wert finden Sie im Abschnitt Schlüssel und Endpunkt, wenn Sie die Ressource über das Azure-Portal untersuchen. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Dieser Wert entspricht dem benutzerdefinierten Namen, den Sie während der Bereitstellung eines Modells für die Bereitstellung ausgewählt haben. Diesen Wert finden Sie unter Ressourcenverwaltung>Modellbereitstellungen im Azure-Portal. |
OPENAI_API_VERSION |
Erfahren Sie mehr über API-Versionen. Sie können die Version im Code ändern oder eine Umgebungsvariable verwenden. |
Erfahren Sie mehr über schlüssellose Authentifizierung und das Festlegen von Umgebungsvariablen.
Achtung
Um die empfohlene schlüssellose Authentifizierung mit dem SDK zu verwenden, stellen Sie sicher, dass die Umgebungsvariable AZURE_OPENAI_API_KEY
nicht festgelegt ist.
Erstellen einer Beispielanwendung
Erstellen Sie die Datei
index.js
mit dem folgenden Code: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 || "Your endpoint"; const apiVersion = process.env.OPENAI_API_VERSION || "2024-05-01-preview"; const deployment = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "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 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 };
Melden Sie sich mithilfe des folgenden Befehls bei Azure an:
az login
Führen Sie die JavaScript-Datei aus.
node index.js
Ausgabe
== Chat Completions Sample ==
{
content: 'Yes, several other Azure services also support customer managed keys for enhanced security and control over encryption keys.',
role: 'assistant'
}
Hinweis
Wenn der Fehler angezeigt wird: Fehler aufgetreten: OpenAIError: Die Argumente apiKey
und azureADTokenProvider
schließen sich gegenseitig aus; es kann jeweils nur eins übergeben werden. Möglicherweise müssen Sie eine bereits vorhandene Umgebungsvariable für den API-Schlüssel aus Ihrem System entfernen. Auch wenn das Microsoft Entra ID-Codebeispiel nicht explizit auf die API-Schlüsselumgebungsvariable verweist, wird dieser Fehler weiterhin ausgegeben, wenn eine API-Schlüsselumgebungsvariable in dem System vorhanden ist, das dieses Beispiel ausführt.
Bereinigen von Ressourcen
Wenn Sie eine Azure OpenAI-Ressource bereinigen und entfernen möchten, können Sie die Ressource löschen. Vor dem Löschen der Ressource müssen Sie zunächst alle bereitgestellten Modelle löschen.
Nächste Schritte
Quellcode | Paket (npm) | Beispiele
Hinweis
In diesem Leitfaden wird das neuesten npm-Paket von OpenAI verwendet, das Azure OpenAI jetzt vollständig unterstützt. Wenn Sie Codebeispiele für das JavaScript-Legacy-SDK von Azure OpenAI suchen, sind diese derzeit noch in diesem Repository verfügbar.
Voraussetzungen
- Azure-Abonnement: Kostenloses Azure-Konto
- LTS-Versionen von Node.js
- TypeScript
- Die Azure CLI wird für die kennwortlose Authentifizierung in einer lokalen Entwicklungsumgebung verwendet. Erstellen Sie den erforderlichen Kontext, indem Sie sich mit der Azure CLI anmelden.
- Eine Azure OpenAI-Ressource in Azure KI Foundry Modellen mit einem bereitgestellten
gpt-4
Serienmodell. Weitere Informationen zur Modellimplementierung finden Sie im Leitfaden zur Ressourcenbereitstellung.
Voraussetzungen für Microsoft Entra ID
Für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID müssen Sie:
- Die Azure CLI installieren, die für die schlüssellose Authentifizierung mit Microsoft Entra ID verwendet wird
- Weisen Sie Ihrem Benutzerkonto die
Cognitive Services User
-Rolle zu. Sie können Rollen im Azure-Portal unter Zugriffssteuerung (IAM)>Rollenzuweisung hinzufügen zuweisen.
Einrichten
Erstellen Sie einen neuen Ordner
chat-quickstart
, und wechseln Sie mit dem folgenden Befehl zum Schnellstartordner:mkdir chat-quickstart && cd chat-quickstart
Erstellen Sie
package.json
mit dem folgenden Befehl:npm init -y
Aktualisieren Sie
package.json
mit dem folgenden Befehl auf ECMAScript:npm pkg set type=module
Installieren Sie die OpenAI-Clientbibliothek für JavaScript mit:
npm install openai
Für die empfohlene kennwortlose Authentifizierung:
npm install @azure/identity
Abrufen von Ressourceninformationen
Sie müssen die folgenden Informationen abrufen, um Ihre Anwendung bei Ihrer Azure OpenAI-Ressource zu authentifizieren:
Variablenname | Wert |
---|---|
AZURE_OPENAI_ENDPOINT |
Diesen Wert finden Sie im Abschnitt Schlüssel und Endpunkt, wenn Sie die Ressource über das Azure-Portal untersuchen. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Dieser Wert entspricht dem benutzerdefinierten Namen, den Sie während der Bereitstellung eines Modells für die Bereitstellung ausgewählt haben. Diesen Wert finden Sie unter Ressourcenverwaltung>Modellbereitstellungen im Azure-Portal. |
OPENAI_API_VERSION |
Erfahren Sie mehr über API-Versionen. Sie können die Version im Code ändern oder eine Umgebungsvariable verwenden. |
Erfahren Sie mehr über schlüssellose Authentifizierung und das Festlegen von Umgebungsvariablen.
Achtung
Um die empfohlene schlüssellose Authentifizierung mit dem SDK zu verwenden, stellen Sie sicher, dass die Umgebungsvariable AZURE_OPENAI_API_KEY
nicht festgelegt ist.
Erstellen einer Beispielanwendung
Erstellen Sie die Datei
index.ts
mit dem folgenden Code: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 || "Your endpoint"; // Required Azure OpenAI deployment name and API version const apiVersion = process.env.OPENAI_API_VERSION || "2024-08-01-preview"; const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "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 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); });
Erstellen Sie die Datei
tsconfig.json
, um den TypeScript-Code zu transpilieren, und kopieren Sie den folgenden Code für ECMAScript.{ "compilerOptions": { "module": "NodeNext", "target": "ES2022", // Supports top-level await "moduleResolution": "NodeNext", "skipLibCheck": true, // Avoid type errors from node_modules "strict": true // Enable strict type-checking options }, "include": ["*.ts"] }
Transpilieren Sie von TypeScript in JavaScript:
tsc
Führen Sie den Code mithilfe des folgenden Befehls aus:
node index.js
Ausgabe
== Chat Completions Sample ==
{
content: 'Yes, several other Azure services also support customer managed keys for enhanced security and control over encryption keys.',
role: 'assistant'
}
Hinweis
Wenn der Fehler angezeigt wird: Fehler aufgetreten: OpenAIError: Die Argumente apiKey
und azureADTokenProvider
schließen sich gegenseitig aus; es kann jeweils nur eins übergeben werden. Möglicherweise müssen Sie eine bereits vorhandene Umgebungsvariable für den API-Schlüssel aus Ihrem System entfernen. Auch wenn das Microsoft Entra ID-Codebeispiel nicht explizit auf die API-Schlüsselumgebungsvariable verweist, wird dieser Fehler weiterhin ausgegeben, wenn eine API-Schlüsselumgebungsvariable in dem System vorhanden ist, das dieses Beispiel ausführt.
Bereinigen von Ressourcen
Wenn Sie eine Azure OpenAI-Ressource bereinigen und entfernen möchten, können Sie die Ressource löschen. Vor dem Löschen der Ressource müssen Sie zunächst alle bereitgestellten Modelle löschen.
Nächste Schritte
- Übersicht über Azure OpenAI
- Weitere Beispiele finden Sie im GitHub-Repository für Azure OpenAI-Beispiele
Bibliotheksquellcode | Paket (PyPi) | Retrieval Augmented Generation (RAG) – Vorlage für Unternehmenschat |
Voraussetzungen
- Azure-Abonnement: Kostenloses Azure-Konto
- Python 3.8 oder eine höhere Version.
- Die folgenden Python-Bibliotheken: os.
- Eine Azure OpenAI in Azure KI Foundry Modell-Ressource mit den
gpt-35-turbo
bereitgestellten Modellen oder dengpt-4
bereitgestellten Modellen. Weitere Informationen zur Modellimplementierung finden Sie im Leitfaden zur Ressourcenbereitstellung.
Einrichten
Installieren Sie die OpenAI Python-Clientbibliothek mit:
pip install openai
Hinweis
Diese Bibliothek wird von OpenAI verwaltet. Lesen Sie den Versionsverlauf, um die neuesten Updates für die Bibliothek nachzuverfolgen.
Abrufen von Schlüssel und Endpunkt
Für erfolgreiche Azure OpenAI-Aufrufe benötigen Sie einen Endpunkt und einen Schlüssel.
Variablenname | Wert |
---|---|
ENDPOINT |
Der Dienstendpunkt befindet sich im Abschnitt Schlüssel und Endpunkt, wenn Sie Ihre Ressource aus dem Azure-Portal untersuchen. Alternativ können Sie den Endpunkt über die Seite Bereitstellungen im Azure KI Foundry-Portal finden. Ein Beispielendpunkt ist https://docs-test-001.openai.azure.com/ . |
API-KEY |
Diesen Wert finden Sie im Abschnitt Schlüssel und Endpunkt, wenn Sie die Ressource über das Azure-Portal untersuchen. Sie können KEY1 oder KEY2 verwenden. |
Wechseln Sie zu Ihrer Ressource im Azure-Portal. Den Abschnitt Schlüssel und Endpunkt finden Sie im Abschnitt Ressourcenverwaltung. Kopieren Sie die Werte für Endpunkt und Zugriffsschlüssel, da Sie beide für die Authentifizierung Ihrer API-Aufrufe benötigen. Sie können KEY1
oder KEY2
verwenden. Wenn Sie jederzeit zwei Schlüssel zur Verfügung haben, können Sie die Schlüssel auf sichere Weise rotieren und neu generieren, ohne Dienstunterbrechungen zu verursachen.
Umgebungsvariablen
Erstellen und Zuweisen von beständigen Umgebungsvariablen für Ihren Schlüssel und Endpunkt.
Wichtig
Es wird empfohlen, die Microsoft Entra ID-Authentifizierung mit verwalteten Identitäten für Azure-Ressourcen zu kombinieren, um das Speichern von Anmeldeinformationen mit den in der Cloud ausgeführten Anwendungen zu vermeiden.
Verwenden Sie API-Schlüssel mit Vorsicht. Fügen Sie den API-Schlüssel nicht direkt in Ihren Code ein, und machen Sie ihn nicht öffentlich zugänglich. Wenn Sie API-Schlüssel verwenden, speichern Sie sie sicher in Azure Key Vault, rotieren Sie die Schlüssel regelmäßig, und beschränken Sie den Zugriff auf Azure Key Vault mithilfe von rollenbasierter Zugriffssteuerung und Netzwerkzugriffsbeschränkungen. Weitere Informationen zur sicheren Verwendung von API-Schlüsseln in Ihren Apps finden Sie unter API-Schlüssel mit Azure Key Vault.
Weitere Informationen zur Sicherheit von KI Services finden Sie unter Authentifizieren von Anforderungen an Azure KI Services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Erstellen einer neuen Python-Anwendung
Erstellen Sie eine neue Python-Datei namens „quickstart.py“. Öffnen Sie diese anschließend in Ihrem bevorzugten Editor oder Ihrer bevorzugten IDE.
Ersetzen Sie den Inhalt von „quickstart.py“ durch den folgenden Code.
Sie müssen die Variable model
auf den Bereitstellungsnamen festlegen, den Sie bei der Bereitstellung der GPT-3.5-Turbo- oder GPT-4-Modelle ausgewählt haben. Die Eingabe des Modellnamens führt zu einem Fehler, es sei denn, Sie haben einen Bereitstellungsnamen ausgewählt, der mit dem zugrunde liegenden Modellnamen identisch ist.
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 services support this too?"}
]
)
print(response.choices[0].message.content)
Wichtig
Verwenden Sie für die Produktion eine sichere Art der Speicherung und des Zugriffs auf Ihre Anmeldeinformationen wie Azure Key Vault. Weitere Informationen zur Sicherheit von Anmeldeinformationen finden Sie in diesem Sicherheitsartikel .
Führen Sie die Anwendung mit dem Befehl
python
in Ihrer Schnellstartdatei aus.python quickstart.py
Ausgabe
{
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "Yes, most of the Azure 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 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.
Grundlegendes zur Nachrichtenstruktur
Die GPT-35-Turbo- und GPT-4-Modelle sind für die Verwendung von Eingaben optimiert, die im Gesprächsformat vorliegen. Die Variable messages
übergibt ein Array von Wörterbüchern mit verschiedenen Rollen in der Unterhaltung, die nach System, Benutzer und Assistent abgegrenzt sind. Die Systemnachricht kann zum Vorbereiten des Modells verwendet werden, indem Kontext oder Anweisungen für die Antworten des Modells eingeschlossen werden.
Die Schrittanleitung für GPT-35-Turbo und GPT-4 bietet eine ausführliche Einführung in die Optionen für die Kommunikation mit diesen neuen Modellen.
Bereinigen von Ressourcen
Wenn Sie eine Azure OpenAI-Ressource bereinigen und entfernen möchten, können Sie die Ressource löschen. Vor dem Löschen der Ressource müssen Sie zunächst alle bereitgestellten Modelle löschen.
Nächste Schritte
- Erfahren Sie mehr über die Arbeit mit dem GPT-35-Turbo und den GPT-4-Modellen in unserem Leitfaden.
- Erste Schritte mit dem Chat unter Verwendung einer eigenen Datenprobe für Python
- Weitere Beispiele finden Sie im GitHub-Repository für Azure OpenAI-Beispiele
Voraussetzungen
- Azure-Abonnement – kostenloses Abonnement erstellen.
- Eine Azure OpenAI in Azure KI Foundry Modell-Ressource mit den
gpt-35-turbo
bereitgestellten Modellen oder dengpt-4
bereitgestellten Modellen. Weitere Informationen zur Modellimplementierung finden Sie im Leitfaden zur Ressourcenbereitstellung.
Einrichten
Abrufen von Schlüssel und Endpunkt
Für erfolgreiche Azure OpenAI-Aufrufe benötigen Sie einen Endpunkt und einen Schlüssel.
Variablenname | Wert |
---|---|
ENDPOINT |
Der Dienstendpunkt befindet sich im Abschnitt Schlüssel und Endpunkt, wenn Sie Ihre Ressource aus dem Azure-Portal untersuchen. Alternativ können Sie den Endpunkt über die Seite Bereitstellungen im Azure KI Foundry-Portal finden. Ein Beispielendpunkt ist https://docs-test-001.openai.azure.com/ . |
API-KEY |
Diesen Wert finden Sie im Abschnitt Schlüssel und Endpunkt, wenn Sie die Ressource über das Azure-Portal untersuchen. Sie können KEY1 oder KEY2 verwenden. |
Wechseln Sie zu Ihrer Ressource im Azure-Portal. Den Abschnitt Schlüssel und Endpunkt finden Sie im Abschnitt Ressourcenverwaltung. Kopieren Sie die Werte für Endpunkt und Zugriffsschlüssel, da Sie beide für die Authentifizierung Ihrer API-Aufrufe benötigen. Sie können KEY1
oder KEY2
verwenden. Wenn Sie jederzeit zwei Schlüssel zur Verfügung haben, können Sie die Schlüssel auf sichere Weise rotieren und neu generieren, ohne Dienstunterbrechungen zu verursachen.
Umgebungsvariablen
Erstellen und Zuweisen von beständigen Umgebungsvariablen für Ihren Schlüssel und Endpunkt.
Wichtig
Es wird empfohlen, die Microsoft Entra ID-Authentifizierung mit verwalteten Identitäten für Azure-Ressourcen zu kombinieren, um das Speichern von Anmeldeinformationen mit den in der Cloud ausgeführten Anwendungen zu vermeiden.
Verwenden Sie API-Schlüssel mit Vorsicht. Fügen Sie den API-Schlüssel nicht direkt in Ihren Code ein, und machen Sie ihn nicht öffentlich zugänglich. Wenn Sie API-Schlüssel verwenden, speichern Sie sie sicher in Azure Key Vault, rotieren Sie die Schlüssel regelmäßig, und beschränken Sie den Zugriff auf Azure Key Vault mithilfe von rollenbasierter Zugriffssteuerung und Netzwerkzugriffsbeschränkungen. Weitere Informationen zur sicheren Verwendung von API-Schlüsseln in Ihren Apps finden Sie unter API-Schlüssel mit Azure Key Vault.
Weitere Informationen zur Sicherheit von KI Services finden Sie unter Authentifizieren von Anforderungen an Azure KI Services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
REST-API
Führen Sie in der Bash-Shell die folgenden Befehle aus. Sie müssen gpt-35-turbo
durch den Bereitstellungsnamen ersetzen, den Sie bei der Bereitstellung der GPT-35-Turbo- oder GPT-4-Modelle ausgewählt haben. Die Eingabe des Modellnamens führt zu einem Fehler, es sei denn, Sie haben einen Bereitstellungsnamen ausgewählt, der mit dem zugrunde liegenden Modellnamen identisch ist.
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 services support this too?"}]}'
Das Format Ihrer ersten Zeile des Befehls mit einem Beispielendpunkt wird wie folgt angezeigt: curl https://docs-test-001.openai.azure.com/openai/deployments/{YOUR-DEPLOYMENT_NAME_HERE}/chat/completions?api-version=2024-02-01 \
Wenn ein Fehler auftritt, überprüfen Sie, ob eine Verdoppelung von /
bei der Trennung zwischen Ihrem Endpunkt und /openai/deployments
vorliegt.
Wenn Sie diesen Befehl an einer normalen Windows-Eingabeaufforderung ausführen möchten, müssen Sie den Text ändern, um \
und Zeilenumbrüche zu entfernen.
Wichtig
Verwenden Sie für die Produktion eine sichere Art der Speicherung und des Zugriffs auf Ihre Anmeldeinformationen wie Azure Key Vault. Weitere Informationen zur Sicherheit von Anmeldeinformationen finden Sie in diesem Sicherheitsartikel .
Ausgabe
{"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, many other Azure services also support customer managed keys. Azure OpenAI offers 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}]}
Die Ausgabeformatierung wurde zur erleichterten Lesbarkeit angepasst, die tatsächliche Ausgabe ist ein einzelner Textblock ohne Zeilenumbrüche.
Grundlegendes zur Nachrichtenstruktur
Die GPT-35-Turbo- und GPT-4-Modelle sind für die Verwendung von Eingaben optimiert, die im Gesprächsformat vorliegen. Die Variable messages
übergibt ein Array von Wörterbüchern mit verschiedenen Rollen in der Unterhaltung, die nach System, Benutzer und Assistent abgegrenzt sind. Die Systemnachricht kann zum Vorbereiten des Modells verwendet werden, indem Kontext oder Anweisungen für die Antworten des Modells eingeschlossen werden.
Die Schrittanleitung für GPT-35-Turbo und GPT-4 bietet eine ausführliche Einführung in die Optionen für die Kommunikation mit diesen neuen Modellen.
Bereinigen von Ressourcen
Wenn Sie eine Azure OpenAI-Ressource bereinigen und entfernen möchten, können Sie die Ressource löschen. Vor dem Löschen der Ressource müssen Sie zunächst alle bereitgestellten Modelle löschen.
Nächste Schritte
- Erfahren Sie mehr über die Arbeit mit dem GPT-35-Turbo und den GPT-4-Modellen in unserem Leitfaden.
- Weitere Beispiele finden Sie im GitHub-Repository für Azure OpenAI-Beispiele
Voraussetzungen
- Azure-Abonnement: Kostenloses Azure-Konto
- Sie können entweder die neueste Version, PowerShell 7, oder Windows PowerShell 5.1 verwenden.
- Eine Azure OpenAI in Azure KI Foundry Modell-Ressource mit einem bereitgestellten Modell. Weitere Informationen zur Modellimplementierung finden Sie im Leitfaden zur Ressourcenbereitstellung.
- Eine Azure OpenAI-Ressource mit dem bereitgestellten
gpt-4o
-Modell. Weitere Informationen zur Modellimplementierung finden Sie im Leitfaden zur Ressourcenbereitstellung.
Voraussetzungen für Microsoft Entra ID
Für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID müssen Sie:
- Die Azure CLI installieren, die für die schlüssellose Authentifizierung mit Microsoft Entra ID verwendet wird
- Weisen Sie Ihrem Benutzerkonto die
Cognitive Services User
-Rolle zu. Sie können Rollen im Azure-Portal unter Zugriffssteuerung (IAM)>Rollenzuweisung hinzufügen zuweisen.
Abrufen von Ressourceninformationen
Sie müssen die folgenden Informationen abrufen, um Ihre Anwendung bei Ihrer Azure OpenAI-Ressource zu authentifizieren:
Variablenname | Wert |
---|---|
AZURE_OPENAI_ENDPOINT |
Diesen Wert finden Sie im Abschnitt Schlüssel und Endpunkt, wenn Sie die Ressource über das Azure-Portal untersuchen. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Dieser Wert entspricht dem benutzerdefinierten Namen, den Sie während der Bereitstellung eines Modells für die Bereitstellung ausgewählt haben. Diesen Wert finden Sie unter Ressourcenverwaltung>Modellbereitstellungen im Azure-Portal. |
OPENAI_API_VERSION |
Erfahren Sie mehr über API-Versionen. Sie können die Version im Code ändern oder eine Umgebungsvariable verwenden. |
Erfahren Sie mehr über schlüssellose Authentifizierung und das Festlegen von Umgebungsvariablen.
Erstellen eines neuen PowerShell-Skripts
Melden Sie sich für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID mit dem folgenden Befehl bei Azure an:
az login
Erstellen Sie eine neue PowerShell-Datei namensquickstart.ps1. Öffnen Sie diese anschließend in Ihrem bevorzugten Editor oder Ihrer bevorzugten IDE.
Ersetzen Sie den Inhalt von quickstart.ps1 durch den folgenden Code. Sie müssen die
engine
Variable auf den Bereitstellungsnamen festlegen, den Sie beim Bereitstellen des GPT-4o-Modells ausgewählt haben. Die Eingabe des Modellnamens führt zu einem Fehler, sofern Sie keinen Bereitstellungsnamen ausgewählt haben, der mit dem zugrunde liegenden Modellnamen identisch ist.# Azure OpenAI metadata variables $openai = @{ api_base = $Env:AZURE_OPENAI_ENDPOINT api_version = '2024-10-21' # This can change in the future. name = 'gpt-4o' # The name you chose for your model deployment. } # Use the recommended keyless authentication via bearer token. $headers = [ordered]@{ #'api-key' = $Env:AZURE_OPENAI_API_KEY 'Authorization' = "Bearer $($Env:DEFAULT_AZURE_CREDENTIAL_TOKEN)" } # Completion text $messages = @() $messages += @{ role = 'system' content = 'You are a helpful assistant.' } $messages += @{ role = 'user' content = 'Can I use honey as a substitute for sugar?' } $messages += @{ role = 'assistant' content = 'Yes, you can use honey as a substitute for sugar.' } $messages += @{ role = 'user' content = 'What other ingredients can I use as a substitute for sugar?' } # 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
Wichtig
Verwenden Sie für die Produktion eine sichere Art der Speicherung und des Zugriffs auf Ihre Anmeldeinformationen wie die PowerShell-Geheimnisverwaltung mit Azure Key Vault. Weitere Informationen zur Sicherheit von Anmeldeinformationen finden Sie in diesem Sicherheitsartikel .
Führen Sie das Skript mit PowerShell aus. In diesem Beispielwird der Parameter
-Depth
verwendet, um sicherzustellen, dass die Ausgabe nicht abgeschnitten wird../quickstart.ps1 | ConvertTo-Json -Depth 4
Ausgabe
Die Ausgabe des Skripts ist ein JSON-Objekt, das die Antwort von Azure OpenAI enthält. Die Ausgabe sieht in etwa wie folgt aus:
{
"choices": [
{
"content_filter_results": {
"custom_blocklists": {
"filtered": false
},
"hate": {
"filtered": false,
"severity": "safe"
},
"protected_material_code": {
"filtered": false,
"detected": false
},
"protected_material_text": {
"filtered": false,
"detected": false
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
},
"finish_reason": "stop",
"index": 0,
"logprobs": null,
"message": {
"content": "There are many alternatives to sugar that can be used in cooking and baking, depending on your dietary needs, taste preferences, and the type of recipe you're making. Here are some popular sugar substitutes:\n\n---\n\n### 1. **Natural Sweeteners**\n - **Maple Syrup**: A natural sweetener with a rich, distinct flavor. Use about ¾ cup of maple syrup for every cup of sugar, and reduce the liquid in the recipe slightly.\n - **Agave Nectar**: A liquid sweetener that’s sweeter than sugar. Use about ⅔ cup of agave nectar for each cup of sugar, and reduce the liquid in the recipe.\n - **Coconut Sugar**: Made from the sap of the coconut palm, it has a mild caramel flavor. Substitute in a 1:1 ratio for sugar.\n - **Molasses**: A by-product of sugar production, molasses is rich in flavor and best for recipes like gingerbread or barbecue sauce. Adjust quantities based on the recipe.\n - **Stevia (Natural)**: Derived from the stevia plant, it's intensely sweet and available in liquid or powder form. Use sparingly, as a little goes a long way.\n\n---\n\n### 2. **Fruit-Based Sweeteners**\n - **Ripe Bananas**: Mashed bananas work well for baking recipes like muffins or pancakes. Use about ½ cup of mashed banana for every cup of sugar and reduce the liquid slightly.\n - **Applesauce**: Unsweetened applesauce adds sweetness and moisture to baked goods. Replace sugar in a 1:1 ratio, but reduce the liquid by ¼ cup.\n - **Dates/Date Paste**: Blend dates with water to make a paste, which works well in recipes like energy bars, cakes, or smoothies. Use in a 1:1 ratio for sugar.\n - **Fruit Juices (e.g., orange juice)**: Can be used to impart natural sweetness but is best suited for specific recipes like marinades or desserts.\n\n---\n\n### 3. **Artificial and Low-Calorie Sweeteners**\n - **Erythritol**: A sugar alcohol with no calories. Substitute in equal amounts, but be careful as it may cause a cooling sensation in some recipes.\n - **Xylitol**: Another sugar alcohol, often used in gum and candies. It’s a 1:1 sugar substitute but may affect digestion if consumed in large quantities.\n - **Monk Fruit Sweetener**: A natural, calorie-free sweetener that’s significantly sweeter than sugar. Follow the product packaging for exact substitution measurements.\n - **Aspartame, Sucralose, or Saccharin** (Artificial Sweeteners): Often used for calorie reduction in beverages or desserts. Follow package instructions for substitution.\n\n---\n\n### 4. **Other Natural Alternatives**\n - **Brown Rice Syrup**: A sticky, malt-flavored syrup used in granolas or desserts. Substitute 1 ¼ cups of brown rice syrup for every cup of sugar.\n - **Barley Malt Syrup**: A thick, dark syrup with a distinct flavor. It can replace sugar but might require recipe adjustments due to its strong taste.\n - **Yacon Syrup**: Made from the root of the yacon plant, it’s similar in texture to molasses and has a mild sweetness.\n\n---\n\n### General Tips for Substituting Sugar:\n- **Adjust Liquids:** Many liquid sweeteners (like honey or maple syrup) require reducing the liquid in the recipe to maintain texture.\n- **Baking Powder Adjustment:** If replacing sugar with an acidic sweetener (e.g., honey or molasses), you might need to add a little baking soda to neutralize acidity.\n- **Flavor Changes:** Some substitutes, like molasses or coconut sugar, have distinct flavors that can influence the taste of your recipe.\n- **Browning:** Sugar contributes to caramelization and browning in baked goods. Some alternatives may yield lighter-colored results.\n\nBy trying out different substitutes, you can find what works best for your recipes!",
"refusal": null,
"role": "assistant"
}
}
],
"created": 1742602230,
"id": "chatcmpl-BDgjWjEboQ0z6r58pvSBgH842JbB2",
"model": "gpt-4o-2024-11-20",
"object": "chat.completion",
"prompt_filter_results": [
{
"prompt_index": 0,
"content_filter_results": {
"custom_blocklists": {
"filtered": false
},
"hate": {
"filtered": false,
"severity": "safe"
},
"jailbreak": {
"filtered": false,
"detected": false
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
}
}
],
"system_fingerprint": "fp_a42ed5ff0c",
"usage": {
"completion_tokens": 836,
"completion_tokens_details": {
"accepted_prediction_tokens": 0,
"audio_tokens": 0,
"reasoning_tokens": 0,
"rejected_prediction_tokens": 0
},
"prompt_tokens": 60,
"prompt_tokens_details": {
"audio_tokens": 0,
"cached_tokens": 0
},
"total_tokens": 896
}
}
Bemerkungen
Sie können den ConvertTo-Json
Schritt überspringen, wenn die rohe Ausgabe angezeigt werden soll.
./quickstart.ps1
Die Ausgabe sieht wie folgt aus:
choices : {@{content_filter_results=; finish_reason=stop; index=0; logprobs=; message=}}
created : 1742602727
id : chatcmpl-BDgrX0BF38mZuszFeyU1NKZSiRpSX
model : gpt-4o-2024-11-20
object : chat.completion
prompt_filter_results : {@{prompt_index=0; content_filter_results=}}
system_fingerprint : fp_b705f0c291
usage : @{completion_tokens=944; completion_tokens_details=; prompt_tokens=60; prompt_tokens_details=; total_tokens=1004}
Sie können den Inhalt des skriptspowershell.ps1 bearbeiten, um das gesamte Objekt oder eine bestimmte Eigenschaft zurückzugeben. Um beispielsweise den zurückgegebenen Text zurückzugeben, können Sie die letzte Zeile des Skripts (return $response
) durch Folgendes ersetzen:
return $response.choices.message.content
Führen Sie dann das Skript erneut aus.
./quickstart.ps1
Die Ausgabe sieht wie folgt aus:
There are several ingredients that can be used as substitutes for sugar, depending on the recipe and your dietary preferences. Here are some popular options:
---
### **Natural Sweeteners**
1. **Maple Syrup**
- Flavor: Rich and slightly caramel-like.
- Use: Works well in baking, sauces, oatmeal, and beverages.
- Substitution: Replace sugar in a 1:1 ratio but reduce the liquid in your recipe by about 3 tablespoons per cup of maple syrup.
2. **Agave Nectar**
- Flavor: Mildly sweet, less pronounced than honey.
- Use: Good for beverages, desserts, and dressings.
- Substitution: Use about 2/3 cup of agave nectar for every 1 cup of sugar, and reduce other liquids slightly.
3. **Molasses**
- Flavor: Strong, earthy, and slightly bitter.
- Use: Perfect for gingerbread, cookies, and marinades.
- Substitution: Replace sugar in equal amounts, but adjust for the strong flavor.
4. **Date Paste**
- Flavor: Naturally sweet with hints of caramel.
- Use: Works well in energy bars, smoothies, or baking recipes.
- Substitution: Blend pitted dates with water to create paste (about 1:1 ratio). Use equal amounts in recipes.
5. **Coconut Sugar**
- Flavor: Similar to brown sugar, mildly caramel-like.
- Use: Excellent for baking.
- Substitution: Replace sugar in a 1:1 ratio.
---
### **Low-Calorie Sweeteners**
1. **Stevia**
- Flavor: Very sweet but can have a slightly bitter aftertaste.
- Use: Works in beverages, desserts, and some baked goods.
- Substitution: Use less—around 1 teaspoon of liquid stevia or 1/2 teaspoon stevia powder for 1 cup of sugar. Check the package for exact conversion.
2. **Erythritol**
- Flavor: Similar to sugar but less sweet.
- Use: Perfect for baked goods and beverages.
- Substitution: Replace sugar using a 1:1 ratio, though you may need to adjust for less sweetness.
3. **Xylitol**
- Flavor: Similar to sugar.
- Use: Great for baking or cooking but avoid using it for recipes requiring caramelization.
- Substitution: Use a 1:1 ratio.
---
### **Fruit-Based Sweeteners**
1. **Mashed Bananas**
- Flavor: Sweet with a fruity note.
- Use: Great for muffins, cakes, and pancakes.
- Substitution: Use 1 cup mashed banana for 1 cup sugar, but reduce liquid slightly in the recipe.
2. **Applesauce**
- Flavor: Mildly sweet.
- Use: Excellent for baked goods like muffins or cookies.
- Substitution: Replace sugar 1:1, but reduce other liquids slightly.
3. **Fruit Juice Concentrates**
- Flavor: Sweet with fruity undertones.
- Use: Works well in marinades, sauces, and desserts.
- Substitution: Use equal amounts, but adjust liquid content.
---
### **Minimal-Processing Sugars**
1. **Raw Honey**
- Flavor: Sweet with floral undertones.
- Use: Good for baked goods and beverages.
- Substitution: Replace sugar in a 1:1 ratio, but reduce other liquids slightly.
2. **Brown Rice Syrup**
- Flavor: Mildly sweet with a hint of nuttiness.
- Use: Suitable for baked goods and granola bars.
- Substitution: Use 1-1/4 cups of syrup for 1 cup of sugar, and decrease liquid in the recipe.
---
### Tips for Substitution:
- Adjust for sweetness: Some substitutes are sweeter or less sweet than sugar, so amounts may need tweaking.
- Baking considerations: Sugar affects texture, browning, and moisture. If you replace it, you may need to experiment to get the desired result.
- Liquid adjustments: Many natural sweeteners are liquid, so you’ll often need to reduce the amount of liquid in your recipe.
Would you like help deciding the best substitute for a specific recipe?
Grundlegendes zur Nachrichtenstruktur
Die GPT-4-Modelle sind für die Arbeit mit Eingaben optimiert, die als Unterhaltung formatiert sind. Die Variable messages
übergibt ein Array von Wörterbüchern mit verschiedenen Rollen in der Unterhaltung, die nach System, Benutzer und Assistent abgegrenzt sind. Die Systemnachricht kann zum Vorbereiten des Modells verwendet werden, indem Kontext oder Anweisungen für die Antworten des Modells eingeschlossen werden.
Das GPT-4-Anleitungshandbuch bietet eine ausführliche Einführung in die Optionen für die Kommunikation mit diesen Modellen.
Bereinigen von Ressourcen
Wenn Sie eine Azure OpenAI-Ressource bereinigen und entfernen möchten, können Sie die Ressource löschen. Vor dem Löschen der Ressource müssen Sie zunächst alle bereitgestellten Modelle löschen.
Nächste Schritte
- Erfahren Sie mehr über die Arbeit mit den GPT-4-Modellen mit unserem Anleitungshandbuch.
- Weitere Beispiele finden Sie im GitHub-Repository für Azure OpenAI-Beispiele