Rövid útmutató: A GPT-35-Turbo és a GPT-4 használatának első lépései az Azure OpenAI szolgáltatással
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-szolgáltatáserőforrás vagy üzembe
gpt-4o-mini
helyezett modellekkelgpt-4o
. 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 OpenAI Studióra
Lépjen az Azure OpenAI Studióba, https://oai.azure.com/ é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 OpenAI Studio kezdőlapján válassza a Csevegési játszótér lehetőséget.
Játszótér
Ismerkedjen meg az OpenAI képességeivel kód nélküli megközelítéssel az Azure OpenAI Studio Chat-játszótéren. 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 az Azure OpenAI Studio felhasználói élményével, közvetlenül a Studióból is üzembe helyezhet egy webalkalmazást a Telepítés a 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
Forráskódcsomag (NuGet) | Samples| Retrieveal Augmented Generation (RAG) enterprise chat template | |
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- A .NET 7 SDK
- Egy Azure OpenAI-szolgáltatás erőforrása, amely az üzembe helyezett modelleket vagy
gpt-4
azokatgpt-35-turbo
tartalmazza. 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
Egy új .NET Core-alkalmazás létrehozása
Egy konzolablakban (például parancsmag, PowerShell vagy Bash) a dotnet new
paranccsal hozzon létre egy új konzolalkalmazást a névvel azure-openai-quickstart
. Ez a parancs létrehoz egy egyszerű "„Helló világ!” alkalmazás" projektet egyetlen C#-forrásfájllal: Program.cs.
dotnet new console -n azure-openai-quickstart
Módosítsa a könyvtárat az újonnan létrehozott alkalmazásmappára. Az alkalmazást a következőkkel hozhatja létre:
dotnet build
A buildkimenet nem tartalmazhat figyelmeztetést vagy hibát.
...
Build succeeded.
0 Warning(s)
0 Error(s)
...
Telepítse az OpenAI .NET ügyfélkódtárat a következőkkel:
dotnet add package Azure.AI.OpenAI --prerelease
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 Studio Üzembe helyezési 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
HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.
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"
Mintaalkalmazás létrehozása
Nyissa meg a program.cs fájlt a projektkönyvtárban, és cserélje le a következő kódra:
Válaszstreamelés nélkül
using Azure;
using Azure.AI.OpenAI;
using static System.Environment;
string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");
AzureOpenAIClient azureClient = new(
new Uri(endpoint),
new AzureKeyCredential(key));
// This must match the custom deployment name you chose for your model
ChatClient chatClient = azureClient.GetChatClient("gpt-35-turbo");
ChatCompletion completion = chatClient.CompleteChat(
[
new SystemChatMessage("You are a helpful assistant that talks like a pirate."),
new UserChatMessage("Does Azure OpenAI support customer managed keys?"),
new AssistantChatMessage("Yes, customer managed keys are supported by Azure OpenAI"),
new UserChatMessage("Do other Azure AI services support this too?")
]);
Console.WriteLine($"{completion.Role}: {completion.Content[0].Text}");
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ával kapcsolatos további információkért tekintse meg az Azure AI-szolgáltatások biztonsági cikkét.
dotnet run program.cs
Hozam
Assistant : Yes, many other Azure AI services also support customer managed keys, including Azure Cognitive Services, Azure Machine Learning, and Azure Databricks. By using customer managed keys, you can retain complete control over your encryption keys and provide an additional layer of security for your AI assets.
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
using Azure;
using Azure.AI.OpenAI;
using OpenAI.Chat;
using static System.Environment;
string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");
AzureOpenAIClient azureClient = new(
new Uri(endpoint),
new AzureKeyCredential(key));
// This must match the custom deployment name you chose for your model
ChatClient chatClient = azureClient.GetChatClient("gpt-35-turbo");
var chatUpdates = chatClient.CompleteChatStreamingAsync(
[
new SystemChatMessage("You are a helpful assistant that talks like a pirate."),
new UserChatMessage("Does Azure OpenAI support customer managed keys?"),
new AssistantChatMessage("Yes, customer managed keys are supported by Azure OpenAI"),
new UserChatMessage("Do other Azure AI services support this too?")
]);
await foreach(var chatUpdate in chatUpdates)
{
if (chatUpdate.Role.HasValue)
{
Console.Write($"{chatUpdate.Role} : ");
}
foreach(var contentPart in chatUpdate.ContentUpdate)
{
Console.Write(contentPart.Text);
}
}
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
Forráskódcsomag (Go)| -minták |
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- Helyileg telepített 1.21.0-s vagy újabb verzió.
- Egy Azure OpenAI-szolgáltatáserőforrás a
gpt-35-turbo
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.
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 Studio Üzembe helyezési 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
HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.
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"
Mintaalkalmazás létrehozása
Hozzon létre egy chat_completions.go nevű új fájlt. Másolja a következő kódot a chat_completions.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/azcore"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
)
func main() {
azureOpenAIKey := os.Getenv("AZURE_OPENAI_API_KEY")
modelDeploymentID := os.Getenv("YOUR_MODEL_DEPLOYMENT_NAME")
maxTokens:= int32(400)
// Ex: "https://<your-azure-openai-host>.openai.azure.com"
azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
if azureOpenAIKey == "" || modelDeploymentID == "" || azureOpenAIEndpoint == "" {
fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n")
return
}
keyCredential := azcore.NewKeyCredential(azureOpenAIKey)
// In Azure OpenAI you must deploy a model before you can use it in your client. For more information
// see here: https://learn.microsoft.com/azure/cognitive-services/openai/how-to/create-resource
client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)
if err != nil {
// TODO: Update the following line with your application specific error handling logic
log.Printf("ERROR: %s", err)
return
}
// This is a conversation in progress.
// NOTE: all messages, regardless of role, count against token usage for this API.
messages := []azopenai.ChatRequestMessageClassification{
// You set the tone and rules of the conversation with a prompt as the system role.
&azopenai.ChatRequestSystemMessage{Content: to.Ptr("You are a helpful assistant.")},
// The user asks a question
&azopenai.ChatRequestUserMessage{Content: azopenai.NewChatRequestUserMessageContent("Does Azure OpenAI support customer managed keys?")},
// The reply would come back from the model. You'd add it to the conversation so we can maintain context.
&azopenai.ChatRequestAssistantMessage{Content: to.Ptr("Yes, customer managed keys are supported by Azure OpenAI")},
// The user answers the question based on the latest reply.
&azopenai.ChatRequestUserMessage{Content: azopenai.NewChatRequestUserMessageContent("What other Azure Services support customer managed keys?")},
// from here you'd keep iterating, sending responses back from ChatGPT
}
gotReply := false
resp, err := client.GetChatCompletions(context.TODO(), azopenai.ChatCompletionsOptions{
// This is a conversation in progress.
// NOTE: all messages count against token usage for this API.
Messages: messages,
DeploymentName: &modelDeploymentID,
MaxTokens: &maxTokens,
}, nil)
if err != nil {
// TODO: Update the following line with your application specific error handling logic
log.Printf("ERROR: %s", err)
return
}
for _, choice := range resp.Choices {
gotReply = true
if choice.ContentFilterResults != nil {
fmt.Fprintf(os.Stderr, "Content filter results\n")
if choice.ContentFilterResults.Error != nil {
fmt.Fprintf(os.Stderr, " Error:%v\n", choice.ContentFilterResults.Error)
}
fmt.Fprintf(os.Stderr, " Hate: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Hate.Severity, *choice.ContentFilterResults.Hate.Filtered)
fmt.Fprintf(os.Stderr, " SelfHarm: sev: %v, filtered: %v\n", *choice.ContentFilterResults.SelfHarm.Severity, *choice.ContentFilterResults.SelfHarm.Filtered)
fmt.Fprintf(os.Stderr, " Sexual: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Sexual.Severity, *choice.ContentFilterResults.Sexual.Filtered)
fmt.Fprintf(os.Stderr, " Violence: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Violence.Severity, *choice.ContentFilterResults.Violence.Filtered)
}
if choice.Message != nil && choice.Message.Content != nil {
fmt.Fprintf(os.Stderr, "Content[%d]: %s\n", *choice.Index, *choice.Message.Content)
}
if choice.FinishReason != nil {
// this choice's conversation is complete.
fmt.Fprintf(os.Stderr, "Finish reason[%d]: %s\n", *choice.Index, *choice.FinishReason)
}
}
if gotReply {
fmt.Fprintf(os.Stderr, "Received chat completions reply\n")
}
}
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ával kapcsolatos további információkért tekintse meg az Azure AI-szolgáltatások biztonsági cikkét.
Most nyisson meg egy parancssort, és futtassa a következőt:
go mod init chat_completions.go
Következő futtatás:
go mod tidy
go run chat_completions.go
Hozam
Content filter results
Hate: sev: safe, filtered: false
SelfHarm: sev: safe, filtered: false
Sexual: sev: safe, filtered: false
Violence: sev: safe, filtered: false
Content[0]: As of my last update in early 2023, in Azure, several AI services support the use of customer-managed keys (CMKs) through Azure Key Vault. This allows customers to have control over the encryption keys used to secure their data at rest. The services that support this feature typically fall under Azure's range of cognitive services and might include:
1. Azure Cognitive Search: It supports using customer-managed keys to encrypt the index data.
2. Azure Form Recognizer: For data at rest, you can use customer-managed keys for added security.
3. Azure Text Analytics: CMKs can be used for encrypting your data at rest.
4. Azure Blob Storage: While not exclusively an AI service, it's often used in conjunction with AI services to store data, and it supports customer-managed keys for encrypting blob data.
Note that the support for CMKs can vary by service and sometimes even by the specific feature within the service. Additionally, the landscape of cloud services is fast evolving, and new features, including security capabilities, are frequently added. Therefore, it's recommended to check the latest Azure documentation or contact Azure support for the most current information about CMK support for any specific Azure AI service.
Finish reason[0]: stop
Received chat completions reply
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
Forráskód-összetevő (Maven) | Samples | Retrieveal Augmented Generation (RAG) enterprise chat template | IntelliJ IDEA |
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-szolgáltatás erőforrása, amely az üzembe helyezett modelleket vagy
gpt-4
azokatgpt-35-turbo
tartalmazza. 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 Studio Üzembe helyezési 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
HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.
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 Java-alkalmazás létrehozása
Hozzon létre egy új Gradle-projektet.
Egy konzolablakban (pl. cmd, PowerShell vagy Bash) hozzon létre egy új mappát az alkalmazásnak, majd navigáljon oda.
mkdir myapp && cd myapp
Futtassa a gradle init
parancsot a munkakönyvtárból. Ez a parancs alapvető buildfájlokat hoz létre a Gradle-hez, beleértve a build.gradle.kts fájlt, amelyet futásidőben használnak az alkalmazás létrehozásához és konfigurálásához.
gradle init --type basic
Amikor a rendszer kéri, hogy válasszon egy DSL-t, válassza a Kotlin lehetőséget.
A Java SDK telepítése
Ez a rövid útmutató a Gradle függőségkezelőt használja. A Maven Central-adattárban megtalálhatja a többi függőségkezelő ügyfélkódtárát és információit.
Keresse meg a build.gradle.kts fájlt, és nyissa meg a kívánt IDE- vagy szövegszerkesztővel. Ezután másolja a következő buildkonfigurációba. Ez a konfiguráció java-alkalmazásként definiálja a projektet, amelynek belépési pontja az OpenAIQuickstart osztály. Importálja az Azure AI Vision-kódtárat.
plugins {
java
application
}
application {
mainClass.set("OpenAIQuickstart")
}
repositories {
mavenCentral()
}
dependencies {
implementation(group = "com.azure", name = "azure-ai-openai", version = "1.0.0-beta.10")
implementation("org.slf4j:slf4j-simple:1.7.9")
}
Mintaalkalmazás létrehozása
Java-fájl létrehozása.
A munkakönyvtárban futtassa a következő parancsot a projekt forrásmappájának létrehozásához:
mkdir -p src/main/java
Lépjen az új mappára, és hozzon létre egy OpenAIQuickstart.java nevű fájlt.
Nyissa meg OpenAIQuickstart.java az előnyben részesített szerkesztőben vagy IDE-ben, és illessze be az alábbi kódot.
package com.azure.ai.openai.usage; import com.azure.ai.openai.OpenAIClient; import com.azure.ai.openai.OpenAIClientBuilder; import com.azure.ai.openai.models.ChatChoice; import com.azure.ai.openai.models.ChatCompletions; import com.azure.ai.openai.models.ChatCompletionsOptions; import com.azure.ai.openai.models.ChatRequestAssistantMessage; import com.azure.ai.openai.models.ChatRequestMessage; import com.azure.ai.openai.models.ChatRequestSystemMessage; import com.azure.ai.openai.models.ChatRequestUserMessage; import com.azure.ai.openai.models.ChatResponseMessage; import com.azure.ai.openai.models.CompletionsUsage; import com.azure.core.credential.AzureKeyCredential; import com.azure.core.util.Configuration; import java.util.ArrayList; import java.util.List; public class OpenAIQuickstart { public static void main(String[] args) { String azureOpenaiKey = Configuration.getGlobalConfiguration().get("AZURE_OPENAI_API_KEY"); String endpoint = Configuration.getGlobalConfiguration().get("AZURE_OPENAI_ENDPOINT"); String deploymentOrModelId = "{azure-open-ai-deployment-model-id}"; OpenAIClient client = new OpenAIClientBuilder() .endpoint(endpoint) .credential(new AzureKeyCredential(azureOpenaiKey)) .buildClient(); List<ChatRequestMessage> chatMessages = new ArrayList<>(); chatMessages.add(new ChatRequestSystemMessage("You are a helpful assistant.")); chatMessages.add(new ChatRequestUserMessage("Does Azure OpenAI support customer managed keys?")); chatMessages.add(new ChatRequestAssistantMessage("Yes, customer managed keys are supported by Azure OpenAI?")); chatMessages.add(new ChatRequestUserMessage("Do other Azure AI services support this too?")); ChatCompletions chatCompletions = client.getChatCompletions(deploymentOrModelId, new ChatCompletionsOptions(chatMessages)); System.out.printf("Model ID=%s is created at %s.%n", chatCompletions.getId(), chatCompletions.getCreatedAt()); for (ChatChoice choice : chatCompletions.getChoices()) { ChatResponseMessage message = choice.getMessage(); System.out.printf("Index: %d, Chat Role: %s.%n", choice.getIndex(), message.getRole()); System.out.println("Message:"); System.out.println(message.getContent()); } System.out.println(); CompletionsUsage usage = chatCompletions.getUsage(); System.out.printf("Usage: number of prompt token is %d, " + "number of completion token is %d, and number of total tokens in request and response is %d.%n", usage.getPromptTokens(), usage.getCompletionTokens(), usage.getTotalTokens()); } }
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ával kapcsolatos további információkért tekintse meg az Azure AI-szolgáltatások biztonsági cikkét.
Lépjen vissza a projekt gyökérmappájához, és hozza létre az alkalmazást a következőkkel:
gradle build
Ezután futtassa a
gradle run
következő paranccsal:gradle run
Hozam
Model ID=chatcmpl-7JYnyE4zpd5gaIfTRH7hNpeVsvAw4 is created at 1684896378.
Index: 0, Chat Role: assistant.
Message:
Yes, most of the Azure AI services support customer managed keys. However, there may be some exceptions, so it is best to check the documentation of each specific service to confirm.
Usage: number of prompt token is 59, number of completion token is 36, and number of total tokens in request and response is 95.
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
Forráskód-összetevők (Maven) | Minta |
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-szolgáltatáserőforrás a
gpt-35-turbo
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. Ez a példa feltételezi, hogy az üzemelő példány neve megegyezik a modell nevévelgpt-35-turbo
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 Studio Üzembe helyezési 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
HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.
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.2.0</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>ai-chat-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>AIChat</name> <description>Demo project for Spring Boot</description> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.experimental.ai</groupId> <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId> <version>0.7.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <releases> <enabled>false</enabled> </releases> </repository> </repositories> </project>
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 java.util.ArrayList; import java.util.List; import org.springframework.ai.client.AiClient; import org.springframework.ai.prompt.Prompt; import org.springframework.ai.prompt.messages.ChatMessage; import org.springframework.ai.prompt.messages.Message; import org.springframework.ai.prompt.messages.MessageType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class AiChatApplication implements CommandLineRunner { private static final String ROLE_INFO_KEY = "role"; @Autowired private AiClient aiClient; public static void main(String[] args) { SpringApplication.run(AiChatApplication.class, args); } @Override public void run(String... args) throws Exception { System.out.println(String.format("Sending chat prompts to AI service. One moment please...\r\n")); final List<Message> msgs = new ArrayList<>(); msgs.add(new ChatMessage(MessageType.SYSTEM, "You are a helpful assistant")); msgs.add(new ChatMessage(MessageType.USER, "Does Azure OpenAI support customer managed keys?")); msgs.add(new ChatMessage(MessageType.ASSISTANT, "Yes, customer managed keys are supported by Azure OpenAI?")); msgs.add(new ChatMessage(MessageType.USER, "Do other Azure AI services support this too?")); final var resps = aiClient.generate(new Prompt(msgs)); System.out.println(String.format("Prompt created %d generated response(s).", resps.getGenerations().size())); resps.getGenerations().stream() .forEach(gen -> { final var role = gen.getInfo().getOrDefault(ROLE_INFO_KEY, MessageType.ASSISTANT.getValue()); System.out.println(String.format("Generated respose from \"%s\": %s", role, gen.getText())); }); } }
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ával kapcsolatos további információkért tekintse meg az Azure AI-szolgáltatások biztonsági cikkét.
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.1.5)
2023-11-07T13:31:10.884-06:00 INFO 6248 --- [ main] c.example.aichatdemo.AiChatApplication : No active profile set, falling back to 1 default profile: "default"
2023-11-07T13:31:11.595-06:00 INFO 6248 --- [ main] c.example.aichatdemo.AiChatApplication : Started AiChatApplication in 0.994 seconds (process running for 1.28)
Sending chat prompts to AI service. One moment please...
Prompt created 1 generated response(s).
Generated respose from "assistant": Yes, other Azure AI services also support customer managed keys. Azure AI Services, Azure Machine Learning, and other AI services in Azure provide options for customers to manage and control their encryption keys. This allows customers to have greater control over their data and security.
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
Forráskódcsomag (npm) | minták |
Feljegyzés
Ez a cikk a legújabb OpenAI npm-csomag használatára lett frissítve, amely most már 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-szolgáltatáserőforrás üzembe
gpt-35-turbo
helyezett vagygpt-4
sorozatmodellekkel. 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 Studio Üzembe helyezési 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
HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.
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"
Csomópontalkalmazás létrehozása
Egy konzolablakban (pl. cmd, PowerShell vagy Bash) hozzon létre egy új mappát az alkalmazásnak, majd navigáljon oda.
Telepítse az ügyfélkódtárat
Telepítse a JavaScripthez szükséges csomagokat npm-lel az új címtár környezetéből:
npm install openai @azure/identity
Az alkalmazás package.json fájlja frissül a függőségekkel.
Mintaalkalmazás létrehozása
Nyisson meg egy parancssort, ahol az új projektet szeretné, és hozzon létre egy ChatCompletion.js nevű új fájlt. Másolja a következő kódot a ChatCompletion.js fájlba.
const { AzureOpenAI } = require("openai");
const {
DefaultAzureCredential,
getBearerTokenProvider
} = require("@azure/identity");
// You will need to set these environment variables or edit the following values
const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "<endpoint>";
const apiVersion = "2024-05-01-preview";
const deployment = "gpt-4o"; //This must match your deployment name.
// keyless authentication
const credential = new DefaultAzureCredential();
const scope = "https://cognitiveservices.azure.com/.default";
const azureADTokenProvider = getBearerTokenProvider(credential, scope);
async function main() {
const client = new AzureOpenAI({ endpoint, apiKey, azureADTokenProvider, deployment });
const result = await client.chat.completions.create({
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Does Azure OpenAI support customer managed keys?" },
{ role: "assistant", content: "Yes, customer managed keys are supported by Azure OpenAI?" },
{ role: "user", content: "Do other Azure AI services support this too?" },
],
model: "",
});
for (const choice of result.choices) {
console.log(choice.message);
}
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
module.exports = { main };
Futtassa a szkriptet a következő paranccsal:
node.exe ChatCompletion.js
Hozam
== Chat Completions Sample ==
{
content: 'Yes, several other Azure AI services also support customer managed keys for enhanced security and control over encryption keys.',
role: 'assistant'
}
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 meglévő 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
Forráskódcsomag (npm) | minták |
Feljegyzés
Ez a cikk a legújabb OpenAI npm-csomag használatára lett frissítve, amely most már 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-szolgáltatáserőforrás üzembe
gpt-35-turbo
helyezett vagygpt-4
sorozatmodellekkel. 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 Studio Üzembe helyezési 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
HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.
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"
Csomópontalkalmazás létrehozása
Egy konzolablakban (pl. cmd, PowerShell vagy Bash) hozzon létre egy új mappát az alkalmazásnak, majd navigáljon oda.
Telepítse az ügyfélkódtárat
Telepítse a JavaScripthez szükséges csomagokat npm-lel az új címtár környezetéből:
npm install openai @azure/identity
Az alkalmazás package.json fájlja frissül a függőségekkel.
Mintaalkalmazás létrehozása
Nyisson meg egy parancssort, ahol az új projektet szeretné, és hozzon létre egy ChatCompletion.ts nevű új fájlt. Másolja a következő kódot a ChatCompletion.ts fájlba.
import { AzureOpenAI } from "openai";
import {
DefaultAzureCredential,
getBearerTokenProvider
} from "@azure/identity";
import type {
ChatCompletion,
ChatCompletionCreateParamsNonStreaming,
} from "openai/resources/index";
// You will need to set these environment variables or edit the following values
const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "<endpoint>";
// Required Azure OpenAI deployment name and API version
const apiVersion = "2024-08-01-preview";
const deploymentName = "gpt-4o-mini"; //This must match your deployment name.
// keyless authentication
const credential = new DefaultAzureCredential();
const scope = "https://cognitiveservices.azure.com/.default";
const azureADTokenProvider = getBearerTokenProvider(credential, scope);
function getClient(): AzureOpenAI {
return new AzureOpenAI({
endpoint,
azureADTokenProvider,
apiVersion,
deployment: deploymentName,
});
}
function createMessages(): ChatCompletionCreateParamsNonStreaming {
return {
messages: [
{ role: "system", content: "You are a helpful assistant." },
{
role: "user",
content: "Does Azure OpenAI support customer managed keys?",
},
{
role: "assistant",
content: "Yes, customer managed keys are supported by Azure OpenAI?",
},
{ role: "user", content: "Do other Azure AI services support this too?" },
],
model: "",
};
}
async function printChoices(completion: ChatCompletion): Promise<void> {
for (const choice of completion.choices) {
console.log(choice.message);
}
}
export async function main() {
const client = getClient();
const messages = createMessages();
const result = await client.chat.completions.create(messages);
await printChoices(result);
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
Hozza létre a szkriptet a következő paranccsal:
tsc
Futtassa a szkriptet a következő paranccsal:
node.exe ChatCompletion.js
Hozam
== Chat Completions Sample ==
{
content: 'Yes, several other Azure AI services also support customer managed keys for enhanced security and control over encryption keys.',
role: 'assistant'
}
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 meglévő 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) | Retrieveal Augmented Generation (RAG) enterprise chat template | |
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-szolgáltatás erőforrása, amely az üzembe helyezett modelleket vagy
gpt-4
azokatgpt-35-turbo
tartalmazza. 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 Studio Üzembe helyezési 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
HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.
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 AI 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ával kapcsolatos további információkért tekintse meg az Azure AI-szolgáltatások biztonsági cikkét.
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 AI services support customer managed keys. However, not all services support it. You can check the documentation of each service to confirm if customer managed keys are supported.",
"role": "assistant"
}
}
],
"created": 1679001781,
"id": "chatcmpl-6upLpNYYOx2AhoOYxl9UgJvF4aPpR",
"model": "gpt-3.5-turbo-0301",
"object": "chat.completion",
"usage": {
"completion_tokens": 39,
"prompt_tokens": 58,
"total_tokens": 97
}
}
Yes, most of the Azure AI services support customer managed keys. However, not all services support it. You can check the documentation of each service to confirm if customer managed keys are supported.
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 – Hozzon létre egyet ingyenesen.
- Egy Azure OpenAI-szolgáltatás erőforrása, amely az üzembe helyezett modelleket vagy
gpt-4
azokatgpt-35-turbo
tartalmazza. 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 Studio Üzembe helyezési 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
HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.
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 AI 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ával kapcsolatos további információkért tekintse meg az Azure AI-szolgáltatások biztonsági cikkét.
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, other Azure AI services also support customer managed keys. Azure AI services offer multiple options for customers to manage keys, such as using Azure Key Vault, customer-managed keys in Azure Key Vault or customer-managed keys through Azure Storage service. This helps customers ensure that their data is secure and access to their services is controlled."},"finish_reason":"stop","index":0}]}
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.
- Azure OpenAI-szolgáltatáserőforrás üzembe helyezett modellel. 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-szolgáltatás erőforrása, amely az üzembe helyezett modelleket vagy
gpt-4
azokatgpt-35-turbo
tartalmazza. A modellek üzembe helyezéséről a modellek üzembe helyezésének ismertetőjében talál további információt.
Kulcs és végpont lekérése
Az Azure OpenAI-ra való sikeres híváshoz egy végpontra és egy kulcsra lesz szüksége.
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 Studio Üzembe helyezési 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 végpont és a kulcsok az Erőforrás-kezelés szakaszban találhatók. 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
HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.
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.
$Env:AZURE_OPENAI_API_KEY = 'YOUR_KEY_VALUE'
$Env:AZURE_OPENAI_ENDPOINT = 'YOUR_ENDPOINT'
Új PowerShell-szkript létrehozása
Hozzon létre egy új, quickstart.ps1 nevű 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-35-Turbo vagy a 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.# Azure OpenAI metadata variables $openai = @{ api_key = $Env:AZURE_OPENAI_API_KEY api_base = $Env:AZURE_OPENAI_ENDPOINT # your endpoint should look like the following https://YOUR_RESOURCE_NAME.openai.azure.com/ api_version = '2024-02-01' # this may change in the future name = 'YOUR-DEPLOYMENT-NAME-HERE' #This will correspond to the custom name you chose for your deployment when you deployed a model. } # Completion text $messages = @() $messages += @{ role = 'system' content = 'You are a helpful assistant.' } $messages += @{ role = 'user' content = 'Does Azure OpenAI support customer managed keys?' } $messages += @{ role = 'assistant' content = 'Yes, customer managed keys are supported by Azure OpenAI.' } $messages += @{ role = 'user' content = 'Do other Azure AI services support this too?' } # Header for authentication $headers = [ordered]@{ 'api-key' = $openai.api_key } # Adjust these values to fine-tune completions $body = [ordered]@{ messages = $messages } | ConvertTo-Json # Send a request to generate an answer $url = "$($openai.api_base)/openai/deployments/$($openai.name)/chat/completions?api-version=$($openai.api_version)" $response = Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Post -ContentType 'application/json' return $response
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ával kapcsolatos további információkért tekintse meg az Azure AI-szolgáltatások biztonsági cikkét.
Futtassa a szkriptet a PowerShell használatával:
./quickstart.ps1
Hozam
# the output of the script will be a .NET object containing the response
id : chatcmpl-7sdJJRC6fDNGnfHMdfHXvPkYFbaVc
object : chat.completion
created : 1693255177
model : gpt-35-turbo
choices : {@{index=0; finish_reason=stop; message=}}
usage : @{completion_tokens=67; prompt_tokens=55; total_tokens=122}
# convert the output to JSON
./quickstart.ps1 | ConvertTo-Json -Depth 3
# or to view the text returned, select the specific object property
$reponse = ./quickstart.ps1
$response.choices.message.content
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