Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk az Azure OpenAI használatának első lépéseit ismerteti.
Előfeltételek
- Azure-előfizetés – Hozzon létre egyet ingyenesen.
- Azure OpenAI az Azure AI Foundry Models erőforrásban az egyik modell, vagy
gpt-4o
, vagygpt-4o-mini
, került üzembe helyezésre. Javasoljuk, hogy a kezdeti feltáráshoz standard vagy globális standard modelltelepítési típusokat használjunk. A modellek üzembe helyezéséről a modellek üzembe helyezésének ismertetőjében talál további információt.
Ugrás az Azure AI Foundryre
Lépjen az Azure AI Foundry portálra , és jelentkezzen be olyan hitelesítő adatokkal, amelyek hozzáférnek az Azure OpenAI-erőforráshoz. A bejelentkezési munkafolyamat során vagy után válassza ki a megfelelő könyvtárat, Azure-előfizetést és Azure OpenAI-erőforrást.
Az Azure AI Foundryben válassza a Csevegési játszótér lehetőséget.
Játszótér
Az Azure AI Foundry Chat-játszótéren kód nélküli megközelítéssel ismerkedhet meg az Azure OpenAI képességeivel. Ezen a lapon gyorsan iterálhat és kísérletezhet a képességekkel.
Beállítás
A *Prompt-minták legördülő listából választhat néhány előre betöltött rendszerüzenet-példát az első lépésekhez.
A rendszerüzenetek útmutatást adnak a modellnek arról, hogyan kell viselkednie, és minden olyan környezetet, amelyre a válasz létrehozásakor hivatkoznia kell. Leírhatja a segéd személyiségét, megmondhatja, hogy mit kell és mit nem szabad megválaszolnia, és megadhatja, hogyan formázza a válaszokat.
A csevegési játszótér használata közben bármikor kiválaszthatja a Kód megtekintése lehetőséget a Python-, curl- és json-kódminták előzetes feltöltéséhez az aktuális csevegési munkamenet és beállítások kiválasztása alapján. Ezután használhatja ezt a kódot, és írhat egy alkalmazást, hogy elvégezze ugyanazt a feladatot, amit éppen a játszótéren végez.
Csevegési munkamenet
Az Enter gombra kattintva vagy a jobbra mutató nyíl ikonra kattintva elküldi a beírt szöveget a csevegés befejezése API-nak, és az eredmények visszakerülnek a szövegmezőbe.
Válassza a Csevegés törlése gombot az aktuális beszélgetési előzmények törléséhez.
Kulcsbeállítások
Név | Leírás |
---|---|
Központi telepítés | Az Ön környezetének adott modellhez társított neve. |
Adatok hozzáadása | |
Paraméterek | A modell válaszait módosító egyéni paraméterek. A kezdéskor javasoljuk, hogy a legtöbb paraméterhez használja az alapértelmezett értékeket |
Hőmérséklet | Szabályozza a véletlenszerűséget. A hőmérséklet csökkentése azt jelenti, hogy a modell több ismétlődő és determinisztikus választ ad. A hőmérséklet növelése váratlanabb vagy kreatívabb válaszokat eredményez. Próbálja meg beállítani a hőmérsékletet vagy a Felső P értéket, de mindkettőt nem. |
Maximális válasz (jogkivonatok) | Állítsa be a modellválaszonkénti jogkivonatok számának korlátját. A legújabb modellek API-ja legfeljebb 128 000 jogkivonatot támogat a parancssor (beleértve a rendszerüzeneteket, példákat, üzenetelőzményeket és felhasználói lekérdezéseket) és a modell válasza között. Az egyik jogkivonat nagyjából négy karakterből áll a tipikus angol szöveghez. |
Felső p | A hőmérséklethez hasonlóan ez szabályozza a véletlenszerűséget, de más módszert használ. A Felső P leengedése a modell jogkivonat-kiválasztását a hasonlóbb jogkivonatokra szűkíti. A Top P növelése lehetővé teszi, hogy a modell magas és alacsony valószínűségű jogkivonatok közül válasszon. Próbálja meg beállítani a hőmérsékletet vagy a Felső P értéket, de mindkettőt nem. |
Sorozatok leállítása | A leállítási sorrendnek köszönhetően a modell egy kívánt ponton fejezi be a válaszát. A modell válasza a megadott szekvencia előtt ér véget, így nem tartalmazza a leállítási sorrend szövegét. GPT-35-Turbo esetén a modell válaszának használatával <|im_end|> nem jön létre követő felhasználói lekérdezés. Akár négy leállási sorozatot is felvehet. |
Kód megtekintése
Miután kísérletezett a modellel folytatott csevegéssel, válassza a </> Kód megtekintése gombot. Ez az eddigi beszélgetés mögötti kód újrajátszását teszi lehetővé:
A parancssori struktúra ismertetése
Ha megvizsgálja a view code-ból származó mintát, láthatja, hogy a beszélgetés három különböző szerepkörre system
oszlik, user
assistant
a . Minden alkalommal, amikor üzenetet küld a modellnek, a teljes beszélgetési előzmény jelenik meg az adott pontig. A csevegés befejezésének API használatakor a modell nem rendelkezik valódi memóriával arról, amit a múltban küldött neki, így meg kell adnia a környezet beszélgetési előzményeit, hogy a modell megfelelően válaszolhasson.
A csevegés befejezésének útmutatója részletesen bemutatja az új parancssori struktúrát és a csevegés-kiegészítési modellek hatékony használatát.
A modell üzembe helyezése
Ha elégedett a felhasználói felülettel, közvetlenül a portálról telepítheti a webalkalmazást az Üzembe helyezés gombra kattintva.
Ez lehetővé teszi, hogy önálló webalkalmazásban, vagy a Copilot Studióban (előzetes verzió) telepítsen egy copilotot, ha saját adatokat használ a modellen.
Ha például egy webalkalmazás üzembe helyezését választja:
A webalkalmazás első üzembe helyezésekor válassza az Új webalkalmazás létrehozása lehetőséget. Válasszon egy nevet az alkalmazásnak, amely az alkalmazás URL-címének része lesz. Például: https://<appname>.azurewebsites.net
.
Válassza ki a közzétett alkalmazás előfizetését, erőforráscsoportját, helyét és díjszabási csomagját. Meglévő alkalmazás frissítéséhez válassza a Közzététel egy meglévő webalkalmazásban lehetőséget, és válassza ki az előző alkalmazás nevét a legördülő menüből.
Ha úgy dönt, hogy üzembe helyez egy webalkalmazást, tekintse meg a használatának fontos szempontjait .
Az erőforrások eltávolítása
Ha végzett a csevegési játszótér tesztelésével, ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.
Következő lépések
- További információ az új
gpt-35-turbo
modell használatáról a GPT-35-Turbo & GPT-4 útmutatóval. - További példákért tekintse meg az Azure OpenAI-minták GitHub-adattárát
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- A .NET 7 SDK
- Egy Azure OpenAI modell, amely az Azure AI Foundry Models erőforrásban van üzembe helyezve a
gpt-4o
modell segítségével. A modellek üzembe helyezéséről a modellek üzembe helyezésének ismertetőjében talál további információt.
A Microsoft Entra ID előfeltételei
A Microsoft Entra-azonosítóval javasolt kulcs nélküli hitelesítéshez a következőket kell elvégeznie:
- Telepítse a Kulcs nélküli hitelesítéshez használt Azure CLI-t a Microsoft Entra-azonosítóval.
- Rendelje hozzá a szerepkört
Cognitive Services User
a felhasználói fiókjához. Szerepköröket az Azure Portalon rendelhet hozzá a Hozzáférés-vezérlés (IAM)>Szerepkör-hozzárendelés hozzáadása területen.
Beállítás
Hozzon létre egy új mappát
chat-quickstart
, és lépjen a rövid útmutató mappába a következő paranccsal:mkdir chat-quickstart && cd chat-quickstart
Hozzon létre egy új konzolalkalmazást a következő paranccsal:
dotnet new console
Telepítse az OpenAI .NET ügyfélkódtárat a dotnet add package paranccsal:
dotnet add package Azure.AI.OpenAI --prerelease
A Microsoft Entra ID-val javasolt kulcs nélküli hitelesítéshez telepítse az Azure.Identity csomagot a következőkkel:
dotnet add package Azure.Identity
A Microsoft Entra ID-val javasolt kulcs nélküli hitelesítéshez jelentkezzen be az Azure-ba a következő paranccsal:
az login
Erőforrásadatok lekérése
Az alkalmazás Azure OpenAI-erőforrással való hitelesítéséhez le kell kérnie a következő adatokat:
További információ a kulcs nélküli hitelesítésről és a környezeti változók beállításáról.
A gyors kezdés futtatása
A rövid útmutatóban szereplő mintakód a Microsoft Entra-azonosítót használja az ajánlott kulcs nélküli hitelesítéshez. Ha inkább API-kulcsot szeretne használni, lecserélheti az DefaultAzureCredential
objektumot egy AzureKeyCredential
objektumra.
AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
A csevegés befejezéséhez használhat streamelést vagy nem streamelést. Az alábbi példakód bemutatja, hogyan használhatja mindkét metódust. Az első példa bemutatja, hogyan használható a nem streamelési módszer, a második példa pedig a streamelési módszer használatát mutatja be.
Válaszstreamelés nélkül
A gyorstalpaló futtatásához kövesse az alábbi lépéseket:
Cserélje le a
Program.cs
tartalmát a következő kóddal és frissítse a helyőrző értékeket a sajátjára.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}");
Futtassa az alkalmazást a következő paranccsal:
dotnet run
Hozam
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!
Ez megvárja, amíg a modell a teljes választ generálja az eredmények nyomtatása előtt. Ha aszinkron módon szeretné streamelni a választ, és ki szeretné nyomtatni az eredményeket, a következő példában lecserélheti a Program.cs tartalmát a kódra.
Aszinkron streameléssel
A gyorstalpaló futtatásához kövesse az alábbi lépéseket:
Cserélje le a
Program.cs
tartalmát a következő kóddal és frissítse a helyőrző értékeket a sajátjára.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); } }
Futtassa az alkalmazást a következő paranccsal:
dotnet run
Hozam
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!
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást. Az erőforrás törlése előtt törölnie kell az üzembe helyezett modelleket.
Következő lépések
- Ismerkedés a csevegéssel a .NET-hez készült saját adatmintával
- További példákért tekintse meg az Azure OpenAI-minták GitHub-adattárát
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- Helyileg telepített 1.21.0-s vagy újabb verzió.
- Egy Azure OpenAI modell, amely az Azure AI Foundry Models erőforrásban van üzembe helyezve a
gpt-4
modell segítségével. A modellek üzembe helyezéséről a modellek üzembe helyezésének ismertetőjében talál további információt.
A Microsoft Entra ID előfeltételei
A Microsoft Entra-azonosítóval javasolt kulcs nélküli hitelesítéshez a következőket kell elvégeznie:
- Telepítse a Kulcs nélküli hitelesítéshez használt Azure CLI-t a Microsoft Entra-azonosítóval.
- Rendelje hozzá a szerepkört
Cognitive Services User
a felhasználói fiókjához. Szerepköröket az Azure Portalon rendelhet hozzá a Hozzáférés-vezérlés (IAM)>Szerepkör-hozzárendelés hozzáadása területen.
Beállítás
Hozzon létre egy új mappát
chat-quickstart
, és lépjen a rövid útmutató mappába a következő paranccsal:mkdir chat-quickstart && cd chat-quickstart
A Microsoft Entra ID-val javasolt kulcs nélküli hitelesítéshez jelentkezzen be az Azure-ba a következő paranccsal:
az login
Erőforrásadatok lekérése
Az alkalmazás Azure OpenAI-erőforrással való hitelesítéséhez le kell kérnie a következő adatokat:
További információ a kulcs nélküli hitelesítésről és a környezeti változók beállításáról.
A gyors kezdés futtatása
A rövid útmutatóban szereplő mintakód a Microsoft Entra-azonosítót használja az ajánlott kulcs nélküli hitelesítéshez. Ha inkább API-kulcsot szeretne használni, lecserélheti az implementációt a NewDefaultAzureCredential
következőre NewKeyCredential
: .
azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
credential, err := azidentity.NewDefaultAzureCredential(nil)
client, err := azopenai.NewClient(azureOpenAIEndpoint, credential, nil)
A minta futtatásához:
Hozzon létre egy chat_completions_keyless.go nevű új fájlt. Másolja a következő kódot a chat_completions_keyless.go fájlba .
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") } }
Futtassa a következő parancsot egy új Go-modul létrehozásához:
go mod init chat_completions_keyless.go
A szükséges függőségek telepítéséhez futtassa
go mod tidy
.go mod tidy
Futtassa a következő parancsot a minta futtatásához:
go run chat_completions_keyless.go
Hozam
A mintakód kimenete a következőhöz hasonlóan néz ki:
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
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást. Az erőforrás törlése előtt törölnie kell az üzembe helyezett modelleket.
Következő lépések
További példákért tekintse meg az Azure OpenAI-minták GitHub-adattárát
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- A Gradle buildelési eszköz vagy egy másik függőségkezelő.
- Egy Azure OpenAI modell, amely az Azure AI Foundry Models erőforrásban van üzembe helyezve a
gpt-4
modell segítségével. A modellek üzembe helyezéséről a modellek üzembe helyezésének ismertetőjében talál további információt.
A Microsoft Entra ID előfeltételei
A Microsoft Entra-azonosítóval javasolt kulcs nélküli hitelesítéshez a következőket kell elvégeznie:
- Telepítse a Kulcs nélküli hitelesítéshez használt Azure CLI-t a Microsoft Entra-azonosítóval.
- Rendelje hozzá a szerepkört
Cognitive Services User
a felhasználói fiókjához. Szerepköröket az Azure Portalon rendelhet hozzá a Hozzáférés-vezérlés (IAM)>Szerepkör-hozzárendelés hozzáadása területen.
Beállítás
Hozzon létre egy új mappát
chat-quickstart
, és lépjen a rövid útmutató mappába a következő paranccsal:mkdir chat-quickstart && cd chat-quickstart
Telepítse az Apache Maven-t. Ezután futtassa
mvn -v
a sikeres telepítés megerősítéséhez.Hozzon létre egy új
pom.xml
fájlt a projekt gyökerében, és másolja bele a következő kódot:<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>
Telepítse az Azure OpenAI SDK-t és a függőségeket.
mvn clean dependency:copy-dependencies
A Microsoft Entra ID-val javasolt kulcs nélküli hitelesítéshez jelentkezzen be az Azure-ba a következő paranccsal:
az login
Erőforrásadatok lekérése
Az alkalmazás Azure OpenAI-erőforrással való hitelesítéséhez le kell kérnie a következő adatokat:
További információ a kulcs nélküli hitelesítésről és a környezeti változók beállításáról.
Az alkalmazás futtatása
A rövid útmutatóban szereplő mintakód a Microsoft Entra-azonosítót használja az ajánlott kulcs nélküli hitelesítéshez. Ha inkább API-kulcsot szeretne használni, lecserélheti az DefaultAzureCredential
objektumot egy AzureKeyCredential
objektumra.
OpenAIClient client = new OpenAIClientBuilder()
.endpoint(endpoint)
.credential(new DefaultAzureCredentialBuilder().build())
.buildAsyncClient();
Az alábbi lépéseket követve hozzon létre egy konzolalkalmazást a beszédfelismeréshez.
Hozzon létre egy Quickstart.java nevű új fájlt ugyanabban a projekt gyökérkönyvtárában.
Másolja a következő kódot a 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()); } }
Lemezkép létrehozásához futtassa az új konzolalkalmazást:
javac Quickstart.java -cp ".;target\dependency\*" java -cp ".;target\dependency\*" Quickstart
Hozam
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.
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást. Az erőforrás törlése előtt törölnie kell az üzembe helyezett modelleket.
Következő lépések
- Ismerkedés a csevegéssel a Java-hoz készült saját adatmintával
- További példákért tekintse meg az Azure OpenAI-minták GitHub-adattárát
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- A Java Development Kit (JDK) aktuális verziója
- A Spring Boot CLI-eszköz
- Egy Azure OpenAI modell, amely az Azure AI Foundry Models erőforrásban van üzembe helyezve a
gpt-4
modell segítségével. A modellek üzembe helyezéséről a modellek üzembe helyezésének ismertetőjében talál további információt. Ez a példa feltételezi, hogy az üzemelő példány neve megegyezik a modell nevévelgpt-4
Beállítás
Kulcs és végpont lekérése
Az Azure OpenAI-ra való sikeres híváshoz egy végpontra és egy kulcsra van szükség.
Változó neve | Érték |
---|---|
ENDPOINT |
A szolgáltatásvégpont a Kulcsok > Végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A végpontot az Azure AI Foundry portál Üzembe helyezések lapján is megtalálhatja. Példavégpont: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. A következők bármelyikét használhatja: KEY1 vagy KEY2 . |
Nyissa meg az erőforrást az Azure Portalon. A Kulcsok > végpont szakasz az Erőforrás-kezelés szakaszban található. Másolja ki a végpontot és a hozzáférési kulcsot, mivel mindkettőre szüksége lesz az API-hívások hitelesítéséhez. A következők bármelyikét használhatja: KEY1
vagy KEY2
. A két kulcs mindig lehetővé teszi a kulcsok biztonságos elforgatását és újragenerálását anélkül, hogy szolgáltatáskimaradást okoz.
Környezeti változók
Állandó környezeti változók létrehozása és hozzárendelése a kulcshoz és a végponthoz.
Fontos
Óvatosan használja az API-kulcsokat. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan. HA API-kulcsot használ, biztonságosan tárolja az Azure Key Vaultban. További információ az API-kulcsok biztonságos használatáról az alkalmazásokban: API-kulcsok az Azure Key Vaulttal.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
Feljegyzés
A Spring AI alapértelmezés szerint a modell nevét adja meg gpt-35-turbo
. Csak akkor kell megadni az SPRING_AI_AZURE_OPENAI_MODEL
értéket, ha egy másik nevű modellt telepített.
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"
Új Spring-alkalmazás létrehozása
Hozzon létre egy új Spring-projektet.
Egy Bash-ablakban hozzon létre egy új könyvtárat az alkalmazáshoz, és navigáljon hozzá.
mkdir ai-chat-demo && cd ai-chat-demo
Futtassa a spring init
parancsot a munkakönyvtárból. Ez a parancs létrehoz egy standard könyvtárstruktúrát a Spring-projekthez, beleértve a fő Java-osztály forrásfájlját és a Maven-alapú projektek kezeléséhez használt pom.xml fájlt.
spring init -a ai-chat-demo -n AIChat --force --build maven -x
A létrehozott fájlok és mappák a következő struktúrához hasonlítanak:
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-alkalmazás szerkesztése
Szerkessze a pom.xml fájlt.
A projektkönyvtár gyökeréből nyissa meg a pom.xml fájlt az előnyben részesített szerkesztőben vagy IDE-ben, és írja felül a fájlt a következő tartalommal:
<?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>
Az src/main/java/com/example/aichatdemo mappában nyissa meg a AiChatApplication.java az előnyben részesített szerkesztőben vagy IDE-ben, és illessze be a következő kódot:
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); }; } }
Fontos
Éles környezetben biztonságos módon tárolhatja és érheti el a hitelesítő adatait, például az Azure Key Vaultot. A hitelesítő adatok biztonságáról további információt ebben a biztonsági cikkben talál.
Lépjen vissza a projekt gyökérmappájához, és futtassa az alkalmazást az alábbi paranccsal:
./mvnw spring-boot:run
Hozam
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: 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.
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást. Az erőforrás törlése előtt törölnie kell az üzembe helyezett modelleket.
Következő lépések
További példákért tekintse meg az Azure OpenAI-minták GitHub-adattárát
Feljegyzés
Ez az útmutató a legújabb OpenAI npm-csomagot használja, amely mostantól teljes mértékben támogatja az Azure OpenAI-t. Ha az örökölt Azure OpenAI JavaScript SDK-hoz keres példakódokat, azok jelenleg is elérhetők ebben az adattárban.
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- A Node.js LTS-verziói
- A helyi fejlesztési környezetben a jelszó nélküli hitelesítéshez használt Azure CLI az Azure CLI-vel való bejelentkezéssel hozza létre a szükséges környezetet.
- Azure OpenAI az Azure AI Foundry Models erőforrásban egy
gpt-4
sorozatmodell telepítésével rendelkezik. A modellek üzembe helyezéséről a modellek üzembe helyezésének ismertetőjében talál további információt.
A Microsoft Entra ID előfeltételei
A Microsoft Entra-azonosítóval javasolt kulcs nélküli hitelesítéshez a következőket kell elvégeznie:
- Telepítse a Kulcs nélküli hitelesítéshez használt Azure CLI-t a Microsoft Entra-azonosítóval.
- Rendelje hozzá a szerepkört
Cognitive Services User
a felhasználói fiókjához. Szerepköröket az Azure Portalon rendelhet hozzá a Hozzáférés-vezérlés (IAM)>Szerepkör-hozzárendelés hozzáadása területen.
Beállítás
Hozzon létre egy új mappát
chat-quickstart
, és lépjen a rövid útmutató mappába a következő paranccsal:mkdir chat-quickstart && cd chat-quickstart
Hozza létre a
package.json
következő paranccsal:npm init -y
Telepítse a JavaScripthez készült OpenAI ügyfélkódtárat a következőkkel:
npm install openai
Az ajánlott jelszó nélküli hitelesítéshez:
npm install @azure/identity
Erőforrásadatok lekérése
Az alkalmazás Azure OpenAI-erőforrással való hitelesítéséhez le kell kérnie a következő adatokat:
További információ a kulcs nélküli hitelesítésről és a környezeti változók beállításáról.
Figyelemfelhívás
Ha az ajánlott kulcs nélküli hitelesítést szeretné használni az SDK-val, győződjön meg arról, hogy a AZURE_OPENAI_API_KEY
környezeti változó nincs beállítva.
Mintaalkalmazás létrehozása
Hozza létre a
index.js
fájlt a következő kóddal: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 };
Jelentkezzen be az Azure-ba a következő paranccsal:
az login
Futtassa a JavaScript-fájlt.
node index.js
Hozam
== Chat Completions Sample ==
{
content: 'Yes, several other Azure services also support customer managed keys for enhanced security and control over encryption keys.',
role: 'assistant'
}
Feljegyzés
Ha a következő hibaüzenet jelenik meg: Hiba történt: OpenAIError: Az apiKey
és azureADTokenProvider
az argumentumok kölcsönösen kizárják egymást, egyszerre csak egy adható át. Előfordulhat, hogy el kell távolítania egy már használt környezeti változót az API-kulcshoz a rendszerből. Annak ellenére, hogy a Microsoft Entra-azonosító kódmintája nem hivatkozik explicit módon az API-kulcs környezeti változójára, ha van ilyen a mintát végrehajtó rendszeren, ez a hiba továbbra is létrejön.
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást. Az erőforrás törlése előtt törölnie kell az üzembe helyezett modelleket.
Következő lépések
- Az Azure OpenAI áttekintése
- Ismerkedés a csevegéssel a JavaScripthez készült saját adatmintával
- További példákért tekintse meg az Azure OpenAI-minták GitHub-adattárát
Feljegyzés
Ez az útmutató a legújabb OpenAI npm-csomagot használja, amely mostantól teljes mértékben támogatja az Azure OpenAI-t. Ha az örökölt Azure OpenAI JavaScript SDK-hoz keres példakódokat, azok jelenleg is elérhetők ebben az adattárban.
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- A Node.js LTS-verziói
- TypeScript
- A helyi fejlesztési környezetben a jelszó nélküli hitelesítéshez használt Azure CLI az Azure CLI-vel való bejelentkezéssel hozza létre a szükséges környezetet.
- Azure OpenAI az Azure AI Foundry Models erőforrásban egy
gpt-4
sorozatmodell telepítésével rendelkezik. A modellek üzembe helyezéséről a modellek üzembe helyezésének ismertetőjében talál további információt.
A Microsoft Entra ID előfeltételei
A Microsoft Entra-azonosítóval javasolt kulcs nélküli hitelesítéshez a következőket kell elvégeznie:
- Telepítse a Kulcs nélküli hitelesítéshez használt Azure CLI-t a Microsoft Entra-azonosítóval.
- Rendelje hozzá a szerepkört
Cognitive Services User
a felhasználói fiókjához. Szerepköröket az Azure Portalon rendelhet hozzá a Hozzáférés-vezérlés (IAM)>Szerepkör-hozzárendelés hozzáadása területen.
Beállítás
Hozzon létre egy új mappát
chat-quickstart
, és lépjen a rövid útmutató mappába a következő paranccsal:mkdir chat-quickstart && cd chat-quickstart
Hozza létre a
package.json
következő paranccsal:npm init -y
Frissítse a
package.json
ECMAScriptre a következő paranccsal:npm pkg set type=module
Telepítse a JavaScripthez készült OpenAI ügyfélkódtárat a következőkkel:
npm install openai
Az ajánlott jelszó nélküli hitelesítéshez:
npm install @azure/identity
Erőforrásadatok lekérése
Az alkalmazás Azure OpenAI-erőforrással való hitelesítéséhez le kell kérnie a következő adatokat:
További információ a kulcs nélküli hitelesítésről és a környezeti változók beállításáról.
Figyelemfelhívás
Ha az ajánlott kulcs nélküli hitelesítést szeretné használni az SDK-val, győződjön meg arról, hogy a AZURE_OPENAI_API_KEY
környezeti változó nincs beállítva.
Mintaalkalmazás létrehozása
Hozza létre a
index.ts
fájlt a következő kóddal: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); });
Hozza létre a fájlt a
tsconfig.json
TypeScript-kód fordításához, és másolja a következő kódot az ECMAScripthez.{ "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"] }
Transpilálás TypeScriptről JavaScriptre.
tsc
Futtassa a kódot a következő paranccsal:
node index.js
Hozam
== Chat Completions Sample ==
{
content: 'Yes, several other Azure services also support customer managed keys for enhanced security and control over encryption keys.',
role: 'assistant'
}
Feljegyzés
Ha a következő hibaüzenet jelenik meg: Hiba történt: OpenAIError: Az apiKey
és azureADTokenProvider
az argumentumok kölcsönösen kizárják egymást, egyszerre csak egy adható át. Előfordulhat, hogy el kell távolítania egy már használt környezeti változót az API-kulcshoz a rendszerből. Annak ellenére, hogy a Microsoft Entra-azonosító kódmintája nem hivatkozik explicit módon az API-kulcs környezeti változójára, ha van ilyen a mintát végrehajtó rendszeren, ez a hiba továbbra is létrejön.
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást. Az erőforrás törlése előtt törölnie kell az üzembe helyezett modelleket.
Következő lépések
- Az Azure OpenAI áttekintése
- További példákért tekintse meg az Azure OpenAI-minták GitHub-adattárát
Kódtár forráskódcsomagja (PyPi) | |
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- Python 3.8 vagy újabb verzió.
- A következő Python-kódtárak: operációs rendszer.
- Egy Azure OpenAI erőforrás az Azure AI Foundry Models-ban a
gpt-35-turbo
vagygpt-4
modellek egyikével telepítve. A modellek üzembe helyezéséről a modellek üzembe helyezésének ismertetőjében talál további információt.
Beállítás
Telepítse az OpenAI Python ügyfélkódtárat a következőkkel:
pip install openai
Feljegyzés
Ezt a könyvtárat az OpenAI tartja karban. A kódtár legújabb frissítéseinek nyomon követéséhez tekintse meg a kiadási előzményeket.
Kulcs és végpont lekérése
Az Azure OpenAI-ra való sikeres híváshoz egy végpontra és egy kulcsra van szükség.
Változó neve | Érték |
---|---|
ENDPOINT |
A szolgáltatásvégpont a Kulcsok > Végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A végpontot az Azure AI Foundry portál Üzembe helyezések lapján is megtalálhatja. Példavégpont: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. A következők bármelyikét használhatja: KEY1 vagy KEY2 . |
Nyissa meg az erőforrást az Azure Portalon. A Kulcsok > végpont szakasz az Erőforrás-kezelés szakaszban található. Másolja ki a végpontot és a hozzáférési kulcsot, mivel mindkettőre szüksége lesz az API-hívások hitelesítéséhez. A következők bármelyikét használhatja: KEY1
vagy KEY2
. A két kulcs mindig lehetővé teszi a kulcsok biztonságos elforgatását és újragenerálását anélkül, hogy szolgáltatáskimaradást okoz.
Környezeti változók
Állandó környezeti változók létrehozása és hozzárendelése a kulcshoz és a végponthoz.
Fontos
Az Azure-erőforrásokhoz tartozó felügyelt identitásokkal rendelkező Microsoft Entra ID-hitelesítést javasoljuk, hogy ne tárolja a hitelesítő adatokat a felhőben futó alkalmazásokkal.
Óvatosan használja az API-kulcsokat. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan. API-kulcsok használata esetén biztonságosan tárolhatja őket az Azure Key Vaultban, rendszeresen elforgathatja a kulcsokat, és szerepköralapú hozzáférés-vezérléssel és hálózati hozzáférés-korlátozásokkal korlátozhatja az Azure Key Vaulthoz való hozzáférést. További információ az API-kulcsok biztonságos használatáról az alkalmazásokban: API-kulcsok az Azure Key Vaulttal.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Új Python-alkalmazás létrehozása
Hozzon létre egy új Python-fájlt quickstart.py néven. Ezután nyissa meg a kívánt szerkesztőben vagy IDE-ben.
Cserélje le a quickstart.py tartalmát a következő kódra.
A változót a model
GPT-3.5-Turbo vagy GPT-4 modellek üzembe helyezésekor választott üzembe helyezési névre kell állítania. A modell nevének megadása hibaüzenetet eredményez, kivéve, ha az alapul szolgáló modell nevével azonos központi telepítési nevet választott.
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)
Fontos
Éles környezetben biztonságos módon tárolhatja és érheti el a hitelesítő adatait, például az Azure Key Vaultot. A hitelesítő adatok biztonságáról további információt ebben a biztonsági cikkben talál.
Futtassa az alkalmazást a
python
gyorsútmutató-fájlban található paranccsal:python quickstart.py
Hozam
{
"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.
Az üzenetstruktúra ismertetése
A GPT-35-Turbo és a GPT-4 modellek úgy vannak optimalizálva, hogy beszélgetésként formázott bemenetekkel működjenek. A messages
változó különböző szerepkörökkel rendelkező szótártömböt ad át a rendszer, a felhasználó és az asszisztens által meghatározott beszélgetésben. A rendszerüzenet a modell beállításához használható a környezet vagy a modell válaszára vonatkozó utasítások megadásával.
A GPT-35-Turbo &GPT-4 útmutató részletes bevezetést nyújt az új modellekkel való kommunikáció lehetőségeibe.
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást. Az erőforrás törlése előtt törölnie kell az üzembe helyezett modelleket.
Következő lépések
- Útmutatónkból többet is megtudhat a GPT-35-Turbo és a GPT-4 modellek használatáról.
- Ismerkedés a csevegéssel a Pythonhoz készült saját adatmintával
- További példákért tekintse meg az Azure OpenAI-minták GitHub-adattárát
Előfeltételek
- Azure-előfizetés – Hozzon létre egyet ingyenesen.
- Egy Azure OpenAI erőforrás az Azure AI Foundry Models-ban a
gpt-35-turbo
vagygpt-4
modellek egyikével telepítve. A modellek üzembe helyezéséről a modellek üzembe helyezésének ismertetőjében talál további információt.
Beállítás
Kulcs és végpont lekérése
Az Azure OpenAI-ra való sikeres híváshoz egy végpontra és egy kulcsra van szükség.
Változó neve | Érték |
---|---|
ENDPOINT |
A szolgáltatásvégpont a Kulcsok > Végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A végpontot az Azure AI Foundry portál Üzembe helyezések lapján is megtalálhatja. Példavégpont: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. A következők bármelyikét használhatja: KEY1 vagy KEY2 . |
Nyissa meg az erőforrást az Azure Portalon. A Kulcsok > végpont szakasz az Erőforrás-kezelés szakaszban található. Másolja ki a végpontot és a hozzáférési kulcsot, mivel mindkettőre szüksége lesz az API-hívások hitelesítéséhez. A következők bármelyikét használhatja: KEY1
vagy KEY2
. A két kulcs mindig lehetővé teszi a kulcsok biztonságos elforgatását és újragenerálását anélkül, hogy szolgáltatáskimaradást okoz.
Környezeti változók
Állandó környezeti változók létrehozása és hozzárendelése a kulcshoz és a végponthoz.
Fontos
Az Azure-erőforrásokhoz tartozó felügyelt identitásokkal rendelkező Microsoft Entra ID-hitelesítést javasoljuk, hogy ne tárolja a hitelesítő adatokat a felhőben futó alkalmazásokkal.
Óvatosan használja az API-kulcsokat. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan. API-kulcsok használata esetén biztonságosan tárolhatja őket az Azure Key Vaultban, rendszeresen elforgathatja a kulcsokat, és szerepköralapú hozzáférés-vezérléssel és hálózati hozzáférés-korlátozásokkal korlátozhatja az Azure Key Vaulthoz való hozzáférést. További információ az API-kulcsok biztonságos használatáról az alkalmazásokban: API-kulcsok az Azure Key Vaulttal.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
REST API
Bash-rendszerhéjban futtassa a következő parancsot. A GPT-35-Turbo vagy GPT-4 modellek üzembe helyezésekor a választott üzembe helyezési nevet kell lecserélnie gpt-35-turbo
. A modell nevének megadása hibaüzenetet eredményez, kivéve, ha az alapul szolgáló modell nevével azonos központi telepítési nevet választott.
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?"}]}'
A parancs első sorának formátuma egy példavégponttal a következőképpen curl https://docs-test-001.openai.azure.com/openai/deployments/{YOUR-DEPLOYMENT_NAME_HERE}/chat/completions?api-version=2024-02-01 \
jelenik meg, ha kettős hibaellenőrzést tapasztal, hogy ne legyen megkettőzve a /
végpont és /openai/deployments
a végpont elválasztásakor.
Ha ezt a parancsot egy normál Windows-parancssorban szeretné futtatni, módosítania kell a szöveget a sortörések és a \
sorok eltávolításához.
Fontos
Éles környezetben biztonságos módon tárolhatja és érheti el a hitelesítő adatait, például az Azure Key Vaultot. A hitelesítő adatok biztonságáról további információt ebben a biztonsági cikkben talál.
Hozam
{"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}]}
A kimeneti formázás az olvasás megkönnyítése érdekében van beállítva, a tényleges kimenet egy sortörés nélküli szövegblokk.
Az üzenetstruktúra ismertetése
A GPT-35-Turbo és a GPT-4 modellek úgy vannak optimalizálva, hogy beszélgetésként formázott bemenetekkel működjenek. A messages
változó különböző szerepkörökkel rendelkező szótártömböt ad át a rendszer, a felhasználó és az asszisztens által meghatározott beszélgetésben. A rendszerüzenet a modell beállításához használható a környezet vagy a modell válaszára vonatkozó utasítások megadásával.
A GPT-35-Turbo &GPT-4 útmutató részletes bevezetést nyújt az új modellekkel való kommunikáció lehetőségeibe.
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást. Az erőforrás törlése előtt törölnie kell az üzembe helyezett modelleket.
Következő lépések
- Útmutatónkból többet is megtudhat a GPT-35-Turbo és a GPT-4 modellek használatáról.
- További példákért tekintse meg az Azure OpenAI-minták GitHub-adattárát
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- Használhatja a legújabb verziót, a PowerShell 7-et vagy a Windows PowerShell 5.1-et.
- Egy Azure OpenAI-modellt tartalmazó erőforrás az Azure AI Foundry Modelsben. A modellek üzembe helyezéséről a modellek üzembe helyezésének ismertetőjében talál további információt.
- Egy Azure OpenAI-erőforrás a
gpt-4o
modell üzembe helyezésével. A modellek üzembe helyezéséről a modellek üzembe helyezésének ismertetőjében talál további információt.
A Microsoft Entra ID előfeltételei
A Microsoft Entra-azonosítóval javasolt kulcs nélküli hitelesítéshez a következőket kell elvégeznie:
- Telepítse a Kulcs nélküli hitelesítéshez használt Azure CLI-t a Microsoft Entra-azonosítóval.
- Rendelje hozzá a szerepkört
Cognitive Services User
a felhasználói fiókjához. Szerepköröket az Azure Portalon rendelhet hozzá a Hozzáférés-vezérlés (IAM)>Szerepkör-hozzárendelés hozzáadása területen.
Erőforrásadatok lekérése
Az alkalmazás Azure OpenAI-erőforrással való hitelesítéséhez le kell kérnie a következő adatokat:
További információ a kulcs nélküli hitelesítésről és a környezeti változók beállításáról.
Új PowerShell-szkript létrehozása
A Microsoft Entra ID-val javasolt kulcs nélküli hitelesítéshez jelentkezzen be az Azure-ba a következő paranccsal:
az login
Hozzon létre egy új, quickstart.ps1nevű PowerShell-fájlt. Ezután nyissa meg a kívánt szerkesztőben vagy IDE-ben.
Cserélje le a quickstart.ps1 tartalmát a következő kódra. A változót a
engine
GPT-4o modell üzembe helyezésekor választott üzembehelyezési névre kell beállítania. A modell nevének megadása hibaüzenetet eredményez, kivéve, ha az alapul szolgáló modell nevével azonos központi telepítési nevet választott.# 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
Fontos
Éles környezetben használja a hitelesítő adatok biztonságos tárolásának és elérésének biztonságos módját, például a PowerShell titkos kulcskezelését az Azure Key Vaulttal. A hitelesítő adatok biztonságáról további információt ebben a biztonsági cikkben talál.
Futtassa a szkriptet a PowerShell használatával. Ebben a példában a
-Depth
paraméterrel biztosítjuk, hogy a kimenet ne csonkolt legyen../quickstart.ps1 | ConvertTo-Json -Depth 4
Hozam
A szkript kimenete egy JSON-objektum, amely az Azure OpenAI válaszát tartalmazza. A kimenet a következőhöz hasonlóan néz ki:
{
"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
}
}
Megjegyzések
Ha meg szeretné tekinteni a ConvertTo-Json
nyers kimenetet, kihagyhatja a lépést.
./quickstart.ps1
A kimenet a következőképpen fog kinézni:
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}
A powershell.ps1 szkript tartalmát a teljes objektum vagy egy adott tulajdonság visszaadásához szerkesztheti. A visszaadott szöveg visszaadásához például lecserélheti a szkript (return $response
) utolsó sorát a következőre:
return $response.choices.message.content
Ezután futtassa újra a szkriptet.
./quickstart.ps1
A kimenet a következőképpen fog kinézni:
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?
Az üzenetstruktúra ismertetése
A GPT-4 modellek úgy vannak optimalizálva, hogy beszélgetésként formázott bemenetekkel működjenek. A messages
változó különböző szerepkörökkel rendelkező szótártömböt ad át a rendszer, a felhasználó és az asszisztens által meghatározott beszélgetésben. A rendszerüzenet a modell beállításához használható a környezet vagy a modell válaszára vonatkozó utasítások megadásával.
A GPT-4 útmutató részletesen bemutatja a modellekkel való kommunikáció lehetőségeit.
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást. Az erőforrás törlése előtt törölnie kell az üzembe helyezett modelleket.
Következő lépések
- Útmutatónkból többet is megtudhat a GPT-4 modellek használatáról.
- További példákért tekintse meg az Azure OpenAI-minták GitHub-adattárát