Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Gebruik dit artikel om aan de slag te gaan met Azure OpenAI.
Vereisten
- Een Azure-abonnement: maak er gratis een.
- Een Azure OpenAI-model in Azure AI Foundry Models-resource met ofwel de
gpt-4o
-modellen of degpt-4o-mini
-modellen geïmplementeerd. We raden u aan om standaard- of algemene modelimplementatietypen te gebruiken voor initiële verkenning. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Ga naar Azure AI Foundry
Navigeer naar de Azure AI Foundry-portal en meld u aan met referenties die toegang hebben tot uw Azure OpenAI-resource. Selecteer tijdens of na de aanmeldingswerkstroom de juiste map, het Azure-abonnement en de Azure OpenAI-resource.
Selecteer chatspeeltuin in Azure AI Foundry.
Speelplaats
Begin met het verkennen van de mogelijkheden van Azure OpenAI met een no-code-benadering via de Azure AI Foundry Chat-speeltuin. Op deze pagina kunt u snel itereren en experimenteren met de mogelijkheden.
Installatie
U kunt de vervolgkeuzelijst *Promptvoorbeelden gebruiken om enkele vooraf geladen systeemberichtvoorbeelden te selecteren om aan de slag te gaan.
Systeemberichten geven het model instructies over hoe het zich moet gedragen en eventuele context waarnaar wordt verwezen bij het genereren van een antwoord. U kunt de persoonlijkheid van de assistent beschrijven, vertellen wat het wel en niet moet beantwoorden en hoe u antwoorden kunt opmaken.
U kunt op elk gewenst moment tijdens het gebruik van de Chat-speeltuin Code weergeven selecteren om voorbeelden van Python-, curl- en json-code vooraf ingevuld te zien op basis van uw huidige selecties voor chatsessies en instellingen. U kunt deze code vervolgens gebruiken en een toepassing schrijven om dezelfde taak te voltooien die u momenteel uitvoert met de speeltuin.
Chatsessie
Als u de knop Enter selecteert of het pijl-rechts selecteert, wordt de ingevoerde tekst verzonden naar de API voor voltooiing van de chat en worden de resultaten teruggezet naar het tekstvak.
Selecteer de knop Chat wissen om de huidige gespreksgeschiedenis te verwijderen.
Sleutelinstellingen
Naam | Beschrijving |
---|---|
Implementaties | Uw implementatienaam die is gekoppeld aan een specifiek model. |
Uw gegevens toevoegen | |
Parameterwaarden | Aangepaste parameters waarmee de modelreacties worden gewijzigd. Wanneer u begint, raden we u aan om de standaardwaarden voor de meeste parameters te gebruiken |
Temperatuur | Bepaalt willekeurigheid. Het verlagen van de temperatuur betekent dat het model meer terugkerende en deterministische reacties produceert. Het verhogen van de temperatuur resulteert in onverwachtere of creatieve reacties. Probeer de temperatuur of top P aan te passen, maar niet beide. |
Maximaal antwoord (tokens) | Stel een limiet in voor het aantal tokens per modelantwoord. De API op de nieuwste modellen ondersteunt maximaal 128.000 tokens die worden gedeeld tussen de prompt (inclusief systeembericht, voorbeelden, berichtgeschiedenis en gebruikersquery) en het antwoord van het model. Eén token bestaat uit ongeveer vier tekens in typische Engelse tekst. |
Bovenste p | Net als bij temperatuur bepaalt deze willekeurigheid, maar wordt een andere methode gebruikt. Als u top P verlaagt, wordt de tokenselectie van het model beperkt tot likelier-tokens. Als u top P verhoogt, kan het model kiezen uit tokens met zowel een hoge als een lage kans. Probeer de temperatuur of top P aan te passen, maar niet beide. |
Reeksen stoppen | Stopvolgorde zorgt ervoor dat het model het antwoord op een gewenst punt beëindigt. Het modelantwoord eindigt vóór de opgegeven reeks, dus bevat deze niet de tekst van de stopreeks. Voor GPT-35-Turbo zorgt het gebruik <|im_end|> ervan ervoor dat het modelantwoord geen opvolgende gebruikersquery genereert. U kunt maximaal vier stopreeksen opnemen. |
Code weergeven
Zodra u hebt geëxperimenteerd met het chatten met het model, selecteert u de knop </> Code weergeven. Dit geeft u een herhaling van de code achter uw hele gesprek tot nu toe:
Inzicht in de promptstructuur
Als u het voorbeeld van Code weergeven bekijkt, ziet u dat het gesprek is onderverdeeld in drie verschillende rollen system
, user
, assistant
. Elke keer dat u een bericht naar het model stuurt, wordt de hele gespreksgeschiedenis tot dat punt opnieuw verzonden. Wanneer u de API voor het voltooien van chats gebruikt, heeft het model geen echt geheugen van wat u in het verleden naar het model hebt verzonden, zodat u de gespreksgeschiedenis voor context opgeeft zodat het model correct kan reageren.
De handleiding voor het voltooien van chats biedt een uitgebreide inleiding in de nieuwe promptstructuur en het effectief gebruiken van modellen voor chatvoltooiing.
Uw model implementeren
Zodra u tevreden bent over de ervaring, kunt u een webapp rechtstreeks vanuit de portal implementeren door op de knop Implementeren in te klikken.
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.
Opschonen van resources
Mocht u na het testen van de Chat-speeltuin besluiten een Azure OpenAI-resource op te schonen en te verwijderen, dan kunt u de resource of de resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd.
Volgende stappen
- Ontdek meer over hoe u kunt werken met het nieuwe
gpt-35-turbo
-model met de GPT-35-Turbo & GPT-4-handleiding. - Bekijk de GitHub-opslagplaats met Voorbeelden van Azure OpenAI voor meer voorbeelden
Broncode | Pakket (NuGet) | Voorbeelden| Enterprise chat-sjabloon voor Retrieval Augmented Generation (RAG) |
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- De .NET 7 SDK
- Een Azure OpenAI in Azure AI Foundry Models-resource met het
gpt-4o
geïmplementeerde model. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Vereisten voor Microsoft Entra-id
Voor de aanbevolen sleutelloze verificatie met Microsoft Entra-id moet u het volgende doen:
- Installeer de Azure CLI die wordt gebruikt voor sleutelloze verificatie met Microsoft Entra-id.
- Wijs de
Cognitive Services User
rol toe aan uw gebruikersaccount. U kunt rollen toewijzen in Azure Portal onder Toegangsbeheer (IAM)>Roltoewijzing toevoegen.
Inrichten
Maak een nieuwe map
chat-quickstart
en ga naar de snelstartmap met de volgende opdracht:mkdir chat-quickstart && cd chat-quickstart
Maak een nieuwe consoletoepassing met de volgende opdracht:
dotnet new console
Installeer de OpenAI .NET-clientbibliotheek met de opdracht dotnet add package :
dotnet add package Azure.AI.OpenAI --prerelease
Voor de aanbevolen sleutelloze verificatie met Microsoft Entra ID installeert u het Azure.Identity-pakket met:
dotnet add package Azure.Identity
Meld u met de volgende opdracht aan bij Azure voor de aanbevolen sleutelloze verificatie met Microsoft Entra ID:
az login
Resourcegegevens ophalen
U moet de volgende informatie ophalen om uw toepassing te verifiëren met uw Azure OpenAI-resource:
Naam van de variabele | Waarde |
---|---|
AZURE_OPENAI_ENDPOINT |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het controleren van uw resource vanuit Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Deze waarde komt overeen met de aangepaste naam die u hebt gekozen voor uw implementatie toen u een model hebt geïmplementeerd. Deze waarde vindt u onder Resource Management>Model Deployments in Azure Portal. |
OPENAI_API_VERSION |
Meer informatie over API-versies. U kunt de versie in code wijzigen of een omgevingsvariabele gebruiken. |
Meer informatie over sleutelloze verificatie en het instellen van omgevingsvariabelen.
De quickstart uitvoeren
De voorbeeldcode in deze quickstart maakt gebruik van Microsoft Entra-id voor de aanbevolen sleutelloze verificatie. Als u liever een API-sleutel gebruikt, kunt u het DefaultAzureCredential
object vervangen door een AzureKeyCredential
object.
AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
U kunt streaming of niet-streaming gebruiken om de chat te voltooien. In de volgende codevoorbeelden ziet u hoe u beide methoden gebruikt. In het eerste voorbeeld ziet u hoe u de methode voor niet-streaming gebruikt en in het tweede voorbeeld ziet u hoe u de streamingmethode gebruikt.
Zonder streaming van reacties
Voer de volgende stappen uit om de quickstart uit te voeren:
Vervang de inhoud van
Program.cs
met de volgende code en werk de waarden van de tijdelijke aanduidingen bij met uw eigen waarden.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}");
Voer de toepassing uit met de volgende opdracht:
dotnet run
Uitvoer
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!
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
Voer de volgende stappen uit om de quickstart uit te voeren:
Vervang de inhoud van
Program.cs
met de volgende code en werk de waarden van de tijdelijke aanduidingen bij met uw eigen waarden.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); } }
Voer de toepassing uit met de volgende opdracht:
dotnet run
Uitvoer
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!
Opschonen van resources
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
Broncode | Pakket (Go)| Voorbeelden
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- Go 1.21.0 of hoger lokaal geïnstalleerd.
- Een Azure OpenAI in Azure AI Foundry Models-resource met het
gpt-4
geïmplementeerde model. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Vereisten voor Microsoft Entra-id
Voor de aanbevolen sleutelloze verificatie met Microsoft Entra-id moet u het volgende doen:
- Installeer de Azure CLI die wordt gebruikt voor sleutelloze verificatie met Microsoft Entra-id.
- Wijs de
Cognitive Services User
rol toe aan uw gebruikersaccount. U kunt rollen toewijzen in Azure Portal onder Toegangsbeheer (IAM)>Roltoewijzing toevoegen.
Inrichten
Maak een nieuwe map
chat-quickstart
en ga naar de snelstartmap met de volgende opdracht:mkdir chat-quickstart && cd chat-quickstart
Meld u met de volgende opdracht aan bij Azure voor de aanbevolen sleutelloze verificatie met Microsoft Entra ID:
az login
Resourcegegevens ophalen
U moet de volgende informatie ophalen om uw toepassing te verifiëren met uw Azure OpenAI-resource:
Naam van de variabele | Waarde |
---|---|
AZURE_OPENAI_ENDPOINT |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het controleren van uw resource vanuit Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Deze waarde komt overeen met de aangepaste naam die u hebt gekozen voor uw implementatie toen u een model hebt geïmplementeerd. Deze waarde vindt u onder Resource Management>Model Deployments in Azure Portal. |
OPENAI_API_VERSION |
Meer informatie over API-versies. U kunt de versie in code wijzigen of een omgevingsvariabele gebruiken. |
Meer informatie over sleutelloze verificatie en het instellen van omgevingsvariabelen.
De quickstart uitvoeren
De voorbeeldcode in deze quickstart maakt gebruik van Microsoft Entra-id voor de aanbevolen sleutelloze verificatie. Als u liever een API-sleutel gebruikt, kunt u de NewDefaultAzureCredential
implementatie vervangen door NewKeyCredential
.
azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
credential, err := azidentity.NewDefaultAzureCredential(nil)
client, err := azopenai.NewClient(azureOpenAIEndpoint, credential, nil)
Het voorbeeld uitvoeren:
Maak een nieuw bestand met de naam chat_completions_keyless.go. Kopieer de volgende code in het bestand 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") } }
Voer de volgende opdracht uit om een nieuwe Go-module te maken:
go mod init chat_completions_keyless.go
Voer deze opdracht uit
go mod tidy
om de vereiste afhankelijkheden te installeren:go mod tidy
Voer de volgende opdracht uit om het voorbeeld uit te voeren:
go run chat_completions_keyless.go
Uitvoer
De uitvoer van de voorbeeldcode ziet er ongeveer als volgt uit:
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
Opschonen van resources
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
Broncode | Artefact (Maven) | Voorbeelden | Retrieval Augmented Generation (RAG) enterprise chat template | IntelliJ IDEA
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- De huidige versie van de Java Development Kit (JDK)
- Het Gradle-buildtool of een andere afhankelijkheidsbeheerder.
- Een Azure OpenAI in Azure AI Foundry Models-resource met het
gpt-4
geïmplementeerde model. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Vereisten voor Microsoft Entra-id
Voor de aanbevolen sleutelloze verificatie met Microsoft Entra-id moet u het volgende doen:
- Installeer de Azure CLI die wordt gebruikt voor sleutelloze verificatie met Microsoft Entra-id.
- Wijs de
Cognitive Services User
rol toe aan uw gebruikersaccount. U kunt rollen toewijzen in Azure Portal onder Toegangsbeheer (IAM)>Roltoewijzing toevoegen.
Inrichten
Maak een nieuwe map
chat-quickstart
en ga naar de snelstartmap met de volgende opdracht:mkdir chat-quickstart && cd chat-quickstart
Installeer Apache Maven. Voer vervolgens uit
mvn -v
om de installatie te bevestigen.Maak een nieuw
pom.xml
bestand in de hoofdmap van uw project en kopieer de volgende code erin:<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>
Installeer de Azure OpenAI SDK en afhankelijkheden.
mvn clean dependency:copy-dependencies
Meld u met de volgende opdracht aan bij Azure voor de aanbevolen sleutelloze verificatie met Microsoft Entra ID:
az login
Resourcegegevens ophalen
U moet de volgende informatie ophalen om uw toepassing te verifiëren met uw Azure OpenAI-resource:
Naam van de variabele | Waarde |
---|---|
AZURE_OPENAI_ENDPOINT |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het controleren van uw resource vanuit Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Deze waarde komt overeen met de aangepaste naam die u hebt gekozen voor uw implementatie toen u een model hebt geïmplementeerd. Deze waarde vindt u onder Resource Management>Model Deployments in Azure Portal. |
OPENAI_API_VERSION |
Meer informatie over API-versies. U kunt de versie in code wijzigen of een omgevingsvariabele gebruiken. |
Meer informatie over sleutelloze verificatie en het instellen van omgevingsvariabelen.
De app uitvoeren
De voorbeeldcode in deze quickstart maakt gebruik van Microsoft Entra-id voor de aanbevolen sleutelloze verificatie. Als u liever een API-sleutel gebruikt, kunt u het DefaultAzureCredential
object vervangen door een AzureKeyCredential
object.
OpenAIClient client = new OpenAIClientBuilder()
.endpoint(endpoint)
.credential(new DefaultAzureCredentialBuilder().build())
.buildAsyncClient();
Volg deze stappen om een consoletoepassing te maken voor spraakherkenning.
Maak een nieuw bestand met de naam Quickstart.java in dezelfde hoofdmap van het project.
Kopieer de volgende code naar 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()); } }
Voer uw nieuwe consoletoepassing uit om een afbeelding te genereren.
javac Quickstart.java -cp ".;target\dependency\*" java -cp ".;target\dependency\*" Quickstart
Uitvoer
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.
Opschonen van resources
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
Broncode | Artefacten (Maven) | Voorbeeld
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- De huidige versie van de Java Development Kit (JDK)
- Het Hulpprogramma Spring Boot CLI
- Een Azure OpenAI in Azure AI Foundry Models-resource met het
gpt-4
geïmplementeerde model. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen. In dit voorbeeld wordt ervan uitgegaan dat uw implementatienaam overeenkomt met de modelnaamgpt-4
Inrichten
Sleutel en eindpunt ophalen
Als u azure OpenAI wilt aanroepen, hebt u een eindpunt en een sleutel nodig.
Naam van de variabele | Waarde |
---|---|
ENDPOINT |
Het service-eindpunt vindt u in de sectie Sleutels en eindpunten bij het controleren van uw resource vanuit Azure Portal. U kunt het eindpunt ook vinden via de pagina Implementaties in de Azure AI Foundry-portal. 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 je resource in de Azure Portal. De sectie Sleutels en eindpunt vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1
of KEY2
gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.
Omgevingsvariabelen
Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.
Belangrijk
Gebruik API-sleutels met voorzichtigheid. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar. Als u een API-sleutel gebruikt, slaat u deze veilig op in Azure Key Vault. Zie API-sleutels met Azure Key Vault voor meer informatie over het veilig gebruiken van API-sleutels in uw apps.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
Notitie
In Spring AI wordt de modelnaam standaard ingesteld op gpt-35-turbo
. Het is alleen nodig om de SPRING_AI_AZURE_OPENAI_MODEL
waarde op te geven als u een model met een andere naam hebt geïmplementeerd.
export SPRING_AI_AZURE_OPENAI_API_KEY="REPLACE_WITH_YOUR_KEY_VALUE_HERE"
export SPRING_AI_AZURE_OPENAI_ENDPOINT="REPLACE_WITH_YOUR_ENDPOINT_HERE"
export SPRING_AI_AZURE_OPENAI_MODEL="REPLACE_WITH_YOUR_MODEL_NAME_HERE"
Een nieuwe Spring-toepassing maken
Maak een nieuw Spring-project.
Maak in een Bash-venster een nieuwe map voor uw app en navigeer ernaartoe.
mkdir ai-chat-demo && cd ai-chat-demo
Voer de opdracht spring init
uit vanuit uw werkmap. Met deze opdracht maakt u een standaardmapstructuur voor uw Spring-project, inclusief het belangrijkste Bronbestand van Java-klasse en het pom.xml-bestand dat wordt gebruikt voor het beheren van op Maven gebaseerde projecten.
spring init -a ai-chat-demo -n AIChat --force --build maven -x
De gegenereerde bestanden en mappen lijken op de volgende structuur:
ai-chat-demo/
|-- pom.xml
|-- mvn
|-- mvn.cmd
|-- HELP.md
|-- src/
|-- main/
| |-- resources/
| | |-- application.properties
| |-- java/
| |-- com/
| |-- example/
| |-- aichatdemo/
| |-- AiChatApplication.java
|-- test/
|-- java/
|-- com/
|-- example/
|-- aichatdemo/
|-- AiChatApplicationTests.java
Spring-toepassing bewerken
Bewerk het pom.xml bestand.
Open vanuit de hoofdmap van de projectmap het pom.xml-bestand in de gewenste editor of IDE en overschrijf het bestand met de volgende inhoud:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.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>
Ga naar de map src/main/java/com/example/aichatdemo, open AiChatApplication.java in uw favoriete editor of IDE en plak de volgende code:
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); }; } }
Belangrijk
Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie dit beveiligingsartikel voor meer informatie over referentiebeveiliging.
Ga terug naar de hoofdmap van het project en voer de app uit met behulp van de volgende opdracht:
./mvnw spring-boot:run
Uitvoer
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.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.
Opschonen van resources
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
Broncode | Pakket (npm) | Voorbeelden
Notitie
In deze handleiding wordt het nieuwste OpenAI NPM-pakket gebruikt dat nu volledig ondersteuning biedt voor Azure OpenAI. Als u op zoek bent naar codevoorbeelden voor de verouderde Azure OpenAI JavaScript SDK, zijn deze momenteel nog steeds beschikbaar in deze opslagplaats.
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- LTS-versies van Node.js
- Azure CLI die wordt gebruikt voor verificatie zonder wachtwoord in een lokale ontwikkelomgeving, maakt de benodigde context door u aan te melden met de Azure CLI.
- Een Azure OpenAI-resource binnen Azure AI Foundry Models met een
gpt-4
seriemodel dat is geïmplementeerd. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Vereisten voor Microsoft Entra-id
Voor de aanbevolen sleutelloze verificatie met Microsoft Entra-id moet u het volgende doen:
- Installeer de Azure CLI die wordt gebruikt voor sleutelloze verificatie met Microsoft Entra-id.
- Wijs de
Cognitive Services User
rol toe aan uw gebruikersaccount. U kunt rollen toewijzen in Azure Portal onder Toegangsbeheer (IAM)>Roltoewijzing toevoegen.
Inrichten
Maak een nieuwe map
chat-quickstart
en ga naar de snelstartmap met de volgende opdracht:mkdir chat-quickstart && cd chat-quickstart
Maak de
package.json
opdracht met de volgende opdracht:npm init -y
Installeer de OpenAI-clientbibliotheek voor JavaScript met:
npm install openai
Voor de aanbevolen verificatie zonder wachtwoord:
npm install @azure/identity
Resourcegegevens ophalen
U moet de volgende informatie ophalen om uw toepassing te verifiëren met uw Azure OpenAI-resource:
Naam van de variabele | Waarde |
---|---|
AZURE_OPENAI_ENDPOINT |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het controleren van uw resource vanuit Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Deze waarde komt overeen met de aangepaste naam die u hebt gekozen voor uw implementatie toen u een model hebt geïmplementeerd. Deze waarde vindt u onder Resource Management>Model Deployments in Azure Portal. |
OPENAI_API_VERSION |
Meer informatie over API-versies. U kunt de versie in code wijzigen of een omgevingsvariabele gebruiken. |
Meer informatie over sleutelloze verificatie en het instellen van omgevingsvariabelen.
Let op
Als u de aanbevolen sleutelloze verificatie met de SDK wilt gebruiken, moet u ervoor zorgen dat de AZURE_OPENAI_API_KEY
omgevingsvariabele niet is ingesteld.
Een voorbeeldtoepassing maken
Maak het
index.js
bestand met de volgende 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 };
Meld u aan bij Azure met de volgende opdracht:
az login
Voer het JavaScript-bestand uit.
node index.js
Uitvoer
== Chat Completions Sample ==
{
content: 'Yes, several other Azure services also support customer managed keys for enhanced security and control over encryption keys.',
role: 'assistant'
}
Notitie
Als u de fout krijgt: Er is een fout opgetreden: OpenAIError: De apiKey
argumenten sluiten azureADTokenProvider
elkaar wederzijds uit. Er kan slechts één tegelijk worden doorgegeven. Mogelijk moet u een vooraf bestaande omgevingsvariabele voor de API-sleutel uit uw systeem verwijderen. Hoewel het codevoorbeeld microsoft Entra-id niet expliciet verwijst naar de omgevingsvariabele van de API-sleutel, wordt deze fout nog steeds gegenereerd als deze aanwezig is op het systeem dat dit voorbeeld uitvoert.
Opschonen van resources
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
Broncode | Pakket (npm) | Voorbeelden
Notitie
In deze handleiding wordt het nieuwste OpenAI NPM-pakket gebruikt dat nu volledig ondersteuning biedt voor Azure OpenAI. Als u op zoek bent naar codevoorbeelden voor de verouderde Azure OpenAI JavaScript SDK, zijn deze momenteel nog steeds beschikbaar in deze opslagplaats.
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- LTS-versies van Node.js
- TypeScript
- Azure CLI die wordt gebruikt voor verificatie zonder wachtwoord in een lokale ontwikkelomgeving, maakt de benodigde context door u aan te melden met de Azure CLI.
- Een Azure OpenAI-resource binnen Azure AI Foundry Models met een
gpt-4
seriemodel dat is geïmplementeerd. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Vereisten voor Microsoft Entra-id
Voor de aanbevolen sleutelloze verificatie met Microsoft Entra-id moet u het volgende doen:
- Installeer de Azure CLI die wordt gebruikt voor sleutelloze verificatie met Microsoft Entra-id.
- Wijs de
Cognitive Services User
rol toe aan uw gebruikersaccount. U kunt rollen toewijzen in Azure Portal onder Toegangsbeheer (IAM)>Roltoewijzing toevoegen.
Inrichten
Maak een nieuwe map
chat-quickstart
en ga naar de snelstartmap met de volgende opdracht:mkdir chat-quickstart && cd chat-quickstart
Maak de
package.json
opdracht met de volgende opdracht:npm init -y
Werk de
package.json
bij naar ECMAScript met het volgende commando:npm pkg set type=module
Installeer de OpenAI-clientbibliotheek voor JavaScript met:
npm install openai
Voor de aanbevolen verificatie zonder wachtwoord:
npm install @azure/identity
Resourcegegevens ophalen
U moet de volgende informatie ophalen om uw toepassing te verifiëren met uw Azure OpenAI-resource:
Naam van de variabele | Waarde |
---|---|
AZURE_OPENAI_ENDPOINT |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het controleren van uw resource vanuit Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Deze waarde komt overeen met de aangepaste naam die u hebt gekozen voor uw implementatie toen u een model hebt geïmplementeerd. Deze waarde vindt u onder Resource Management>Model Deployments in Azure Portal. |
OPENAI_API_VERSION |
Meer informatie over API-versies. U kunt de versie in code wijzigen of een omgevingsvariabele gebruiken. |
Meer informatie over sleutelloze verificatie en het instellen van omgevingsvariabelen.
Let op
Als u de aanbevolen sleutelloze verificatie met de SDK wilt gebruiken, moet u ervoor zorgen dat de AZURE_OPENAI_API_KEY
omgevingsvariabele niet is ingesteld.
Een voorbeeldtoepassing maken
Maak het
index.ts
bestand met de volgende 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); });
Maak het
tsconfig.json
bestand om de TypeScript-code te transpileren en kopieer de volgende code voor 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"] }
Transpile van TypeScript naar JavaScript.
tsc
Voer de code uit met de volgende opdracht:
node index.js
Uitvoer
== Chat Completions Sample ==
{
content: 'Yes, several other Azure services also support customer managed keys for enhanced security and control over encryption keys.',
role: 'assistant'
}
Notitie
Als u de fout krijgt: Er is een fout opgetreden: OpenAIError: De apiKey
argumenten sluiten azureADTokenProvider
elkaar wederzijds uit. Er kan slechts één tegelijk worden doorgegeven. Mogelijk moet u een vooraf bestaande omgevingsvariabele voor de API-sleutel uit uw systeem verwijderen. Hoewel het codevoorbeeld microsoft Entra-id niet expliciet verwijst naar de omgevingsvariabele van de API-sleutel, wordt deze fout nog steeds gegenereerd als deze aanwezig is op het systeem dat dit voorbeeld uitvoert.
Opschonen van resources
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
Bibliotheekbroncode | Pakket (PyPi) | Retrieval Augmented Generation (RAG) zakelijke chattemplate |
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- Python 3.8 of nieuwere versie.
- De volgende Python-bibliotheken: besturingssysteem.
- Een Azure OpenAI in Azure AI Foundry Models-resource met de
gpt-35-turbo
of degpt-4
geïmplementeerde modellen. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Inrichten
Installeer de OpenAI Python-clientbibliotheek met:
pip install openai
Notitie
Deze bibliotheek wordt onderhouden door OpenAI. Raadpleeg de releasegeschiedenis om de meest recente updates voor de bibliotheek bij te houden.
Sleutel en eindpunt ophalen
Als u azure OpenAI wilt aanroepen, hebt u een eindpunt en een sleutel nodig.
Naam van de variabele | Waarde |
---|---|
ENDPOINT |
Het service-eindpunt vindt u in de sectie Sleutels en eindpunten bij het controleren van uw resource vanuit Azure Portal. U kunt het eindpunt ook vinden via de pagina Implementaties in de Azure AI Foundry-portal. 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 je resource in de Azure Portal. De sectie Sleutels en eindpunt vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1
of KEY2
gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.
Omgevingsvariabelen
Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.
Belangrijk
We raden Microsoft Entra ID-verificatie aan met beheerde identiteiten voor Azure-resources om te voorkomen dat aanmeldgegevens worden opgeslagen door uw toepassingen in de cloud.
Gebruik API-sleutels met voorzichtigheid. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar. Als u API-sleutels gebruikt, slaat u deze veilig op in Azure Key Vault, draait u de sleutels regelmatig en beperkt u de toegang tot Azure Key Vault met behulp van op rollen gebaseerd toegangsbeheer en netwerktoegangsbeperkingen. Zie API-sleutels met Azure Key Vault voor meer informatie over het veilig gebruiken van API-sleutels in uw apps.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Een nieuwe Python-toepassing maken
Maak een nieuw Python-bestand met de naam quickstart.py. Open deze vervolgens in uw favoriete editor of IDE.
Vervang de inhoud van quickstart.py door de volgende code.
U moet de model
variabele instellen op de implementatienaam die u hebt gekozen bij het implementeren van de GPT-3.5-Turbo- of GPT-4-modellen. Als u de modelnaam invoert, treedt er een fout op, tenzij u een implementatienaam hebt gekozen die identiek is aan de naam van het onderliggende model.
import os
from openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-02-01"
)
response = client.chat.completions.create(
model="gpt-35-turbo", # model = "deployment_name".
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
{"role": "user", "content": "Do other Azure 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 dit beveiligingsartikel voor meer informatie over referentiebeveiliging.
Voer de toepassing uit met de
python
opdracht in uw quickstart-bestand:python quickstart.py
Uitvoer
{
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "Yes, most of the Azure 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.
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.
Opschonen van resources
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource verwijderen. Voordat u de resource verwijdert, moet u eerst geïmplementeerde modellen verwijderen.
Volgende stappen
- Meer informatie over het werken met GPT-35-Turbo en de GPT-4-modellen met onze handleiding.
- Aan de slag met de chat met uw eigen gegevensvoorbeeld voor Python
- Bekijk de GitHub-opslagplaats met Azure OpenAI-voorbeelden voor meer voorbeelden
Vereisten
- Een Azure-abonnement: maak er gratis een.
- Een Azure OpenAI in Azure AI Foundry Models-resource met de
gpt-35-turbo
of degpt-4
geïmplementeerde modellen. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Inrichten
Sleutel en eindpunt ophalen
Als u azure OpenAI wilt aanroepen, hebt u een eindpunt en een sleutel nodig.
Naam van de variabele | Waarde |
---|---|
ENDPOINT |
Het service-eindpunt vindt u in de sectie Sleutels en eindpunten bij het controleren van uw resource vanuit Azure Portal. U kunt het eindpunt ook vinden via de pagina Implementaties in de Azure AI Foundry-portal. 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 je resource in de Azure Portal. De sectie Sleutels en eindpunt vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1
of KEY2
gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.
Omgevingsvariabelen
Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.
Belangrijk
We raden Microsoft Entra ID-verificatie aan met beheerde identiteiten voor Azure-resources om te voorkomen dat aanmeldgegevens worden opgeslagen door uw toepassingen in de cloud.
Gebruik API-sleutels met voorzichtigheid. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar. Als u API-sleutels gebruikt, slaat u deze veilig op in Azure Key Vault, draait u de sleutels regelmatig en beperkt u de toegang tot Azure Key Vault met behulp van op rollen gebaseerd toegangsbeheer en netwerktoegangsbeperkingen. Zie API-sleutels met Azure Key Vault voor meer informatie over het veilig gebruiken van API-sleutels in uw apps.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
REST-API
Voer in een bash-shell de volgende opdracht uit. U moet gpt-35-turbo
vervangen door 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 services support this too?"}]}'
De indeling van de eerste regel van de opdracht met een voorbeeld-eindpunt zou er als volgt uitzien curl https://docs-test-001.openai.azure.com/openai/deployments/{YOUR-DEPLOYMENT_NAME_HERE}/chat/completions?api-version=2024-02-01 \
. Controleer bij een foutmelding zorgvuldig of er geen verdubbeling is bij 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 dit beveiligingsartikel 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, 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}]}
De uitvoeropmaak is aangepast voor gemakkelijker lezen; de werkelijke uitvoer is een enkel 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.
Opschonen van resources
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource verwijderen. Voordat u de resource verwijdert, moet u eerst geïmplementeerde modellen verwijderen.
Volgende stappen
- Meer informatie over het werken met GPT-35-Turbo en de GPT-4-modellen met onze handleiding.
- Bekijk de GitHub-opslagplaats met Azure OpenAI-voorbeelden voor meer voorbeelden
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- U kunt de nieuwste versie, PowerShell 7 of Windows PowerShell 5.1 gebruiken.
- Een Azure OpenAI in Azure AI Foundry Models-resource met een geïmplementeerd model. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
- Een Azure OpenAI-resource met het model
gpt-4o
geïmplementeerd. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
Vereisten voor Microsoft Entra-id
Voor de aanbevolen sleutelloze verificatie met Microsoft Entra-id moet u het volgende doen:
- Installeer de Azure CLI die wordt gebruikt voor sleutelloze verificatie met Microsoft Entra-id.
- Wijs de
Cognitive Services User
rol toe aan uw gebruikersaccount. U kunt rollen toewijzen in Azure Portal onder Toegangsbeheer (IAM)>Roltoewijzing toevoegen.
Resourcegegevens ophalen
U moet de volgende informatie ophalen om uw toepassing te verifiëren met uw Azure OpenAI-resource:
Naam van de variabele | Waarde |
---|---|
AZURE_OPENAI_ENDPOINT |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het controleren van uw resource vanuit Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Deze waarde komt overeen met de aangepaste naam die u hebt gekozen voor uw implementatie toen u een model hebt geïmplementeerd. Deze waarde vindt u onder Resource Management>Model Deployments in Azure Portal. |
OPENAI_API_VERSION |
Meer informatie over API-versies. U kunt de versie in code wijzigen of een omgevingsvariabele gebruiken. |
Meer informatie over sleutelloze verificatie en het instellen van omgevingsvariabelen.
Een nieuw PowerShell-script maken
Meld u met de volgende opdracht aan bij Azure voor de aanbevolen sleutelloze verificatie met Microsoft Entra ID:
az login
Maak een nieuw PowerShell-bestand met de naamquickstart.ps1. Open deze vervolgens in uw favoriete editor of IDE.
Vervang de inhoud van quickstart.ps1 door de volgende code. U moet de
engine
variabele instellen op de implementatienaam die u hebt gekozen bij het implementeren van het GPT-4o-model. 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_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
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 dit beveiligingsartikel voor meer informatie over referentiebeveiliging.
Voer het script uit met behulp van PowerShell. In dit voorbeeld gebruiken we de
-Depth
parameter om ervoor te zorgen dat de uitvoer niet wordt afgekapt../quickstart.ps1 | ConvertTo-Json -Depth 4
Uitvoer
De uitvoer van het script is een JSON-object dat het antwoord van de Azure OpenAI bevat. De uitvoer ziet er ongeveer als volgt uit:
{
"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
}
}
Opmerkingen
U kunt de ConvertTo-Json
stap overslaan als u de onbewerkte uitvoer wilt zien.
./quickstart.ps1
De uitvoer ziet er als volgt uit:
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}
U kunt de inhoud van het powershell.ps1 script bewerken om het hele object of een specifieke eigenschap te retourneren. Als u bijvoorbeeld de geretourneerde tekst wilt retourneren, kunt u de laatste regel van het script (return $response
) vervangen door het volgende:
return $response.choices.message.content
Voer vervolgens het script opnieuw uit.
./quickstart.ps1
De uitvoer ziet er als volgt uit:
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?
Informatie over de berichtstructuur
De 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-4 biedt een uitgebreide inleiding tot de opties voor het communiceren met deze modellen.
Opschonen van resources
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource verwijderen. Voordat u de resource verwijdert, moet u eerst geïmplementeerde modellen verwijderen.
Volgende stappen
- Meer informatie over het werken met de GPT-4-modellen met onze handleiding.
- Bekijk de GitHub-opslagplaats met Azure OpenAI-voorbeelden voor meer voorbeelden