Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Gunakan artikel ini untuk mulai menggunakan Azure OpenAI.
Prasyarat
- Langganan Azure - Buat langganan gratis.
- Sumber daya Azure OpenAI dalam Azure AI Foundry Models, dengan model
gpt-4o
ataugpt-4o-mini
yang telah disebarkan. Sebaiknya gunakan jenis penyebaran model standar atau global untuk eksplorasi awal. Untuk informasi selengkapnya tentang penyebaran model, lihat panduan penyebaran sumber daya.
Buka Azure AI Foundry
Navigasikan ke portal Azure AI Foundry dan masuk dengan kredensial yang memiliki akses ke sumber daya Azure OpenAI Anda. Selama atau setelah alur kerja masuk, pilih direktori, langganan Azure, dan sumber daya Azure OpenAI yang sesuai.
Dari Azure AI Foundry, pilih Taman bermain obrolan.
Taman Bermain
Mulai jelajahi kemampuan Azure OpenAI dengan pendekatan tanpa kode melalui taman bermain Azure AI Foundry Chat. Dari halaman ini, Anda dapat dengan cepat melakukan iterasi dan bereksperimen dengan kemampuan.
Siapkan
Anda dapat menggunakan menu dropdown *Sampel perintah untuk memilih beberapa contoh pesan Sistem yang telah dimuat sebelumnya untuk memulai.
Pesan sistem memberikan instruksi model tentang bagaimana seharusnya bersifat dan konteks apa pun yang harus dirujuknya saat menghasilkan respons. Anda dapat menjelaskan kepribadian asisten, memberi tahu apa yang harus dan tidak boleh dijawab, dan memberi tahunya cara memformat respons.
Kapan saja saat menggunakan playground Obrolan, Anda dapat memilih Tampilkan kode untuk melihat sampel kode Python, curl, dan json yang telah diisi sebelumnya berdasarkan pilihan sesi obrolan dan pengaturan Anda saat ini. Anda kemudian dapat mengambil kode ini dan menulis aplikasi untuk menyelesaikan tugas yang sama dengan yang sedang Anda lakukan dengan taman bermain.
Sesi obrolan
Memilih tombol Enter atau memilih ikon panah kanan mengirimkan teks yang dimasukkan ke API penyelesaian obrolan dan hasilnya dikembalikan ke kotak teks.
Pilih tombol Hapus obrolan untuk menghapus riwayat percakapan saat ini.
Pengaturan kunci
Nama | Deskripsi |
---|---|
Penyebaran | Nama penyebaran Anda yang terkait dengan model tertentu. |
Menambahkan data Anda | |
Parameter | Parameter kustom yang mengubah respons model. Saat Anda memulai, sebaiknya gunakan default untuk sebagian besar parameter |
Suhu | Mengontrol keacakan. Menurunkan temperatur berarti model menghasilkan respons yang lebih berulang dan deterministik. Meningkatkan temperatur menghasilkan respons yang lebih tidak terduga atau kreatif. Coba sesuaikan temperatur atau Top P tetapi jangan keduanya. |
Respons maks (token) | Tetapkan batas jumlah token per respons model. API pada model terbaru mendukung maksimum 128.000 token yang dibagikan antara perintah (termasuk pesan sistem, contoh, riwayat pesan, dan kueri pengguna) dan respons model. Setiap token kira-kira terdiri dari empat karakter untuk teks bahasa Inggris pada umumnya. |
p Teratas | Mirip dengan suhu, ini mengontrol keacakan tetapi menggunakan metode yang berbeda. Menurunkan Top P mempersempit pilihan token oleh model ke token yang lebih memungkinkan. Meningkatkan Top P memungkinkan model memilih dari token dengan kemungkinan yang tinggi dan rendah. Coba sesuaikan temperatur atau Top P tetapi jangan keduanya. |
Hentikan urutan | Hentikan urutan membuat model mengakhiri responsnya pada titik yang diinginkan. Respons model berakhir sebelum urutan yang ditentukan, sehingga tidak akan berisi teks urutan berhenti. Untuk GPT-35-Turbo, menggunakan <|im_end|> memastikan bahwa respons model tidak menghasilkan kueri pengguna tindak lanjut. Anda dapat menyertakan sebanyak empat urutan berhenti. |
Menampilkan kode
Setelah Anda bereksperimen dengan mengobrol dengan model, pilih tombol </> Lihat Kode . Ini akan memberi Anda pemutaran ulang kode di belakang seluruh percakapan Anda sejauh ini:
Memahami struktur prompt
Jika Anda memeriksa sampel dari Tampilkan kode, Anda akan melihat bahwa percakapan dipecah menjadi tiga peran system
berbeda , , user
. assistant
Setiap kali Anda mengirim pesan kepada model, seluruh riwayat percakapan hingga titik tersebut akan dikirim ulang. Saat menggunakan API penyelesaian obrolan, model tidak memiliki memori sebenarnya tentang apa yang telah Anda kirimkan kepadanya di masa lalu sehingga Anda memberikan riwayat percakapan untuk konteks agar model dapat merespons dengan benar.
Panduan cara penyelesaian obrolan menyediakan pengenalan mendalam tentang struktur prompt baru dan cara menggunakan model penyelesaian obrolan secara efektif.
Sebarkan model anda
Setelah puas dengan pengalaman, Anda dapat menyebarkan aplikasi web langsung dari portal dengan memilih tombol Sebarkan ke .
Ini memberi Anda opsi untuk menyebarkan ke aplikasi web mandiri, atau salinan di Copilot Studio (pratinjau) jika Anda menggunakan data Anda sendiri pada model.
Sebagai contoh, jika Anda memilih untuk menyebarkan aplikasi web:
Saat pertama kali menyebarkan aplikasi web, Anda harus memilih Buat aplikasi web baru. Pilih nama untuk aplikasi, yang akan menjadi bagian dari URL aplikasi. Contohnya,https://<appname>.azurewebsites.net
.
Pilih langganan, grup sumber daya, lokasi, dan paket harga Anda untuk aplikasi yang diterbitkan. Untuk memperbarui aplikasi yang sudah ada, pilih Terbitkan ke aplikasi web yang sudah ada dan pilih nama aplikasi Anda sebelumnya dari menu dropdown.
Jika Anda memilih untuk menyebarkan aplikasi web, lihat pertimbangan penting untuk menggunakannya.
Membersihkan sumber daya
Setelah selesai menguji taman bermain Obrolan, jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI, Anda dapat menghapus sumber daya atau grup sumber daya. Menghapus grup sumber daya juga menghapus sumber daya apa pun yang terkait dengannya.
Langkah berikutnya
- Pelajari selengkapnya tentang cara bekerja dengan model baru
gpt-35-turbo
dengan panduan cara GPT-35-Turbo & GPT-4. - Untuk contoh selengkapnya, lihat repositori GitHub Sampel Azure OpenAI
Templat obrolan perusahaan Paket kode sumber | Samples | Retrieval Augmented Generation (RAG)|
Prasyarat
- Langganan Azure - buat langganan gratis
- .NET 7 SDK
- Sumber daya Azure OpenAI di Azure AI Foundry Models dengan model yang
gpt-4o
disebarkan. Untuk informasi selengkapnya tentang penyebaran model, lihat panduan penyebaran sumber daya.
Prasyarat ID Microsoft Entra
Untuk autentikasi tanpa kunci yang direkomendasikan dengan ID Microsoft Entra, Anda perlu:
- Instal Azure CLI yang digunakan untuk autentikasi tanpa kunci dengan ID Microsoft Entra.
- Tetapkan peran ke
Cognitive Services User
akun pengguna Anda. Anda dapat menetapkan peran dalam portal Azure di bawah Kontrol akses (IAM)>Menambahkan penetapan peran.
Penyiapan
Buat folder
chat-quickstart
baru dan buka folder mulai cepat dengan perintah berikut:mkdir chat-quickstart && cd chat-quickstart
Buat aplikasi konsol baru dengan perintah berikut:
dotnet new console
Pasang pustaka klien OpenAI .NET dengan perintah 'dotnet add package':
dotnet add package Azure.AI.OpenAI --prerelease
Untuk autentikasi tanpa kunci yang direkomendasikan dengan ID Microsoft Entra, instal paket Azure.Identity dengan:
dotnet add package Azure.Identity
Untuk autentikasi tanpa kunci yang direkomendasikan dengan ID Microsoft Entra, masuk ke Azure dengan perintah berikut:
az login
Mengambil informasi sumber daya
Anda perlu mengambil informasi berikut untuk mengautentikasi aplikasi Anda dengan sumber daya Azure OpenAI Anda:
Nama variabel | Nilai |
---|---|
AZURE_OPENAI_ENDPOINT |
Nilai ini dapat ditemukan di bagian Kunci dan Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Nilai ini akan sesuai dengan nama kustom yang Anda pilih untuk penyebaran pada saat Anda menyebarkan model. Nilai ini dapat ditemukan di bawah Penyebaran Model Manajemen>Sumber Daya di portal Azure. |
OPENAI_API_VERSION |
Pelajari selengkapnya tentang Versi API. Anda dapat mengubah versi dalam kode atau menggunakan variabel lingkungan. |
Pelajari selengkapnya tentang autentikasi tanpa kunci dan mengatur variabel lingkungan.
Jalankan mulai cepat
Kode sampel dalam panduan memulai cepat ini menggunakan Microsoft Entra ID untuk autentikasi tanpa kunci yang direkomendasikan. Jika Anda lebih suka menggunakan kunci API, Anda dapat mengganti DefaultAzureCredential
objek dengan AzureKeyCredential
objek.
AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
Anda dapat menggunakan streaming atau non-streaming untuk mendapatkan penyelesaian obrolan. Contoh kode berikut menunjukkan cara menggunakan kedua metode. Contoh pertama menunjukkan cara menggunakan metode non-streaming, dan contoh kedua menunjukkan cara menggunakan metode streaming.
Tanpa streaming respons
Untuk menjalankan mulai cepat, ikuti langkah-langkah berikut:
Gantilah isi
Program.cs
dengan kode berikut dan perbarui nilai placeholder dengan nilai Anda sendiri.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}");
Jalankan aplikasi menggunakan perintah berikut:
dotnet run
Keluaran
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!
Ini akan menunggu sampai model menghasilkan seluruh responsnya sebelum mencetak hasilnya. Atau, jika Anda ingin melakukan streaming respons secara asinkron dan mencetak hasilnya, Anda dapat mengganti konten Program.cs dengan kode dalam contoh berikutnya.
Asinkron dengan streaming
Untuk menjalankan mulai cepat, ikuti langkah-langkah berikut:
Gantilah isi
Program.cs
dengan kode berikut dan perbarui nilai placeholder dengan nilai Anda sendiri.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); } }
Jalankan aplikasi menggunakan perintah berikut:
dotnet run
Keluaran
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!
Membersihkan sumber daya
Jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI, Anda dapat menghapus sumber daya. Sebelum menghapus sumber daya, Anda harus terlebih dahulu menghapus model yang disebarkan.
Langkah berikutnya
- Mulai menggunakan obrolan menggunakan sampel data Anda sendiri untuk .NET
- Untuk contoh selengkapnya, lihat repositori GitHub Sampel Azure OpenAI
Paket kode sumber | (Go)| Sampel
Prasyarat
- Langganan Azure - buat langganan gratis
- Go 1.21.0 atau lebih tinggi diinstal secara lokal.
- Sumber daya Azure OpenAI di Azure AI Foundry Models dengan model yang
gpt-4
disebarkan. Untuk informasi selengkapnya tentang penyebaran model, lihat panduan penyebaran sumber daya.
Prasyarat ID Microsoft Entra
Untuk autentikasi tanpa kunci yang direkomendasikan dengan ID Microsoft Entra, Anda perlu:
- Instal Azure CLI yang digunakan untuk autentikasi tanpa kunci dengan ID Microsoft Entra.
- Tetapkan peran ke
Cognitive Services User
akun pengguna Anda. Anda dapat menetapkan peran dalam portal Azure di bawah Kontrol akses (IAM)>Menambahkan penetapan peran.
Penyiapan
Buat folder
chat-quickstart
baru dan buka folder mulai cepat dengan perintah berikut:mkdir chat-quickstart && cd chat-quickstart
Untuk autentikasi tanpa kunci yang direkomendasikan dengan ID Microsoft Entra, masuk ke Azure dengan perintah berikut:
az login
Mengambil informasi sumber daya
Anda perlu mengambil informasi berikut untuk mengautentikasi aplikasi Anda dengan sumber daya Azure OpenAI Anda:
Nama variabel | Nilai |
---|---|
AZURE_OPENAI_ENDPOINT |
Nilai ini dapat ditemukan di bagian Kunci dan Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Nilai ini akan sesuai dengan nama kustom yang Anda pilih untuk penyebaran pada saat Anda menyebarkan model. Nilai ini dapat ditemukan di bawah Penyebaran Model Manajemen>Sumber Daya di portal Azure. |
OPENAI_API_VERSION |
Pelajari selengkapnya tentang Versi API. Anda dapat mengubah versi dalam kode atau menggunakan variabel lingkungan. |
Pelajari selengkapnya tentang autentikasi tanpa kunci dan mengatur variabel lingkungan.
Jalankan mulai cepat
Kode sampel dalam panduan memulai cepat ini menggunakan Microsoft Entra ID untuk autentikasi tanpa kunci yang direkomendasikan. Jika Anda lebih suka menggunakan kunci API, Anda dapat mengganti NewDefaultAzureCredential
implementasi dengan NewKeyCredential
.
azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
credential, err := azidentity.NewDefaultAzureCredential(nil)
client, err := azopenai.NewClient(azureOpenAIEndpoint, credential, nil)
Untuk menjalankan sampel:
Buat file baru bernama chat_completions_keyless.go. Salin kode berikut ke dalam file chat_completions_keyless.go .
package main import ( "context" "fmt" "log" "os" "github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" ) func main() { azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT") modelDeploymentID := "gpt-4o" maxTokens:= int32(400) credential, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { log.Printf("ERROR: %s", err) return } client, err := azopenai.NewClient( azureOpenAIEndpoint, credential, nil) if err != nil { log.Printf("ERROR: %s", err) return } // This is a conversation in progress. // All messages, regardless of role, count against token usage for this API. messages := []azopenai.ChatRequestMessageClassification{ // System message sets the tone and rules of the conversation. &azopenai.ChatRequestSystemMessage{ Content: azopenai.NewChatRequestSystemMessageContent( "You are a helpful assistant."), }, // The user asks a question &azopenai.ChatRequestUserMessage{ Content: azopenai.NewChatRequestUserMessageContent( "Can I use honey as a substitute for sugar?"), }, // The reply would come back from the model. You // add it to the conversation so we can maintain context. &azopenai.ChatRequestAssistantMessage{ Content: azopenai.NewChatRequestAssistantMessageContent( "Yes, you can use use honey as a substitute for sugar."), }, // The user answers the question based on the latest reply. &azopenai.ChatRequestUserMessage{ Content: azopenai.NewChatRequestUserMessageContent( "What other ingredients can I use as a substitute for sugar?"), }, // From here you can keep iterating, sending responses back from the chat model. } gotReply := false resp, err := client.GetChatCompletions(context.TODO(), azopenai.ChatCompletionsOptions{ // This is a conversation in progress. // All messages count against token usage for this API. Messages: messages, DeploymentName: &modelDeploymentID, MaxTokens: &maxTokens, }, nil) if err != nil { // Implement application specific error handling logic. log.Printf("ERROR: %s", err) return } for _, choice := range resp.Choices { gotReply = true if choice.ContentFilterResults != nil { fmt.Fprintf(os.Stderr, "Content filter results\n") if choice.ContentFilterResults.Error != nil { fmt.Fprintf(os.Stderr, " Error:%v\n", choice.ContentFilterResults.Error) } fmt.Fprintf(os.Stderr, " Hate: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Hate.Severity, *choice.ContentFilterResults.Hate.Filtered) fmt.Fprintf(os.Stderr, " SelfHarm: sev: %v, filtered: %v\n", *choice.ContentFilterResults.SelfHarm.Severity, *choice.ContentFilterResults.SelfHarm.Filtered) fmt.Fprintf(os.Stderr, " Sexual: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Sexual.Severity, *choice.ContentFilterResults.Sexual.Filtered) fmt.Fprintf(os.Stderr, " Violence: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Violence.Severity, *choice.ContentFilterResults.Violence.Filtered) } if choice.Message != nil && choice.Message.Content != nil { fmt.Fprintf(os.Stderr, "Content[%d]: %s\n", *choice.Index, *choice.Message.Content) } if choice.FinishReason != nil { // The conversation for this choice is complete. fmt.Fprintf(os.Stderr, "Finish reason[%d]: %s\n", *choice.Index, *choice.FinishReason) } } if gotReply { fmt.Fprintf(os.Stderr, "Received chat completions reply\n") } }
Jalankan perintah berikut untuk membuat modul Go baru:
go mod init chat_completions_keyless.go
Jalankan
go mod tidy
untuk menginstal dependensi yang diperlukan:go mod tidy
Jalankan perintah berikut untuk menjalankan sampel:
go run chat_completions_keyless.go
Keluaran
Output kode sampel terlihat mirip dengan yang berikut ini:
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
Membersihkan sumber daya
Jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI, Anda dapat menghapus sumber daya. Sebelum menghapus sumber daya, Anda harus terlebih dahulu menghapus model yang disebarkan.
Langkah berikutnya
Untuk contoh selengkapnya, lihat repositori GitHub Sampel Azure OpenAI
Artefak kode sumber | (Maven) | Templat | obrolan perusahaan Pengambilan Augmented Generation (RAG) IntelliJ IDEA
Prasyarat
- Langganan Azure - buat langganan gratis
- Versi terbaru Java Development Kit (JDK)
- Alat build Gradle, atau manajer dependensi lainnya.
- Sumber daya Azure OpenAI di Azure AI Foundry Models dengan model yang
gpt-4
disebarkan. Untuk informasi selengkapnya tentang penyebaran model, lihat panduan penyebaran sumber daya.
Prasyarat ID Microsoft Entra
Untuk autentikasi tanpa kunci yang direkomendasikan dengan ID Microsoft Entra, Anda perlu:
- Instal Azure CLI yang digunakan untuk autentikasi tanpa kunci dengan ID Microsoft Entra.
- Tetapkan peran ke
Cognitive Services User
akun pengguna Anda. Anda dapat menetapkan peran dalam portal Azure di bawah Kontrol akses (IAM)>Menambahkan penetapan peran.
Penyiapan
Buat folder
chat-quickstart
baru dan buka folder mulai cepat dengan perintah berikut:mkdir chat-quickstart && cd chat-quickstart
Menginstal Apache Maven. Kemudian jalankan
mvn -v
untuk mengonfirmasi keberhasilan penginstalan.Buat file baru
pom.xml
di akar proyek Anda, dan salin kode berikut ke dalamnya:<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>
Instal Azure OpenAI SDK dan dependensi.
mvn clean dependency:copy-dependencies
Untuk autentikasi tanpa kunci yang direkomendasikan dengan ID Microsoft Entra, masuk ke Azure dengan perintah berikut:
az login
Mengambil informasi sumber daya
Anda perlu mengambil informasi berikut untuk mengautentikasi aplikasi Anda dengan sumber daya Azure OpenAI Anda:
Nama variabel | Nilai |
---|---|
AZURE_OPENAI_ENDPOINT |
Nilai ini dapat ditemukan di bagian Kunci dan Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Nilai ini akan sesuai dengan nama kustom yang Anda pilih untuk penyebaran pada saat Anda menyebarkan model. Nilai ini dapat ditemukan di bawah Penyebaran Model Manajemen>Sumber Daya di portal Azure. |
OPENAI_API_VERSION |
Pelajari selengkapnya tentang Versi API. Anda dapat mengubah versi dalam kode atau menggunakan variabel lingkungan. |
Pelajari selengkapnya tentang autentikasi tanpa kunci dan mengatur variabel lingkungan.
Menjalankan aplikasi
Kode sampel dalam panduan memulai cepat ini menggunakan Microsoft Entra ID untuk autentikasi tanpa kunci yang direkomendasikan. Jika Anda lebih suka menggunakan kunci API, Anda dapat mengganti DefaultAzureCredential
objek dengan AzureKeyCredential
objek.
OpenAIClient client = new OpenAIClientBuilder()
.endpoint(endpoint)
.credential(new DefaultAzureCredentialBuilder().build())
.buildAsyncClient();
Ikuti langkah-langkah ini untuk membuat aplikasi konsol untuk pengenalan ucapan.
Buat file baru bernama Quickstart.java di direktori akar proyek yang sama.
Salin kode berikut ke 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()); } }
Jalankan aplikasi konsol baru Anda untuk menghasilkan gambar:
javac Quickstart.java -cp ".;target\dependency\*" java -cp ".;target\dependency\*" Quickstart
Keluaran
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.
Membersihkan sumber daya
Jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI, Anda dapat menghapus sumber daya. Sebelum menghapus sumber daya, Anda harus terlebih dahulu menghapus model yang disebarkan.
Langkah berikutnya
- Mulai menggunakan obrolan menggunakan sampel data Anda sendiri untuk Java
- Untuk contoh selengkapnya, lihat repositori GitHub Sampel Azure OpenAI
Artefak kode sumber | (Maven)Sampel |
Prasyarat
- Langganan Azure - buat langganan gratis
- Versi terbaru Java Development Kit (JDK)
- Alat Spring Boot CLI
- Sumber daya Azure OpenAI di Azure AI Foundry Models dengan model yang
gpt-4
disebarkan. Untuk informasi selengkapnya tentang penyebaran model, lihat panduan penyebaran sumber daya. Contoh ini mengasumsikan bahwa nama penyebaran Anda cocok dengan nama modelgpt-4
Penyiapan
Mengambil kunci dan titik akhir
Agar berhasil melakukan panggilan terhadap Azure OpenAI, Anda memerlukan titik akhir dan kunci.
Nama variabel | Nilai |
---|---|
ENDPOINT |
Titik akhir layanan dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. Atau, Anda dapat menemukan titik akhir melalui halaman Penyebaran di portal Azure AI Foundry. Contoh titik akhir adalah: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Nilai ini dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Microsoft Azure. Anda dapat menggunakan KEY1 atau KEY2 . |
Buka sumber daya Anda di portal Azure. Bagian Kunci & Titik Akhir dapat ditemukan di bagian Manajemen Sumber Daya. Salin titik akhir dan kunci akses Anda karena keduanya diperlukan untuk mengautentikasi panggilan API Anda. Anda dapat menggunakan KEY1
atau KEY2
. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan.
Variabel lingkungan
Buat dan tetapkan variabel lingkungan persisten untuk kunci dan titik akhir Anda.
Penting
Gunakan kunci API dengan hati-hati. Jangan sertakan kunci API langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik. Jika Anda menggunakan kunci API, simpan dengan aman di Azure Key Vault. Untuk informasi selengkapnya tentang menggunakan kunci API dengan aman di aplikasi Anda, lihat Kunci API dengan Azure Key Vault.
Untuk informasi selengkapnya tentang keamanan layanan AI, lihat Mengautentikasi permintaan ke layanan Azure AI.
Catatan
Spring AI default nama model ke gpt-35-turbo
. Anda hanya perlu memberikan SPRING_AI_AZURE_OPENAI_MODEL
nilai jika Anda telah menyebarkan model dengan nama yang berbeda.
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"
Membuat aplikasi Spring baru
Buat proyek Spring baru.
Di jendela Bash, buat direktori baru untuk aplikasi Anda, dan navigasikan ke dalamnya.
mkdir ai-chat-demo && cd ai-chat-demo
Jalankan perintah spring init
dari direktori yang berfungsi. Perintah ini membuat struktur direktori standar untuk proyek Spring Anda termasuk file sumber kelas Java utama dan file pom.xml yang digunakan untuk mengelola proyek berbasis Maven.
spring init -a ai-chat-demo -n AIChat --force --build maven -x
File dan folder yang dihasilkan menyerupai struktur berikut:
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
Edit aplikasi Spring
Edit file pom.xml.
Dari akar direktori proyek, buka file pom.xml di editor atau IDE pilihan Anda dan timpa file dengan konten berikut:
<?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>
Dari folder src/main/java/com/example/aichatdemo, buka AiChatApplication.java di editor atau IDE pilihan Anda dan tempelkan dalam kode berikut:
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); }; } }
Penting
Untuk produksi, gunakan cara yang aman untuk menyimpan dan mengakses kredensial Anda seperti Azure Key Vault. Untuk informasi selengkapnya tentang keamanan kredensial, lihat artikel keamanan ini.
Navigasi kembali ke folder akar proyek, dan jalankan aplikasi dengan menggunakan perintah berikut:
./mvnw spring-boot:run
Keluaran
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: 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.
Membersihkan sumber daya
Jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI, Anda dapat menghapus sumber daya. Sebelum menghapus sumber daya, Anda harus terlebih dahulu menghapus model yang disebarkan.
Langkah berikutnya
Untuk contoh selengkapnya, lihat repositori GitHub Sampel Azure OpenAI
Paket kode sumber | (npm) | Sampel
Catatan
Panduan ini menggunakan paket npm OpenAI terbaru yang sekarang sepenuhnya mendukung Azure OpenAI. Jika Anda mencari contoh kode untuk SDK JavaScript Azure OpenAI warisan, contoh kode tersebut saat ini masih tersedia dalam repositori ini.
Prasyarat
- Langganan Azure - buat langganan gratis
- Versi LTS dari Node.js
- Azure CLI yang digunakan untuk autentikasi tanpa kata sandi di lingkungan pengembangan lokal, buat konteks yang diperlukan dengan masuk dengan Azure CLI.
- Sumber daya Azure OpenAI di Azure AI Foundry Models yang model seri
gpt-4
telah disebarkan. Untuk informasi selengkapnya tentang penyebaran model, lihat panduan penyebaran sumber daya.
Prasyarat ID Microsoft Entra
Untuk autentikasi tanpa kunci yang direkomendasikan dengan ID Microsoft Entra, Anda perlu:
- Instal Azure CLI yang digunakan untuk autentikasi tanpa kunci dengan ID Microsoft Entra.
- Tetapkan peran ke
Cognitive Services User
akun pengguna Anda. Anda dapat menetapkan peran dalam portal Azure di bawah Kontrol akses (IAM)>Menambahkan penetapan peran.
Penyiapan
Buat folder
chat-quickstart
baru dan buka folder mulai cepat dengan perintah berikut:mkdir chat-quickstart && cd chat-quickstart
Buat
package.json
dengan perintah berikut:npm init -y
Instal pustaka klien OpenAI untuk JavaScript dengan:
npm install openai
Untuk autentikasi tanpa kata sandi yang direkomendasikan :
npm install @azure/identity
Mengambil informasi sumber daya
Anda perlu mengambil informasi berikut untuk mengautentikasi aplikasi Anda dengan sumber daya Azure OpenAI Anda:
Nama variabel | Nilai |
---|---|
AZURE_OPENAI_ENDPOINT |
Nilai ini dapat ditemukan di bagian Kunci dan Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Nilai ini akan sesuai dengan nama kustom yang Anda pilih untuk penyebaran pada saat Anda menyebarkan model. Nilai ini dapat ditemukan di bawah Penyebaran Model Manajemen>Sumber Daya di portal Azure. |
OPENAI_API_VERSION |
Pelajari selengkapnya tentang Versi API. Anda dapat mengubah versi dalam kode atau menggunakan variabel lingkungan. |
Pelajari selengkapnya tentang autentikasi tanpa kunci dan mengatur variabel lingkungan.
Perhatian
Untuk menggunakan autentikasi tanpa kunci yang direkomendasikan dengan SDK, pastikan variabel AZURE_OPENAI_API_KEY
lingkungan tidak diatur.
Membuat aplikasi sampel
index.js
Buat file dengan kode berikut: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 };
Masuk ke Azure dengan perintah berikut:
az login
Jalankan file JavaScript.
node index.js
Keluaran
== Chat Completions Sample ==
{
content: 'Yes, several other Azure services also support customer managed keys for enhanced security and control over encryption keys.',
role: 'assistant'
}
Catatan
Jika Anda menerima kesalahan: Terjadi kesalahan: OpenAIError: Argumen apiKey
dan azureADTokenProvider
saling eksklusif; hanya satu yang dapat diteruskan pada satu waktu. Anda mungkin perlu menghapus variabel lingkungan yang sudah ada sebelumnya untuk kunci API dari sistem Anda. Meskipun sampel kode ID Microsoft Entra tidak secara eksplisit mereferensikan variabel lingkungan kunci API, jika ada pada sistem yang menjalankan sampel ini, kesalahan ini masih dihasilkan.
Membersihkan sumber daya
Jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI, Anda dapat menghapus sumber daya. Sebelum menghapus sumber daya, Anda harus terlebih dahulu menghapus model yang disebarkan.
Langkah berikutnya
- Gambaran Umum Azure OpenAI
- Mulai menggunakan obrolan menggunakan sampel data Anda sendiri untuk JavaScript
- Untuk contoh selengkapnya, lihat repositori GitHub Sampel Azure OpenAI
Paket kode sumber | (npm) | Sampel
Catatan
Panduan ini menggunakan paket npm OpenAI terbaru yang sekarang sepenuhnya mendukung Azure OpenAI. Jika Anda mencari contoh kode untuk SDK JavaScript Azure OpenAI warisan, contoh kode tersebut saat ini masih tersedia dalam repositori ini.
Prasyarat
- Langganan Azure - buat langganan gratis
- Versi LTS dari Node.js
- TypeScript
- Azure CLI yang digunakan untuk autentikasi tanpa kata sandi di lingkungan pengembangan lokal, buat konteks yang diperlukan dengan masuk dengan Azure CLI.
- Sumber daya Azure OpenAI di Azure AI Foundry Models yang model seri
gpt-4
telah disebarkan. Untuk informasi selengkapnya tentang penyebaran model, lihat panduan penyebaran sumber daya.
Prasyarat ID Microsoft Entra
Untuk autentikasi tanpa kunci yang direkomendasikan dengan ID Microsoft Entra, Anda perlu:
- Instal Azure CLI yang digunakan untuk autentikasi tanpa kunci dengan ID Microsoft Entra.
- Tetapkan peran ke
Cognitive Services User
akun pengguna Anda. Anda dapat menetapkan peran dalam portal Azure di bawah Kontrol akses (IAM)>Menambahkan penetapan peran.
Penyiapan
Buat folder
chat-quickstart
baru dan buka folder mulai cepat dengan perintah berikut:mkdir chat-quickstart && cd chat-quickstart
Buat
package.json
dengan perintah berikut:npm init -y
package.json
Perbarui ke ECMAScript dengan perintah berikut:npm pkg set type=module
Instal pustaka klien OpenAI untuk JavaScript dengan:
npm install openai
Untuk autentikasi tanpa kata sandi yang direkomendasikan :
npm install @azure/identity
Mengambil informasi sumber daya
Anda perlu mengambil informasi berikut untuk mengautentikasi aplikasi Anda dengan sumber daya Azure OpenAI Anda:
Nama variabel | Nilai |
---|---|
AZURE_OPENAI_ENDPOINT |
Nilai ini dapat ditemukan di bagian Kunci dan Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Nilai ini akan sesuai dengan nama kustom yang Anda pilih untuk penyebaran pada saat Anda menyebarkan model. Nilai ini dapat ditemukan di bawah Penyebaran Model Manajemen>Sumber Daya di portal Azure. |
OPENAI_API_VERSION |
Pelajari selengkapnya tentang Versi API. Anda dapat mengubah versi dalam kode atau menggunakan variabel lingkungan. |
Pelajari selengkapnya tentang autentikasi tanpa kunci dan mengatur variabel lingkungan.
Perhatian
Untuk menggunakan autentikasi tanpa kunci yang direkomendasikan dengan SDK, pastikan variabel AZURE_OPENAI_API_KEY
lingkungan tidak diatur.
Membuat aplikasi sampel
index.ts
Buat file dengan kode berikut: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); });
tsconfig.json
Buat file untuk menerjemahkan kode TypeScript dan salin kode berikut untuk ECMAScript.{ "compilerOptions": { "module": "NodeNext", "target": "ES2022", // Supports top-level await "moduleResolution": "NodeNext", "skipLibCheck": true, // Avoid type errors from node_modules "strict": true // Enable strict type-checking options }, "include": ["*.ts"] }
Transpile dari TypeScript ke JavaScript.
tsc
Jalankan kode dengan perintah berikut:
node index.js
Keluaran
== Chat Completions Sample ==
{
content: 'Yes, several other Azure services also support customer managed keys for enhanced security and control over encryption keys.',
role: 'assistant'
}
Catatan
Jika Anda menerima kesalahan: Terjadi kesalahan: OpenAIError: Argumen apiKey
dan azureADTokenProvider
saling eksklusif; hanya satu yang dapat diteruskan pada satu waktu. Anda mungkin perlu menghapus variabel lingkungan yang sudah ada sebelumnya untuk kunci API dari sistem Anda. Meskipun sampel kode ID Microsoft Entra tidak secara eksplisit mereferensikan variabel lingkungan kunci API, jika ada pada sistem yang menjalankan sampel ini, kesalahan ini masih dihasilkan.
Membersihkan sumber daya
Jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI, Anda dapat menghapus sumber daya. Sebelum menghapus sumber daya, Anda harus terlebih dahulu menghapus model yang disebarkan.
Langkah berikutnya
- Gambaran Umum Azure OpenAI
- Untuk contoh selengkapnya, lihat repositori GitHub Sampel Azure OpenAI
Paket kode | sumber pustaka (PyPi) | Templat obrolan perusahaan Retrieval Augmented Generation (RAG) |
Prasyarat
- Langganan Azure - buat langganan gratis
- Python 3.8 atau versi yang lebih baru.
- Pustaka Python berikut: os.
- Sumber daya Azure OpenAI di Azure AI Foundry Models dengan model
gpt-35-turbo
ataugpt-4
yang masing-masing diaktifkan. Untuk informasi selengkapnya tentang penyebaran model, lihat panduan penyebaran sumber daya.
Penyiapan
Instal pustaka klien OpenAI Python dengan:
pip install openai
Catatan
Pustaka ini dikelola oleh OpenAI. Lihat riwayat rilis untuk melacak pembaruan terbaru ke pustaka.
Mengambil kunci dan titik akhir
Agar berhasil melakukan panggilan terhadap Azure OpenAI, Anda memerlukan titik akhir dan kunci.
Nama variabel | Nilai |
---|---|
ENDPOINT |
Titik akhir layanan dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. Atau, Anda dapat menemukan titik akhir melalui halaman Penyebaran di portal Azure AI Foundry. Contoh titik akhir adalah: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Nilai ini dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Microsoft Azure. Anda dapat menggunakan KEY1 atau KEY2 . |
Buka sumber daya Anda di portal Azure. Bagian Kunci & Titik Akhir dapat ditemukan di bagian Manajemen Sumber Daya. Salin titik akhir dan kunci akses Anda karena keduanya diperlukan untuk mengautentikasi panggilan API Anda. Anda dapat menggunakan KEY1
atau KEY2
. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan.
Variabel lingkungan
Buat dan tetapkan variabel lingkungan persisten untuk kunci dan titik akhir Anda.
Penting
Kami merekomendasikan autentikasi ID Microsoft Entra dengan identitas terkelola untuk sumber daya Azure untuk menghindari penyimpanan kredensial dengan aplikasi Anda yang berjalan di cloud.
Gunakan kunci API dengan hati-hati. Jangan sertakan kunci API langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik. Jika menggunakan kunci API, simpan dengan aman di Azure Key Vault, putar kunci secara teratur, dan batasi akses ke Azure Key Vault menggunakan kontrol akses berbasis peran dan pembatasan akses jaringan. Untuk informasi selengkapnya tentang menggunakan kunci API dengan aman di aplikasi Anda, lihat Kunci API dengan Azure Key Vault.
Untuk informasi selengkapnya tentang keamanan layanan AI, lihat Mengautentikasi permintaan ke layanan Azure AI.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Membuat aplikasi Python baru
Buat file Python baru yang disebut quickstart.py. Lalu buka file di editor atau IDE pilihan Anda.
Ganti konten dari quickstart.py dengan kode berikut.
Anda perlu mengatur model
variabel ke nama penyebaran yang Anda pilih saat menyebarkan model GPT-3.5-Turbo atau GPT-4. Memasukkan nama model akan mengakibatkan kesalahan kecuali Anda memilih nama penyebaran yang identik dengan nama model yang mendasar.
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)
Penting
Untuk produksi, gunakan cara yang aman untuk menyimpan dan mengakses kredensial Anda seperti Azure Key Vault. Untuk informasi selengkapnya tentang keamanan kredensial, lihat artikel keamanan ini.
Jalankan aplikasi dengan
python
perintah pada file mulai cepat Anda:python quickstart.py
Keluaran
{
"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.
Memahami struktur pesan
Model GPT-35-Turbo dan GPT-4 dioptimalkan untuk bekerja dengan input yang diformat sebagai percakapan. Variabel messages
melewati array kamus dengan peran yang berbeda dalam percakapan yang digambarkan oleh sistem, pengguna, dan asisten. Pesan sistem dapat digunakan untuk memandikan model dengan menyertakan konteks atau instruksi tentang bagaimana model harus merespons.
Panduan cara GPT-35-Turbo & GPT-4 menyediakan pengenalan mendalam tentang opsi untuk berkomunikasi dengan model baru ini.
Membersihkan sumber daya
Jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI, Anda dapat menghapus sumber daya. Sebelum menghapus sumber daya, Anda harus terlebih dahulu menghapus model yang disebarkan.
Langkah berikutnya
- Pelajari selengkapnya tentang cara bekerja dengan GPT-35-Turbo dan model GPT-4 dengan panduan cara kami.
- Mulai menggunakan obrolan menggunakan sampel data Anda sendiri untuk Python
- Untuk contoh selengkapnya, lihat repositori GitHub Sampel Azure OpenAI
Prasyarat
- Langganan Azure - Buat langganan gratis.
- Sumber daya Azure OpenAI di Azure AI Foundry Models dengan model
gpt-35-turbo
ataugpt-4
yang masing-masing diaktifkan. Untuk informasi selengkapnya tentang penyebaran model, lihat panduan penyebaran sumber daya.
Penyiapan
Mengambil kunci dan titik akhir
Agar berhasil melakukan panggilan terhadap Azure OpenAI, Anda memerlukan titik akhir dan kunci.
Nama variabel | Nilai |
---|---|
ENDPOINT |
Titik akhir layanan dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. Atau, Anda dapat menemukan titik akhir melalui halaman Penyebaran di portal Azure AI Foundry. Contoh titik akhir adalah: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Nilai ini dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Microsoft Azure. Anda dapat menggunakan KEY1 atau KEY2 . |
Buka sumber daya Anda di portal Azure. Bagian Kunci & Titik Akhir dapat ditemukan di bagian Manajemen Sumber Daya. Salin titik akhir dan kunci akses Anda karena keduanya diperlukan untuk mengautentikasi panggilan API Anda. Anda dapat menggunakan KEY1
atau KEY2
. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan.
Variabel lingkungan
Buat dan tetapkan variabel lingkungan persisten untuk kunci dan titik akhir Anda.
Penting
Kami merekomendasikan autentikasi ID Microsoft Entra dengan identitas terkelola untuk sumber daya Azure untuk menghindari penyimpanan kredensial dengan aplikasi Anda yang berjalan di cloud.
Gunakan kunci API dengan hati-hati. Jangan sertakan kunci API langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik. Jika menggunakan kunci API, simpan dengan aman di Azure Key Vault, putar kunci secara teratur, dan batasi akses ke Azure Key Vault menggunakan kontrol akses berbasis peran dan pembatasan akses jaringan. Untuk informasi selengkapnya tentang menggunakan kunci API dengan aman di aplikasi Anda, lihat Kunci API dengan Azure Key Vault.
Untuk informasi selengkapnya tentang keamanan layanan AI, lihat Mengautentikasi permintaan ke layanan Azure AI.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
REST API
Di shell bash, jalankan perintah berikut. Anda harus mengganti gpt-35-turbo
dengan nama penyebaran yang Anda pilih saat menyebarkan model GPT-35-Turbo atau GPT-4. Memasukkan nama model akan mengakibatkan kesalahan kecuali Anda memilih nama penyebaran yang identik dengan nama model yang mendasar.
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?"}]}'
Format baris pertama perintah Anda dengan contoh titik akhir akan muncul sebagai berikut curl https://docs-test-001.openai.azure.com/openai/deployments/{YOUR-DEPLOYMENT_NAME_HERE}/chat/completions?api-version=2024-02-01 \
Jika Anda mengalami pemeriksaan ganda kesalahan untuk memastikan bahwa Anda tidak memiliki dua kali lipat pada /
pemisahan antara titik akhir Anda dan /openai/deployments
.
Jika Anda ingin menjalankan perintah ini dalam perintah Windows normal, Anda harus mengubah teks untuk menghapus \
hentian baris dan .
Penting
Untuk produksi, gunakan cara yang aman untuk menyimpan dan mengakses kredensial Anda seperti Azure Key Vault. Untuk informasi selengkapnya tentang keamanan kredensial, lihat artikel keamanan ini.
Keluaran
{"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}]}
Pemformatan output yang disesuaikan untuk kemudahan membaca, output aktual adalah satu blok teks tanpa hentian baris.
Memahami struktur pesan
Model GPT-35-Turbo dan GPT-4 dioptimalkan untuk bekerja dengan input yang diformat sebagai percakapan. Variabel messages
melewati array kamus dengan peran yang berbeda dalam percakapan yang digambarkan oleh sistem, pengguna, dan asisten. Pesan sistem dapat digunakan untuk memandikan model dengan menyertakan konteks atau instruksi tentang bagaimana model harus merespons.
Panduan cara GPT-35-Turbo & GPT-4 menyediakan pengenalan mendalam tentang opsi untuk berkomunikasi dengan model baru ini.
Membersihkan sumber daya
Jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI, Anda dapat menghapus sumber daya. Sebelum menghapus sumber daya, Anda harus terlebih dahulu menghapus model yang disebarkan.
Langkah berikutnya
- Pelajari selengkapnya tentang cara bekerja dengan GPT-35-Turbo dan model GPT-4 dengan panduan cara kami.
- Untuk contoh selengkapnya, lihat repositori GitHub Sampel Azure OpenAI
Prasyarat
- Langganan Azure - buat langganan gratis
- Anda dapat menggunakan versi terbaru, PowerShell 7, atau Windows PowerShell 5.1.
- Sumber daya Azure OpenAI di Azure AI Foundry Models dengan model yang disebarkan. Untuk informasi selengkapnya tentang penyebaran model, lihat panduan penyebaran sumber daya.
- Sumber daya Azure OpenAI dengan model
gpt-4o
yang telah diterapkan. Untuk informasi selengkapnya tentang penyebaran model, lihat panduan penyebaran sumber daya.
Prasyarat ID Microsoft Entra
Untuk autentikasi tanpa kunci yang direkomendasikan dengan ID Microsoft Entra, Anda perlu:
- Instal Azure CLI yang digunakan untuk autentikasi tanpa kunci dengan ID Microsoft Entra.
- Tetapkan peran ke
Cognitive Services User
akun pengguna Anda. Anda dapat menetapkan peran dalam portal Azure di bawah Kontrol akses (IAM)>Menambahkan penetapan peran.
Mengambil informasi sumber daya
Anda perlu mengambil informasi berikut untuk mengautentikasi aplikasi Anda dengan sumber daya Azure OpenAI Anda:
Nama variabel | Nilai |
---|---|
AZURE_OPENAI_ENDPOINT |
Nilai ini dapat ditemukan di bagian Kunci dan Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Nilai ini akan sesuai dengan nama kustom yang Anda pilih untuk penyebaran pada saat Anda menyebarkan model. Nilai ini dapat ditemukan di bawah Penyebaran Model Manajemen>Sumber Daya di portal Azure. |
OPENAI_API_VERSION |
Pelajari selengkapnya tentang Versi API. Anda dapat mengubah versi dalam kode atau menggunakan variabel lingkungan. |
Pelajari selengkapnya tentang autentikasi tanpa kunci dan mengatur variabel lingkungan.
Membuat skrip PowerShell baru
Untuk autentikasi tanpa kunci yang direkomendasikan dengan ID Microsoft Entra, masuk ke Azure dengan perintah berikut:
az login
Buat file PowerShell baru yang disebut quickstart.ps1. Lalu buka file di editor atau IDE pilihan Anda.
Ganti konten quickstart.ps1 dengan kode berikut. Anda perlu mengatur
engine
variabel ke nama penyebaran yang Anda pilih saat menyebarkan model GPT-4o. Memasukkan nama model menghasilkan kesalahan kecuali jika Anda memilih nama penyebaran yang sama dengan nama model dasar.# 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
Penting
Untuk produksi, gunakan cara aman untuk menyimpan dan mengakses kredensial Anda seperti Manajemen Rahasia PowerShell dengan Azure Key Vault. Untuk informasi selengkapnya tentang keamanan kredensial, lihat artikel keamanan ini.
Jalankan skrip menggunakan PowerShell. Dalam contoh ini, kami menggunakan
-Depth
parameter untuk memastikan bahwa output tidak terpotong../quickstart.ps1 | ConvertTo-Json -Depth 4
Keluaran
Output skrip adalah objek JSON yang berisi respons dari Azure OpenAI. Outputnya mirip dengan berikut ini:
{
"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
}
}
Komentar
Anda dapat melewati ConvertTo-Json
langkah jika Anda ingin melihat output mentah.
./quickstart.ps1
Keluarannya terlihat seperti:
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}
Anda dapat mengedit konten skrip powershell.ps1 untuk mengembalikan seluruh objek atau properti tertentu. Misalnya, untuk mengembalikan teks yang dikembalikan, Anda dapat mengganti baris terakhir skrip (return $response
) dengan yang berikut:
return $response.choices.message.content
Kemudian jalankan skrip lagi.
./quickstart.ps1
Keluarannya terlihat seperti:
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?
Memahami struktur pesan
Model GPT-4 dioptimalkan untuk bekerja dengan input yang diformat sebagai percakapan. Variabel messages
melewati array kamus dengan peran yang berbeda dalam percakapan yang digambarkan oleh sistem, pengguna, dan asisten. Pesan sistem dapat digunakan untuk memandikan model dengan menyertakan konteks atau instruksi tentang bagaimana model harus merespons.
Panduan cara GPT-4 menyediakan pengenalan mendalam tentang opsi untuk berkomunikasi dengan model ini.
Membersihkan sumber daya
Jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI, Anda dapat menghapus sumber daya. Sebelum menghapus sumber daya, Anda harus terlebih dahulu menghapus model yang disebarkan.
Langkah berikutnya
- Pelajari selengkapnya tentang cara bekerja dengan model GPT-4 dengan panduan cara kami.
- Untuk contoh selengkapnya, lihat repositori GitHub Sampel Azure OpenAI