Mulai cepat: Mengobrol dengan model Azure OpenAI menggunakan data Anda sendiri
Dalam mulai cepat ini, Anda dapat menggunakan data Anda sendiri dengan model Azure OpenAI. Menggunakan model Azure OpenAI pada data Anda dapat memberi Anda platform AI percakapan yang kuat yang memungkinkan komunikasi yang lebih cepat dan lebih akurat.
Prasyarat
Sumber daya berikut:
- Azure OpenAI
- Penyimpanan Blob Azure
- Pencarian Azure AI
- Sumber daya Azure OpenAI disebarkan di wilayah yang didukung dan dengan model yang didukung.
- Pastikan Anda diberi setidaknya peran Kontributor Cognitive Services untuk sumber daya Azure OpenAI.
- Unduh contoh data dari GitHub jika Anda tidak memiliki data Anda sendiri.
Menambahkan data Anda menggunakan Azure OpenAI Studio
Tip
Anda dapat menggunakan Azure Developer CLI untuk membuat sumber daya yang diperlukan secara terprogram untuk Azure OpenAI On Your Data
Navigasi ke Azure OpenAI Studio 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.
Pilih petak peta Bawa data Anda sendiri
Di playground Obrolan, Pilih Tambahkan data Anda lalu Tambahkan sumber data
Di panel yang muncul, pilih Unggah file (pratinjau) di bawah Pilih sumber data. Azure OpenAI memerlukan sumber daya penyimpanan dan sumber daya pencarian untuk mengakses dan mengindeks data Anda.
Tip
- Lihat sumber daya berikut untuk informasi selengkapnya:
- Untuk dokumen dan himpunan data dengan teks panjang, sebaiknya gunakan skrip persiapan data yang tersedia.
Agar Azure OpenAI mengakses akun penyimpanan Anda, Anda harus mengaktifkan Berbagi sumber daya lintas asal (CORS). Jika CORS belum diaktifkan untuk sumber daya Azure Blob Storage, pilih Aktifkan CORS.
Pilih sumber daya Azure AI Search Anda, dan pilih pengakuan bahwa menyambungkannya akan menimbulkan penggunaan di akun Anda. Kemudian pilih Berikutnya.
Pada panel Unggah file , pilih Telusuri file dan pilih file yang Anda unduh dari bagian prasyarat , atau data Anda sendiri. Lalu pilih Unggah file. Kemudian pilih Berikutnya.
Pada panel Manajemen data , Anda dapat memilih apakah akan mengaktifkan pencarian semantik atau pencarian vektor untuk indeks Anda.
Penting
- Pencarian semantik dan pencarian vektor tunduk pada harga tambahan. Anda perlu memilih SKU Dasar atau lebih tinggi untuk mengaktifkan pencarian semantik atau pencarian vektor. Lihat perbedaan tingkat harga dan batas layanan untuk informasi selengkapnya.
- Untuk membantu meningkatkan kualitas pengambilan informasi dan respons model, sebaiknya aktifkan pencarian semantik untuk bahasa sumber data berikut: Inggris, Prancis, Spanyol, Portugis, Italia, Jerman, Cina(Zh), Jepang, Korea, Rusia, dan Arab.
Tinjau detail yang Anda masukkan, dan pilih Simpan dan tutup. Anda sekarang dapat mengobrol dengan model dan akan menggunakan informasi dari data Anda untuk membangun respons.
Playground obrolan
Mulai jelajahi kemampuan Azure OpenAI dengan pendekatan tanpa kode melalui taman bermain obrolan. Ini hanya kotak teks di mana Anda dapat mengirimkan permintaan untuk membuat penyelesaian. Dari halaman ini, Anda dapat dengan cepat melakukan iterasi dan bereksperimen dengan kemampuan.
Taman bermain memberi Anda opsi untuk menyesuaikan pengalaman obrolan Anda. Di sebelah kanan, Anda dapat memilih Penyebaran untuk menentukan model mana yang menghasilkan respons menggunakan hasil pencarian dari indeks Anda. Anda memilih jumlah pesan sebelumnya untuk disertakan sebagai riwayat percakapan untuk respons yang dihasilkan di masa mendatang. Riwayat percakapan memberikan konteks untuk menghasilkan respons terkait tetapi juga menggunakan penggunaan token. Indikator kemajuan token input melacak jumlah token pertanyaan yang Anda kirimkan.
Pengaturan Tingkat Lanjut di sebelah kiri adalah parameter runtime, yang memberi Anda kontrol atas pengambilan dan mencari informasi yang relevan dari data Anda. Kasus penggunaan yang baik adalah ketika Anda ingin memastikan respons dihasilkan hanya berdasarkan data Anda atau Anda menemukan model tidak dapat menghasilkan respons berdasarkan informasi yang ada pada data Anda.
Keketatan menentukan agresivitas sistem dalam memfilter dokumen pencarian berdasarkan skor kesamaannya. Mengatur ketegasan ke 5 menunjukkan bahwa sistem akan secara agresif memfilter dokumen, menerapkan ambang kesamaan yang sangat tinggi. Pencarian semantik dapat membantu dalam skenario ini karena model peringkat melakukan pekerjaan yang lebih baik untuk menyimpulkan niat kueri. Tingkat keketatan yang lebih rendah menghasilkan lebih banyak jawaban verbose, tetapi mungkin juga menyertakan informasi yang tidak ada dalam indeks Anda. Ini diatur ke 3 secara default.
Dokumen yang diambil adalah bilangan bulat yang dapat diatur ke 3, 5, 10, atau 20, dan mengontrol jumlah gugus dokumen yang disediakan untuk model bahasa besar untuk merumuskan respons akhir. Secara default, ini diatur ke 5.
Saat Batasi respons terhadap data Anda diaktifkan, model hanya mencoba mengandalkan dokumen Anda untuk respons. Ini diatur ke true secara default.
Kirim kueri pertama Anda. Model obrolan berkinerja terbaik dalam latihan tanya jawab. Misalnya, "Apa paket kesehatan saya yang tersedia?" atau "Apa opsi plus kesehatannya?".
Kueri yang memerlukan analisis data mungkin akan gagal, seperti "Paket kesehatan mana yang paling populer?". Kueri yang memerlukan informasi tentang semua data Anda juga kemungkinan akan gagal, seperti "Berapa banyak dokumen yang telah saya unggah?". Ingatlah bahwa mesin pencari mencari potongan yang memiliki istilah, frasa, atau konstruksi yang tepat atau serupa dengan kueri. Dan meskipun model mungkin memahami pertanyaan, jika hasil pencarian adalah gugus dari himpunan data, itu bukan informasi yang tepat untuk menjawab pertanyaan semacam itu.
Obrolan dibatasi oleh jumlah dokumen (potongan) yang dikembalikan dalam respons (dibatasi hingga 3-20 di taman bermain Azure OpenAI Studio). Seperti yang dapat Anda bayangkan, mengajukan pertanyaan tentang "semua judul" memerlukan pemindaian penuh dari seluruh penyimpanan vektor.
Sebarkan model anda
Setelah puas dengan pengalaman di studio Azure OpenAI, Anda dapat menyebarkan aplikasi web langsung dari Studio 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.
Prasyarat
Sumber daya berikut:
- Azure OpenAI
- Penyimpanan Blob Azure
- Pencarian Azure AI
- Sumber daya Azure OpenAI disebarkan di wilayah yang didukung dan dengan model yang didukung.
- Pastikan Anda diberi setidaknya peran Kontributor Cognitive Services untuk sumber daya Azure OpenAI.
- Unduh contoh data dari GitHub jika Anda tidak memiliki data Anda sendiri.
- .NET 8 SDK
Menambahkan data Anda menggunakan Azure OpenAI Studio
Tip
Anda dapat menggunakan Azure Developer CLI untuk membuat sumber daya yang diperlukan secara terprogram untuk Azure OpenAI On Your Data
Navigasi ke Azure OpenAI Studio 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.
Pilih petak peta Bawa data Anda sendiri
Di playground Obrolan, Pilih Tambahkan data Anda lalu Tambahkan sumber data
Di panel yang muncul, pilih Unggah file (pratinjau) di bawah Pilih sumber data. Azure OpenAI memerlukan sumber daya penyimpanan dan sumber daya pencarian untuk mengakses dan mengindeks data Anda.
Tip
- Lihat sumber daya berikut untuk informasi selengkapnya:
- Untuk dokumen dan himpunan data dengan teks panjang, sebaiknya gunakan skrip persiapan data yang tersedia.
Agar Azure OpenAI mengakses akun penyimpanan Anda, Anda harus mengaktifkan Berbagi sumber daya lintas asal (CORS). Jika CORS belum diaktifkan untuk sumber daya Azure Blob Storage, pilih Aktifkan CORS.
Pilih sumber daya Azure AI Search Anda, dan pilih pengakuan bahwa menyambungkannya akan menimbulkan penggunaan di akun Anda. Kemudian pilih Berikutnya.
Pada panel Unggah file , pilih Telusuri file dan pilih file yang Anda unduh dari bagian prasyarat , atau data Anda sendiri. Lalu pilih Unggah file. Kemudian pilih Berikutnya.
Pada panel Manajemen data , Anda dapat memilih apakah akan mengaktifkan pencarian semantik atau pencarian vektor untuk indeks Anda.
Penting
- Pencarian semantik dan pencarian vektor tunduk pada harga tambahan. Anda perlu memilih SKU Dasar atau lebih tinggi untuk mengaktifkan pencarian semantik atau pencarian vektor. Lihat perbedaan tingkat harga dan batas layanan untuk informasi selengkapnya.
- Untuk membantu meningkatkan kualitas pengambilan informasi dan respons model, sebaiknya aktifkan pencarian semantik untuk bahasa sumber data berikut: Inggris, Prancis, Spanyol, Portugis, Italia, Jerman, Cina(Zh), Jepang, Korea, Rusia, dan Arab.
Tinjau detail yang Anda masukkan, dan pilih Simpan dan tutup. Anda sekarang dapat mengobrol dengan model dan akan menggunakan informasi dari data Anda untuk membangun respons.
Mengambil variabel yang diperlukan
Agar berhasil melakukan panggilan terhadap Azure OpenAI, Anda memerlukan variabel berikut. Mulai cepat ini mengasumsikan Anda telah mengunggah data Anda ke akun penyimpanan blob Azure dan membuat indeks Azure AI Search. Lihat Menambahkan data Anda menggunakan studio Azure AI
Nama variabel | Nilai |
---|---|
AZURE_OPENAI_ENDPOINT |
Nilai ini dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Azure OpenAI Anda dari portal Azure. Atau, Anda dapat menemukan nilainya di tampilan Kode playground>Obrolan studio>Azure AI. Contoh titik akhir adalah: https://my-resoruce.openai.azure.com . |
AZURE_OPENAI_API_KEY |
Nilai ini dapat ditemukan di bagian Kunci Manajemen>sumber daya & Titik Akhir saat memeriksa sumber daya Azure OpenAI Anda dari portal Azure. Anda dapat menggunakan KEY1 atau KEY2 . Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan. |
AZURE_OPENAI_DEPLOYMENT_ID |
Nilai ini sesuai dengan nama kustom yang Anda pilih untuk penyebaran saat Anda menyebarkan model. Nilai ini dapat ditemukan di bawah Penyebaran Manajemen>Sumber Daya di portal Azure atau sebagai alternatif di bawah Penyebaran Manajemen>di studio Azure AI. |
AZURE_AI_SEARCH_ENDPOINT |
Nilai ini dapat ditemukan di bagian Gambaran Umum saat memeriksa sumber daya Azure AI Search Anda dari portal Azure. |
AZURE_AI_SEARCH_API_KEY |
Nilai ini dapat ditemukan di bagian Kunci Pengaturan>saat memeriksa sumber daya Pencarian Azure AI Anda dari portal Azure. Anda dapat menggunakan kunci admin utama atau kunci admin sekunder. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan. |
AZURE_AI_SEARCH_INDEX |
Nilai ini sesuai dengan nama indeks yang Anda buat untuk menyimpan data Anda. Anda dapat menemukannya di bagian Gambaran Umum saat memeriksa sumber daya Azure AI Search Anda dari portal Azure. |
Variabel lingkungan
Buat dan tetapkan variabel lingkungan persisten untuk kunci dan titik akhir Anda.
Penting
Jika Anda menggunakan kunci API, simpan dengan aman di tempat lain, seperti di Azure Key Vault. Jangan sertakan kunci API langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik.
Untuk informasi selengkapnya tentang keamanan layanan AI, lihat Mengautentikasi permintaan ke layanan Azure AI.
setx AZURE_OPENAI_ENDPOINT REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
setx AZURE_OPENAI_API_KEY REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
setx AZURE_OPENAI_DEPLOYMENT_ID REPLACE_WITH_YOUR_AOAI_DEPLOYMENT_VALUE_HERE
setx AZURE_AI_SEARCH_ENDPOINT REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
setx AZURE_AI_SEARCH_API_KEY REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
setx AZURE_AI_SEARCH_INDEX REPLACE_WITH_YOUR_INDEX_NAME_HERE
Buat aplikasi .NET Core baru
Di jendela konsol (seperti cmd, PowerShell, atau Bash), gunakan perintah dotnet new
untuk membuat aplikasi konsol baru dengan nama azure-openai-quickstart
. Perintah ini membuat proyek "Halo Dunia" sederhana dengan satu file sumber C#: Program.cs.
dotnet new console -n azure-openai-quickstart
Ubah direktori Anda ke folder aplikasi yang baru dibuat. Anda dapat membangun aplikasi dengan:
dotnet build
Output build tidak boleh berisi peringatan atau kesalahan.
...
Build succeeded.
0 Warning(s)
0 Error(s)
...
Instal pustaka klien OpenAI .NET dengan:
dotnet add package Azure.AI.OpenAI --prerelease
Dari direktori proyek, buka file Program.cs dan ganti kontennya dengan kode berikut:
Tanpa streaming respons
using Azure;
using Azure.AI.OpenAI;
using Azure.AI.OpenAI.Chat;
using OpenAI.Chat;
using System.Text.Json;
using static System.Environment;
string azureOpenAIEndpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string azureOpenAIKey = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");
string deploymentName = GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_ID");
string searchEndpoint = GetEnvironmentVariable("AZURE_AI_SEARCH_ENDPOINT");
string searchKey = GetEnvironmentVariable("AZURE_AI_SEARCH_API_KEY");
string searchIndex = GetEnvironmentVariable("AZURE_AI_SEARCH_INDEX");
#pragma warning disable AOAI001
AzureOpenAIClient azureClient = new(
new Uri(azureOpenAIEndpoint),
new AzureKeyCredential(azureOpenAIKey));
ChatClient chatClient = azureClient.GetChatClient(deploymentName);
ChatCompletionOptions options = new();
options.AddDataSource(new AzureSearchChatDataSource()
{
Endpoint = new Uri(searchEndpoint),
IndexName = searchIndex,
Authentication = DataSourceAuthentication.FromApiKey(searchKey),
});
ChatCompletion completion = chatClient.CompleteChat(
[
new UserChatMessage("What are my available health plans?"),
], options);
Console.WriteLine(completion.Content[0].Text);
AzureChatMessageContext onYourDataContext = completion.GetAzureMessageContext();
if (onYourDataContext?.Intent is not null)
{
Console.WriteLine($"Intent: {onYourDataContext.Intent}");
}
foreach (AzureChatCitation citation in onYourDataContext?.Citations ?? [])
{
Console.WriteLine($"Citation: {citation.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 layanan Azure AI.
dotnet run program.cs
Output
Contoso Electronics offers two health plans: Northwind Health Plus and Northwind Standard [doc1]. Northwind Health Plus is a comprehensive plan that provides coverage for medical, vision, and dental services, prescription drug coverage, mental health and substance abuse coverage, and coverage for preventive care services. It also offers coverage for emergency services, both in-network and out-of-network. On the other hand, Northwind Standard is a basic plan that provides coverage for medical, vision, and dental services, prescription drug coverage, and coverage for preventive care services. However, it does not offer coverage for emergency services, mental health and substance abuse coverage, or out-of-network services [doc1].
Intent: ["What are the available health plans?", "List of health plans available", "Health insurance options", "Types of health plans offered"]
Citation:
Contoso Electronics plan and benefit packages
Thank you for your interest in the Contoso electronics plan and benefit packages. Use this document to
learn more about the various options available to you...// Omitted for brevity
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
using Azure;
using Azure.AI.OpenAI;
using Azure.AI.OpenAI.Chat;
using OpenAI.Chat;
using static System.Environment;
string azureOpenAIEndpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string azureOpenAIKey = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");
string deploymentName = GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_ID");
string searchEndpoint = GetEnvironmentVariable("AZURE_AI_SEARCH_ENDPOINT");
string searchKey = GetEnvironmentVariable("AZURE_AI_SEARCH_API_KEY");
string searchIndex = GetEnvironmentVariable("AZURE_AI_SEARCH_INDEX");
#pragma warning disable AOAI001
AzureOpenAIClient azureClient = new(
new Uri(azureOpenAIEndpoint),
new AzureKeyCredential(azureOpenAIKey));
ChatClient chatClient = azureClient.GetChatClient(deploymentName);
ChatCompletionOptions options = new();
options.AddDataSource(new AzureSearchChatDataSource()
{
Endpoint = new Uri(searchEndpoint),
IndexName = searchIndex,
Authentication = DataSourceAuthentication.FromApiKey(searchKey),
});
var chatUpdates = chatClient.CompleteChatStreamingAsync(
[
new UserChatMessage("What are my available health plans?"),
], options);
AzureChatMessageContext onYourDataContext = null;
await foreach (var chatUpdate in chatUpdates)
{
if (chatUpdate.Role.HasValue)
{
Console.WriteLine($"{chatUpdate.Role}: ");
}
foreach (var contentPart in chatUpdate.ContentUpdate)
{
Console.Write(contentPart.Text);
}
if (onYourDataContext == null)
{
onYourDataContext = chatUpdate.GetAzureMessageContext();
}
}
Console.WriteLine();
if (onYourDataContext?.Intent is not null)
{
Console.WriteLine($"Intent: {onYourDataContext.Intent}");
}
foreach (AzureChatCitation citation in onYourDataContext?.Citations ?? [])
{
Console.Write($"Citation: {citation.Content}");
}
Sampel kode sumber kodesumber| |
Prasyarat
Sumber daya berikut:
- Azure OpenAI
- Penyimpanan Blob Azure
- Pencarian Azure AI
- Sumber daya Azure OpenAI disebarkan di wilayah yang didukung dan dengan model yang didukung.
- Pastikan Anda diberi setidaknya peran Kontributor Cognitive Services untuk sumber daya Azure OpenAI.
- Unduh contoh data dari GitHub jika Anda tidak memiliki data Anda sendiri.
Menambahkan data Anda menggunakan Azure OpenAI Studio
Tip
Anda dapat menggunakan Azure Developer CLI untuk membuat sumber daya yang diperlukan secara terprogram untuk Azure OpenAI On Your Data
Navigasi ke Azure OpenAI Studio 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.
Pilih petak peta Bawa data Anda sendiri
Di playground Obrolan, Pilih Tambahkan data Anda lalu Tambahkan sumber data
Di panel yang muncul, pilih Unggah file (pratinjau) di bawah Pilih sumber data. Azure OpenAI memerlukan sumber daya penyimpanan dan sumber daya pencarian untuk mengakses dan mengindeks data Anda.
Tip
- Lihat sumber daya berikut untuk informasi selengkapnya:
- Untuk dokumen dan himpunan data dengan teks panjang, sebaiknya gunakan skrip persiapan data yang tersedia.
Agar Azure OpenAI mengakses akun penyimpanan Anda, Anda harus mengaktifkan Berbagi sumber daya lintas asal (CORS). Jika CORS belum diaktifkan untuk sumber daya Azure Blob Storage, pilih Aktifkan CORS.
Pilih sumber daya Azure AI Search Anda, dan pilih pengakuan bahwa menyambungkannya akan menimbulkan penggunaan di akun Anda. Kemudian pilih Berikutnya.
Pada panel Unggah file , pilih Telusuri file dan pilih file yang Anda unduh dari bagian prasyarat , atau data Anda sendiri. Lalu pilih Unggah file. Kemudian pilih Berikutnya.
Pada panel Manajemen data , Anda dapat memilih apakah akan mengaktifkan pencarian semantik atau pencarian vektor untuk indeks Anda.
Penting
- Pencarian semantik dan pencarian vektor tunduk pada harga tambahan. Anda perlu memilih SKU Dasar atau lebih tinggi untuk mengaktifkan pencarian semantik atau pencarian vektor. Lihat perbedaan tingkat harga dan batas layanan untuk informasi selengkapnya.
- Untuk membantu meningkatkan kualitas pengambilan informasi dan respons model, sebaiknya aktifkan pencarian semantik untuk bahasa sumber data berikut: Inggris, Prancis, Spanyol, Portugis, Italia, Jerman, Cina(Zh), Jepang, Korea, Rusia, dan Arab.
Tinjau detail yang Anda masukkan, dan pilih Simpan dan tutup. Anda sekarang dapat mengobrol dengan model dan akan menggunakan informasi dari data Anda untuk membangun respons.
Mengambil variabel yang diperlukan
Agar berhasil melakukan panggilan terhadap Azure OpenAI, Anda memerlukan variabel berikut. Mulai cepat ini mengasumsikan Anda telah mengunggah data Anda ke akun penyimpanan blob Azure dan membuat indeks Azure AI Search. Untuk informasi selengkapnya, lihat Menambahkan data Anda menggunakan studio Azure AI.
Nama variabel | Nilai |
---|---|
AZURE_OPENAI_ENDPOINT |
Anda dapat menemukan nilai ini di bagian Kunci & Titik Akhir saat memeriksa sumber daya Azure OpenAI Anda dari portal Azure. Atau, Anda dapat menemukan nilainya di tampilan Kode playground>Obrolan studio>Azure AI. Contoh titik akhir adalah: https://my-resource.openai.azure.com . |
AZURE_OPENAI_API_KEY |
Anda dapat menemukan nilai ini di bagian Kunci Manajemen>sumber daya & Titik Akhir saat memeriksa sumber daya Azure OpenAI Anda dari portal Azure. Anda dapat menggunakan KEY1 atau KEY2 . Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan. |
AZURE_OPEN_AI_DEPLOYMENT_ID |
Nilai ini sesuai dengan nama kustom yang Anda pilih untuk penyebaran saat Anda menyebarkan model. Anda dapat menemukan nilai ini di bawah Penyebaran Manajemen>Sumber Daya di portal Azure atau di bawah Penyebaran Manajemen>di studio Azure AI. |
AZURE_AI_SEARCH_ENDPOINT |
Anda dapat menemukan nilai ini di bagian Gambaran Umum saat memeriksa sumber daya Azure AI Search Anda dari portal Azure. |
AZURE_AI_SEARCH_API_KEY |
Anda dapat menemukan nilai ini di bagian Kunci Pengaturan>saat memeriksa sumber daya Azure AI Search Anda dari portal Azure. Anda dapat menggunakan kunci admin utama atau kunci admin sekunder. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan. |
AZURE_AI_SEARCH_INDEX |
Nilai ini sesuai dengan nama indeks yang Anda buat untuk menyimpan data Anda. Anda dapat menemukannya di bagian Gambaran Umum saat memeriksa sumber daya Azure AI Search Anda dari portal Azure. |
Variabel lingkungan
Buat dan tetapkan variabel lingkungan persisten untuk kunci dan titik akhir Anda.
Penting
Jika Anda menggunakan kunci API, simpan dengan aman di tempat lain, seperti di Azure Key Vault. Jangan sertakan kunci API langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik.
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_ENDPOINT=REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
export SPRING_AI_AZURE_OPENAI_API_KEY=REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
export SPRING_AI_AZURE_COGNITIVE_SEARCH_ENDPOINT=REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
export SPRING_AI_AZURE_COGNITIVE_SEARCH_API_KEY=REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
export SPRING_AI_AZURE_COGNITIVE_SEARCH_INDEX=REPLACE_WITH_YOUR_INDEX_NAME_HERE
export SPRING_AI_AZURE_OPENAI_MODEL=REPLACE_WITH_YOUR_MODEL_NAME_HERE
Membuat aplikasi Spring baru
Spring AI saat ini tidak mendukung AzureCognitiveSearchChatExtensionConfiguration
opsi yang memungkinkan kueri Azure AI merangkum metode Pengambilan Augmented Generation (RAG) dan menyembunyikan detail dari pengguna. Sebagai alternatif, Anda masih dapat memanggil metode RAG langsung di aplikasi Anda untuk mengkueri data di indeks Azure AI Search Anda dan menggunakan dokumen yang diambil untuk menambah kueri Anda.
Spring AI mendukung abstraksi VectorStore, dan Anda dapat membungkus Azure AI Search dapat dibungkus dalam implementasi Spring AI VectorStore untuk mengkueri data kustom Anda. Proyek berikut mengimplementasikan VectorStore kustom yang didukung oleh Azure AI Search dan langsung menjalankan operasi RAG.
Di jendela Bash, buat direktori baru untuk aplikasi Anda, dan navigasikan ke dalamnya.
mkdir ai-custom-data-demo && cd ai-custom-data-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-custom-data-demo -n AICustomData --force --build maven -x
File dan folder yang dihasilkan menyerupai struktur berikut:
ai-custom-data-demo/
|-- pom.xml
|-- mvn
|-- mvn.cmd
|-- HELP.md
|-- src/
|-- main/
| |-- resources/
| | |-- application.properties
| |-- java/
| |-- com/
| |-- example/
| |-- aicustomdatademo/
| |-- AiCustomDataApplication.java
|-- test/
|-- java/
|-- com/
|-- example/
|-- aicustomdatademo/
|-- AiCustomDataApplicationTests.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.2.0</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>ai-custom-data-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>AICustomData</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>com.azure</groupId> <artifactId>azure-search-documents</artifactId> <version>11.6.0-beta.10</version> <exclusions> <!-- exclude this to avoid changing the default serializer and the null-value behavior --> <exclusion> <groupId>com.azure</groupId> <artifactId>azure-core-serializer-json-jackson</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </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>
Dari folder src/main/java/com/example/aicustomdatademo, buka AiCustomDataApplication.java di editor atau IDE pilihan Anda dan tempelkan kode berikut:
package com.example.aicustomdatademo; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; import org.springframework.ai.client.AiClient; import org.springframework.ai.document.Document; import org.springframework.ai.embedding.EmbeddingClient; import org.springframework.ai.prompt.Prompt; import org.springframework.ai.prompt.SystemPromptTemplate; import org.springframework.ai.prompt.messages.MessageType; import org.springframework.ai.prompt.messages.UserMessage; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import com.azure.core.credential.AzureKeyCredential; import com.azure.core.util.Context; import com.azure.search.documents.SearchClient; import com.azure.search.documents.SearchClientBuilder; import com.azure.search.documents.models.IndexingResult; import com.azure.search.documents.models.SearchOptions; import com.azure.search.documents.models.RawVectorQuery; import lombok.AllArgsConstructor; import lombok.NoArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.extern.jackson.Jacksonized; @SpringBootApplication public class AiCustomDataApplication implements CommandLineRunner { private static final String ROLE_INFO_KEY = "role"; private static final String template = """ You are a helpful assistant. Use the information from the DOCUMENTS section to augment answers. DOCUMENTS: {documents} """; @Value("${spring.ai.azure.cognitive-search.endpoint}") private String acsEndpoint; @Value("${spring.ai.azure.cognitive-search.api-key}") private String acsApiKey; @Value("${spring.ai.azure.cognitive-search.index}") private String acsIndexName; @Autowired private AiClient aiClient; @Autowired private EmbeddingClient embeddingClient; public static void main(String[] args) { SpringApplication.run(AiCustomDataApplication.class, args); } @Override public void run(String... args) throws Exception { System.out.println(String.format("Sending custom data prompt to AI service. One moment please...\r\n")); final var store = vectorStore(embeddingClient); final String question = "What are my available health plans?"; final var candidateDocs = store.similaritySearch(question); final var userMessage = new UserMessage(question); final String docPrompts = candidateDocs.stream().map(entry -> entry.getContent()).collect(Collectors.joining("\n")); final SystemPromptTemplate promptTemplate = new SystemPromptTemplate(template); final var systemMessage = promptTemplate.createMessage(Map.of("documents", docPrompts)); final var prompt = new Prompt(List.of(systemMessage, userMessage)); final var resps = aiClient.generate(prompt); 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())); }); } @Bean public VectorStore vectorStore(EmbeddingClient embeddingClient) { final SearchClient searchClient = new SearchClientBuilder() .endpoint(acsEndpoint) .credential(new AzureKeyCredential(acsApiKey)) .indexName(acsIndexName) .buildClient(); return new AzureCognitiveSearchVectorStore(searchClient, embeddingClient); } public static class AzureCognitiveSearchVectorStore implements VectorStore { private static final int DEFAULT_TOP_K = 4; private static final Double DEFAULT_SIMILARITY_THRESHOLD = 0.0; private SearchClient searchClient; private final EmbeddingClient embeddingClient; public AzureCognitiveSearchVectorStore(SearchClient searchClient, EmbeddingClient embeddingClient) { this.searchClient = searchClient; this.embeddingClient = embeddingClient; } @Override public void add(List<Document> documents) { final var docs = documents.stream().map(document -> { final var embeddings = embeddingClient.embed(document); return new DocEntry(document.getId(), "", document.getContent(), embeddings); }).toList(); searchClient.uploadDocuments(docs); } @Override public Optional<Boolean> delete(List<String> idList) { final List<DocEntry> docIds = idList.stream().map(id -> DocEntry.builder().id(id).build()) .toList(); var results = searchClient.deleteDocuments(docIds); boolean resSuccess = true; for (IndexingResult result : results.getResults()) if (!result.isSucceeded()) { resSuccess = false; break; } return Optional.of(resSuccess); } @Override public List<Document> similaritySearch(String query) { return similaritySearch(query, DEFAULT_TOP_K); } @Override public List<Document> similaritySearch(String query, int k) { return similaritySearch(query, k, DEFAULT_SIMILARITY_THRESHOLD); } @Override public List<Document> similaritySearch(String query, int k, double threshold) { final var searchQueryVector = new RawVectorQuery() .setVector(toFloatList(embeddingClient.embed(query))) .setKNearestNeighborsCount(k) .setFields("contentVector"); final var searchResults = searchClient.search(null, new SearchOptions().setVectorQueries(searchQueryVector), Context.NONE); return searchResults.stream() .filter(r -> r.getScore() >= threshold) .map(r -> { final DocEntry entry = r.getDocument(DocEntry.class); final Document doc = new Document(entry.getId(), entry.getContent(), Collections.emptyMap()); doc.setEmbedding(entry.getContentVector()); return doc; }) .collect(Collectors.toList()); } private List<Float> toFloatList(List<Double> doubleList) { return doubleList.stream().map(Double::floatValue).toList(); } } @Data @Builder @Jacksonized @AllArgsConstructor @NoArgsConstructor static class DocEntry { private String id; private String hash; private String content; private List<Double> contentVector; } }
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 layanan Azure AI.
Navigasi kembali ke folder akar proyek, dan jalankan aplikasi dengan menggunakan perintah berikut:
./mvnw spring-boot:run
Output
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.1.5)
2023-11-07T14:40:45.250-06:00 INFO 18557 --- [ main] c.e.a.AiCustomDataApplication : No active profile set, falling back to 1 default profile: "default"
2023-11-07T14:40:46.035-06:00 INFO 18557 --- [ main] c.e.a.AiCustomDataApplication : Started AiCustomDataApplication in 1.095 seconds (process running for 1.397)
Sending custom data prompt to AI service. One moment please...
Prompt created 1 generated response(s).
Generated response from "assistant": The available health plans in the Contoso Electronics plan and benefit packages are the Northwind Health Plus and Northwind Standard plans.
Prasyarat
Langganan Azure - Buat langganan gratis.
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 disebarkan di wilayah yang didukung dan dengan model yang didukung.
Pastikan Anda diberi setidaknya peran Kontributor Cognitive Services untuk sumber daya Azure OpenAI.
Unduh contoh data dari GitHub jika Anda tidak memiliki data Anda sendiri.
Dokumentasi | referensi Paket kode sumber | (npm)Sampel |
Menambahkan data Anda menggunakan Azure OpenAI Studio
Tip
Anda dapat menggunakan Azure Developer CLI untuk membuat sumber daya yang diperlukan secara terprogram untuk Azure OpenAI On Your Data
Navigasi ke Azure OpenAI Studio 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.
Pilih petak peta Bawa data Anda sendiri
Di playground Obrolan, Pilih Tambahkan data Anda lalu Tambahkan sumber data
Di panel yang muncul, pilih Unggah file (pratinjau) di bawah Pilih sumber data. Azure OpenAI memerlukan sumber daya penyimpanan dan sumber daya pencarian untuk mengakses dan mengindeks data Anda.
Tip
- Lihat sumber daya berikut untuk informasi selengkapnya:
- Untuk dokumen dan himpunan data dengan teks panjang, sebaiknya gunakan skrip persiapan data yang tersedia.
Agar Azure OpenAI mengakses akun penyimpanan Anda, Anda harus mengaktifkan Berbagi sumber daya lintas asal (CORS). Jika CORS belum diaktifkan untuk sumber daya Azure Blob Storage, pilih Aktifkan CORS.
Pilih sumber daya Azure AI Search Anda, dan pilih pengakuan bahwa menyambungkannya akan menimbulkan penggunaan di akun Anda. Kemudian pilih Berikutnya.
Pada panel Unggah file , pilih Telusuri file dan pilih file yang Anda unduh dari bagian prasyarat , atau data Anda sendiri. Lalu pilih Unggah file. Kemudian pilih Berikutnya.
Pada panel Manajemen data , Anda dapat memilih apakah akan mengaktifkan pencarian semantik atau pencarian vektor untuk indeks Anda.
Penting
- Pencarian semantik dan pencarian vektor tunduk pada harga tambahan. Anda perlu memilih SKU Dasar atau lebih tinggi untuk mengaktifkan pencarian semantik atau pencarian vektor. Lihat perbedaan tingkat harga dan batas layanan untuk informasi selengkapnya.
- Untuk membantu meningkatkan kualitas pengambilan informasi dan respons model, sebaiknya aktifkan pencarian semantik untuk bahasa sumber data berikut: Inggris, Prancis, Spanyol, Portugis, Italia, Jerman, Cina(Zh), Jepang, Korea, Rusia, dan Arab.
Tinjau detail yang Anda masukkan, dan pilih Simpan dan tutup. Anda sekarang dapat mengobrol dengan model dan akan menggunakan informasi dari data Anda untuk membangun respons.
Mengambil variabel yang diperlukan
Agar berhasil melakukan panggilan terhadap Azure OpenAI, Anda memerlukan variabel berikut. Mulai cepat ini mengasumsikan Anda telah mengunggah data Anda ke akun penyimpanan blob Azure dan membuat indeks Azure AI Search. Lihat Menambahkan data Anda menggunakan studio Azure AI
Nama variabel | Nilai |
---|---|
AZURE_OPENAI_ENDPOINT |
Nilai ini dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Azure OpenAI Anda dari portal Azure. Atau, Anda dapat menemukan nilainya di tampilan Kode playground>Obrolan studio>Azure AI. Contoh titik akhir adalah: https://my-resoruce.openai.azure.com . |
AZURE_OPENAI_API_KEY |
Nilai ini dapat ditemukan di bagian Kunci Manajemen>sumber daya & Titik Akhir saat memeriksa sumber daya Azure OpenAI Anda dari portal Azure. Anda dapat menggunakan KEY1 atau KEY2 . Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan. |
AZURE_OPENAI_DEPLOYMENT_ID |
Nilai ini sesuai dengan nama kustom yang Anda pilih untuk penyebaran saat Anda menyebarkan model. Nilai ini dapat ditemukan di bawah Penyebaran Manajemen>Sumber Daya di portal Azure atau sebagai alternatif di bawah Penyebaran Manajemen>di studio Azure AI. |
AZURE_AI_SEARCH_ENDPOINT |
Nilai ini dapat ditemukan di bagian Gambaran Umum saat memeriksa sumber daya Azure AI Search Anda dari portal Azure. |
AZURE_AI_SEARCH_API_KEY |
Nilai ini dapat ditemukan di bagian Kunci Pengaturan>saat memeriksa sumber daya Pencarian Azure AI Anda dari portal Azure. Anda dapat menggunakan kunci admin utama atau kunci admin sekunder. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan. |
AZURE_AI_SEARCH_INDEX |
Nilai ini sesuai dengan nama indeks yang Anda buat untuk menyimpan data Anda. Anda dapat menemukannya di bagian Gambaran Umum saat memeriksa sumber daya Azure AI Search Anda dari portal Azure. |
Variabel lingkungan
Buat dan tetapkan variabel lingkungan persisten untuk kunci dan titik akhir Anda.
Penting
Jika Anda menggunakan kunci API, simpan dengan aman di tempat lain, seperti di Azure Key Vault. Jangan sertakan kunci API langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik.
Untuk informasi selengkapnya tentang keamanan layanan AI, lihat Mengautentikasi permintaan ke layanan Azure AI.
setx AZURE_OPENAI_ENDPOINT REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
setx AZURE_OPENAI_API_KEY REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
setx AZURE_OPENAI_DEPLOYMENT_ID REPLACE_WITH_YOUR_AOAI_DEPLOYMENT_VALUE_HERE
setx AZURE_AI_SEARCH_ENDPOINT REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
setx AZURE_AI_SEARCH_API_KEY REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
setx AZURE_AI_SEARCH_INDEX REPLACE_WITH_YOUR_INDEX_NAME_HERE
Menginisialisasi aplikasi Node.js
Di jendela konsol (seperti cmd, PowerShell, atau Bash), buat direktori baru untuk aplikasi Anda, dan buka direktori tersebut. Kemudian jalankan npm init
perintah untuk membuat aplikasi simpul dengan file package.json .
npm init
Memasang pustaka klien
Instal pustaka klien Azure OpenAI dan Azure Identity untuk JavaScript dengan npm:
npm install @azure/openai @azure/identity
File package.json aplikasi Anda akan diperbarui dengan dependensi.
Menambahkan kode JavaScript
Buka perintah di mana Anda menginginkan proyek baru, dan buat file baru bernama
ChatWithOwnData.js
. Salin kode berikut ke dalam fileChatWithOwnData.js
.const { DefaultAzureCredential, getBearerTokenProvider } = require("@azure/identity"); const { AzureOpenAI } = require("openai"); // Set the Azure and AI Search values from environment variables const endpoint = process.env["AZURE_OPENAI_ENDPOINT"]; const searchEndpoint = process.env["AZURE_AI_SEARCH_ENDPOINT"]; const searchIndex = process.env["AZURE_AI_SEARCH_INDEX"]; // keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); // Required Azure OpenAI deployment name and API version const deploymentName = "gpt-4"; const apiVersion = "2024-07-01-preview"; function getClient() { return new AzureOpenAI({ endpoint, azureADTokenProvider, deployment: deploymentName, apiVersion, }); } async function main() { const client = getClient(); const messages = [ { role: "user", content: "What are my available health plans?" }, ]; console.log(`Message: ${messages.map((m) => m.content).join("\n")}`); const events = await client.chat.completions.create({ stream: true, messages: [ { role: "user", content: "What's the most common feedback we received from our customers about the product?", }, ], max_tokens: 128, model: "", data_sources: [ { type: "azure_search", parameters: { endpoint: searchEndpoint, index_name: searchIndex, authentication: { type: "api_key", key: searchKey, }, }, }, ], }); let response = ""; for await (const event of events) { for (const choice of event.choices) { const newText = choice.delta?.content; if (newText) { response += newText; // To see streaming results as they arrive, uncomment line below // console.log(newText); } } } console.log(response); } main().catch((err) => { console.error("The sample encountered an error:", err); });
Jalankan aplikasi menggunakan perintah berikut:
node ChatWithOwnData.js
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 layanan Azure AI.
Output
Message: What are my available health plans?
The available health plans in the Contoso Electronics plan and benefit packages are the Northwind Health Plus and Northwind Standard plans.
Prasyarat
Langganan Azure - Buat langganan gratis.
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 disebarkan di wilayah yang didukung dan dengan model yang didukung.
Pastikan Anda diberi setidaknya peran Kontributor Cognitive Services untuk sumber daya Azure OpenAI.
Unduh contoh data dari GitHub jika Anda tidak memiliki data Anda sendiri.
Dokumentasi | referensi Paket kode sumber | (npm)Sampel |
Menambahkan data Anda menggunakan Azure OpenAI Studio
Tip
Anda dapat menggunakan Azure Developer CLI untuk membuat sumber daya yang diperlukan secara terprogram untuk Azure OpenAI On Your Data
Navigasi ke Azure OpenAI Studio 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.
Pilih petak peta Bawa data Anda sendiri
Di playground Obrolan, Pilih Tambahkan data Anda lalu Tambahkan sumber data
Di panel yang muncul, pilih Unggah file (pratinjau) di bawah Pilih sumber data. Azure OpenAI memerlukan sumber daya penyimpanan dan sumber daya pencarian untuk mengakses dan mengindeks data Anda.
Tip
- Lihat sumber daya berikut untuk informasi selengkapnya:
- Untuk dokumen dan himpunan data dengan teks panjang, sebaiknya gunakan skrip persiapan data yang tersedia.
Agar Azure OpenAI mengakses akun penyimpanan Anda, Anda harus mengaktifkan Berbagi sumber daya lintas asal (CORS). Jika CORS belum diaktifkan untuk sumber daya Azure Blob Storage, pilih Aktifkan CORS.
Pilih sumber daya Azure AI Search Anda, dan pilih pengakuan bahwa menyambungkannya akan menimbulkan penggunaan di akun Anda. Kemudian pilih Berikutnya.
Pada panel Unggah file , pilih Telusuri file dan pilih file yang Anda unduh dari bagian prasyarat , atau data Anda sendiri. Lalu pilih Unggah file. Kemudian pilih Berikutnya.
Pada panel Manajemen data , Anda dapat memilih apakah akan mengaktifkan pencarian semantik atau pencarian vektor untuk indeks Anda.
Penting
- Pencarian semantik dan pencarian vektor tunduk pada harga tambahan. Anda perlu memilih SKU Dasar atau lebih tinggi untuk mengaktifkan pencarian semantik atau pencarian vektor. Lihat perbedaan tingkat harga dan batas layanan untuk informasi selengkapnya.
- Untuk membantu meningkatkan kualitas pengambilan informasi dan respons model, sebaiknya aktifkan pencarian semantik untuk bahasa sumber data berikut: Inggris, Prancis, Spanyol, Portugis, Italia, Jerman, Cina(Zh), Jepang, Korea, Rusia, dan Arab.
Tinjau detail yang Anda masukkan, dan pilih Simpan dan tutup. Anda sekarang dapat mengobrol dengan model dan akan menggunakan informasi dari data Anda untuk membangun respons.
Mengambil variabel yang diperlukan
Agar berhasil melakukan panggilan terhadap Azure OpenAI, Anda memerlukan variabel berikut. Mulai cepat ini mengasumsikan Anda telah mengunggah data Anda ke akun penyimpanan blob Azure dan membuat indeks Azure AI Search. Lihat Menambahkan data Anda menggunakan studio Azure AI
Nama variabel | Nilai |
---|---|
AZURE_OPENAI_ENDPOINT |
Nilai ini dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Azure OpenAI Anda dari portal Azure. Atau, Anda dapat menemukan nilainya di tampilan Kode playground>Obrolan studio>Azure AI. Contoh titik akhir adalah: https://my-resoruce.openai.azure.com . |
AZURE_OPENAI_API_KEY |
Nilai ini dapat ditemukan di bagian Kunci Manajemen>sumber daya & Titik Akhir saat memeriksa sumber daya Azure OpenAI Anda dari portal Azure. Anda dapat menggunakan KEY1 atau KEY2 . Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan. |
AZURE_OPENAI_DEPLOYMENT_ID |
Nilai ini sesuai dengan nama kustom yang Anda pilih untuk penyebaran saat Anda menyebarkan model. Nilai ini dapat ditemukan di bawah Penyebaran Manajemen>Sumber Daya di portal Azure atau sebagai alternatif di bawah Penyebaran Manajemen>di studio Azure AI. |
AZURE_AI_SEARCH_ENDPOINT |
Nilai ini dapat ditemukan di bagian Gambaran Umum saat memeriksa sumber daya Azure AI Search Anda dari portal Azure. |
AZURE_AI_SEARCH_API_KEY |
Nilai ini dapat ditemukan di bagian Kunci Pengaturan>saat memeriksa sumber daya Pencarian Azure AI Anda dari portal Azure. Anda dapat menggunakan kunci admin utama atau kunci admin sekunder. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan. |
AZURE_AI_SEARCH_INDEX |
Nilai ini sesuai dengan nama indeks yang Anda buat untuk menyimpan data Anda. Anda dapat menemukannya di bagian Gambaran Umum saat memeriksa sumber daya Azure AI Search Anda dari portal Azure. |
Variabel lingkungan
Buat dan tetapkan variabel lingkungan persisten untuk kunci dan titik akhir Anda.
Penting
Jika Anda menggunakan kunci API, simpan dengan aman di tempat lain, seperti di Azure Key Vault. Jangan sertakan kunci API langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik.
Untuk informasi selengkapnya tentang keamanan layanan AI, lihat Mengautentikasi permintaan ke layanan Azure AI.
setx AZURE_OPENAI_ENDPOINT REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
setx AZURE_OPENAI_API_KEY REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
setx AZURE_OPENAI_DEPLOYMENT_ID REPLACE_WITH_YOUR_AOAI_DEPLOYMENT_VALUE_HERE
setx AZURE_AI_SEARCH_ENDPOINT REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
setx AZURE_AI_SEARCH_API_KEY REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
setx AZURE_AI_SEARCH_INDEX REPLACE_WITH_YOUR_INDEX_NAME_HERE
Menginisialisasi aplikasi Node.js
Di jendela konsol (seperti cmd, PowerShell, atau Bash), buat direktori baru untuk aplikasi Anda, dan buka direktori tersebut. Kemudian jalankan npm init
perintah untuk membuat aplikasi simpul dengan file package.json .
npm init
Memasang pustaka klien
Instal pustaka klien Azure OpenAI dan Azure Identity untuk JavaScript dengan npm:
npm install openai @azure/identity @azure/openai
Dependensi @azure/openai/types
disertakan untuk memperluas model Azure OpenAI untuk data_sources
properti . Impor ini hanya diperlukan untuk TypeScript.
File package.json aplikasi Anda akan diperbarui dengan dependensi.
Menambahkan kode TypeScript
Buka perintah di mana Anda menginginkan proyek baru, dan buat file baru bernama
ChatWithOwnData.ts
. Salin kode berikut ke dalam fileChatWithOwnData.ts
.import { AzureOpenAI } from "openai"; import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity"; import "@azure/openai/types"; // Set the Azure and AI Search values from environment variables const endpoint = process.env["AZURE_OPENAI_ENDPOINT"]; const searchEndpoint = process.env["AZURE_AI_SEARCH_ENDPOINT"]; const searchIndex = process.env["AZURE_AI_SEARCH_INDEX"]; // keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); // Required Azure OpenAI deployment name and API version const deploymentName = "gpt-4"; const apiVersion = "2024-07-01-preview"; function getClient(): AzureOpenAI { return new AzureOpenAI({ endpoint, azureADTokenProvider, deployment: deploymentName, apiVersion, }); } async function main() { const client = getClient(); const messages = [ { role: "user", content: "What are my available health plans?" }, ]; console.log(`Message: ${messages.map((m) => m.content).join("\n")}`); const events = await client.chat.completions.create({ stream: true, messages: [ { role: "user", content: "What's the most common feedback we received from our customers about the product?", }, ], max_tokens: 128, model: "", data_sources: [ { type: "azure_search", parameters: { endpoint: searchEndpoint, index_name: searchIndex, authentication: { type: "api_key", key: searchKey, }, }, }, ], }); let response = ""; for await (const event of events) { for (const choice of event.choices) { const newText = choice.delta?.content; if (newText) { response += newText; // To see streaming results as they arrive, uncomment line below // console.log(newText); } } } console.log(response); } main().catch((err) => { console.error("The sample encountered an error:", err); });
Bangun aplikasi dengan perintah berikut:
tsc
Jalankan aplikasi menggunakan perintah berikut:
node ChatWithOwnData.js
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 layanan Azure AI.
Output
Message: What are my available health plans?
The available health plans in the Contoso Electronics plan and benefit packages are the Northwind Health Plus and Northwind Standard plans.
Prasyarat
Sumber daya berikut:
- Azure OpenAI
- Penyimpanan Blob Azure
- Pencarian Azure AI
- Sumber daya Azure OpenAI disebarkan di wilayah yang didukung dan dengan model yang didukung.
- Pastikan Anda diberi setidaknya peran Kontributor Cognitive Services untuk sumber daya Azure OpenAI.
- Unduh contoh data dari GitHub jika Anda tidak memiliki data Anda sendiri.
Paket kode | Sumber Referensi | (pypi)Sampel |
Tautan ini mereferensikan API OpenAI untuk Python. Tidak ada OpenAI Python SDK khusus Azure. Pelajari cara beralih antara layanan OpenAI dan layanan Azure OpenAI.
Menambahkan data Anda menggunakan Azure OpenAI Studio
Tip
Anda dapat menggunakan Azure Developer CLI untuk membuat sumber daya yang diperlukan secara terprogram untuk Azure OpenAI On Your Data
Navigasi ke Azure OpenAI Studio 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.
Pilih petak peta Bawa data Anda sendiri
Di playground Obrolan, Pilih Tambahkan data Anda lalu Tambahkan sumber data
Di panel yang muncul, pilih Unggah file (pratinjau) di bawah Pilih sumber data. Azure OpenAI memerlukan sumber daya penyimpanan dan sumber daya pencarian untuk mengakses dan mengindeks data Anda.
Tip
- Lihat sumber daya berikut untuk informasi selengkapnya:
- Untuk dokumen dan himpunan data dengan teks panjang, sebaiknya gunakan skrip persiapan data yang tersedia.
Agar Azure OpenAI mengakses akun penyimpanan Anda, Anda harus mengaktifkan Berbagi sumber daya lintas asal (CORS). Jika CORS belum diaktifkan untuk sumber daya Azure Blob Storage, pilih Aktifkan CORS.
Pilih sumber daya Azure AI Search Anda, dan pilih pengakuan bahwa menyambungkannya akan menimbulkan penggunaan di akun Anda. Kemudian pilih Berikutnya.
Pada panel Unggah file , pilih Telusuri file dan pilih file yang Anda unduh dari bagian prasyarat , atau data Anda sendiri. Lalu pilih Unggah file. Kemudian pilih Berikutnya.
Pada panel Manajemen data , Anda dapat memilih apakah akan mengaktifkan pencarian semantik atau pencarian vektor untuk indeks Anda.
Penting
- Pencarian semantik dan pencarian vektor tunduk pada harga tambahan. Anda perlu memilih SKU Dasar atau lebih tinggi untuk mengaktifkan pencarian semantik atau pencarian vektor. Lihat perbedaan tingkat harga dan batas layanan untuk informasi selengkapnya.
- Untuk membantu meningkatkan kualitas pengambilan informasi dan respons model, sebaiknya aktifkan pencarian semantik untuk bahasa sumber data berikut: Inggris, Prancis, Spanyol, Portugis, Italia, Jerman, Cina(Zh), Jepang, Korea, Rusia, dan Arab.
Tinjau detail yang Anda masukkan, dan pilih Simpan dan tutup. Anda sekarang dapat mengobrol dengan model dan akan menggunakan informasi dari data Anda untuk membangun respons.
Mengambil variabel yang diperlukan
Agar berhasil melakukan panggilan terhadap Azure OpenAI, Anda memerlukan variabel berikut. Mulai cepat ini mengasumsikan Anda telah mengunggah data Anda ke akun penyimpanan blob Azure dan membuat indeks Azure AI Search. Lihat Menambahkan data Anda menggunakan studio Azure AI
Nama variabel | Nilai |
---|---|
AZURE_OPENAI_ENDPOINT |
Nilai ini dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Azure OpenAI Anda dari portal Azure. Atau, Anda dapat menemukan nilainya di tampilan Kode playground>Obrolan studio>Azure AI. Contoh titik akhir adalah: https://my-resoruce.openai.azure.com . |
AZURE_OPENAI_API_KEY |
Nilai ini dapat ditemukan di bagian Kunci Manajemen>sumber daya & Titik Akhir saat memeriksa sumber daya Azure OpenAI Anda dari portal Azure. Anda dapat menggunakan KEY1 atau KEY2 . Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan. |
AZURE_OPENAI_DEPLOYMENT_ID |
Nilai ini sesuai dengan nama kustom yang Anda pilih untuk penyebaran saat Anda menyebarkan model. Nilai ini dapat ditemukan di bawah Penyebaran Manajemen>Sumber Daya di portal Azure atau sebagai alternatif di bawah Penyebaran Manajemen>di studio Azure AI. |
AZURE_AI_SEARCH_ENDPOINT |
Nilai ini dapat ditemukan di bagian Gambaran Umum saat memeriksa sumber daya Azure AI Search Anda dari portal Azure. |
AZURE_AI_SEARCH_API_KEY |
Nilai ini dapat ditemukan di bagian Kunci Pengaturan>saat memeriksa sumber daya Pencarian Azure AI Anda dari portal Azure. Anda dapat menggunakan kunci admin utama atau kunci admin sekunder. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan. |
AZURE_AI_SEARCH_INDEX |
Nilai ini sesuai dengan nama indeks yang Anda buat untuk menyimpan data Anda. Anda dapat menemukannya di bagian Gambaran Umum saat memeriksa sumber daya Azure AI Search Anda dari portal Azure. |
Variabel lingkungan
Buat dan tetapkan variabel lingkungan persisten untuk kunci dan titik akhir Anda.
Penting
Jika Anda menggunakan kunci API, simpan dengan aman di tempat lain, seperti di Azure Key Vault. Jangan sertakan kunci API langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik.
Untuk informasi selengkapnya tentang keamanan layanan AI, lihat Mengautentikasi permintaan ke layanan Azure AI.
setx AZURE_OPENAI_ENDPOINT REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
setx AZURE_OPENAI_API_KEY REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
setx AZURE_OPENAI_DEPLOYMENT_ID REPLACE_WITH_YOUR_AOAI_DEPLOYMENT_VALUE_HERE
setx AZURE_AI_SEARCH_ENDPOINT REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
setx AZURE_AI_SEARCH_API_KEY REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
setx AZURE_AI_SEARCH_INDEX REPLACE_WITH_YOUR_INDEX_NAME_HERE
Membuat lingkungan Python
- Buat folder baru bernama openai-python untuk proyek Anda dan file kode Python baru bernama main.py. Ubah menjadi direktori tersebut:
mkdir openai-python
cd openai-python
- Instal Pustaka Python berikut:
pip install openai
pip install python-dotenv
Membuat aplikasi Python
- Dari direktori proyek, buka file main.py dan tambahkan kode berikut:
import os
import openai
import dotenv
dotenv.load_dotenv()
endpoint = os.environ.get("AZURE_OPENAI_ENDPOINT")
api_key = os.environ.get("AZURE_OPENAI_API_KEY")
deployment = os.environ.get("AZURE_OPENAI_DEPLOYMENT_ID")
client = openai.AzureOpenAI(
azure_endpoint=endpoint,
api_key=api_key,
api_version="2024-02-01",
)
completion = client.chat.completions.create(
model=deployment,
messages=[
{
"role": "user",
"content": "What are my available health plans?",
},
],
extra_body={
"data_sources":[
{
"type": "azure_search",
"parameters": {
"endpoint": os.environ["AZURE_AI_SEARCH_ENDPOINT"],
"index_name": os.environ["AZURE_AI_SEARCH_INDEX"],
"authentication": {
"type": "api_key",
"key": os.environ["AZURE_AI_SEARCH_API_KEY"],
}
}
}
],
}
)
print(completion.model_dump_json(indent=2))
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 layanan Azure AI.
- Jalankan perintah berikut:
python main.py
Aplikasi mencetak respons dalam format JSON yang cocok untuk digunakan dalam banyak skenario. Ini termasuk jawaban atas kueri dan kutipan Anda dari file yang Anda unggah.
Prasyarat
Sumber daya berikut:
- Azure OpenAI
- Penyimpanan Blob Azure
- Pencarian Azure AI
- Sumber daya Azure OpenAI disebarkan di wilayah yang didukung dan dengan model yang didukung.
- Pastikan Anda diberi setidaknya peran Kontributor Cognitive Services untuk sumber daya Azure OpenAI.
- Unduh contoh data dari GitHub jika Anda tidak memiliki data Anda sendiri.
Menambahkan data Anda menggunakan Azure OpenAI Studio
Tip
Anda dapat menggunakan Azure Developer CLI untuk membuat sumber daya yang diperlukan secara terprogram untuk Azure OpenAI On Your Data
Navigasi ke Azure OpenAI Studio 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.
Pilih petak peta Bawa data Anda sendiri
Di playground Obrolan, Pilih Tambahkan data Anda lalu Tambahkan sumber data
Di panel yang muncul, pilih Unggah file (pratinjau) di bawah Pilih sumber data. Azure OpenAI memerlukan sumber daya penyimpanan dan sumber daya pencarian untuk mengakses dan mengindeks data Anda.
Tip
- Lihat sumber daya berikut untuk informasi selengkapnya:
- Untuk dokumen dan himpunan data dengan teks panjang, sebaiknya gunakan skrip persiapan data yang tersedia.
Agar Azure OpenAI mengakses akun penyimpanan Anda, Anda harus mengaktifkan Berbagi sumber daya lintas asal (CORS). Jika CORS belum diaktifkan untuk sumber daya Azure Blob Storage, pilih Aktifkan CORS.
Pilih sumber daya Azure AI Search Anda, dan pilih pengakuan bahwa menyambungkannya akan menimbulkan penggunaan di akun Anda. Kemudian pilih Berikutnya.
Pada panel Unggah file , pilih Telusuri file dan pilih file yang Anda unduh dari bagian prasyarat , atau data Anda sendiri. Lalu pilih Unggah file. Kemudian pilih Berikutnya.
Pada panel Manajemen data , Anda dapat memilih apakah akan mengaktifkan pencarian semantik atau pencarian vektor untuk indeks Anda.
Penting
- Pencarian semantik dan pencarian vektor tunduk pada harga tambahan. Anda perlu memilih SKU Dasar atau lebih tinggi untuk mengaktifkan pencarian semantik atau pencarian vektor. Lihat perbedaan tingkat harga dan batas layanan untuk informasi selengkapnya.
- Untuk membantu meningkatkan kualitas pengambilan informasi dan respons model, sebaiknya aktifkan pencarian semantik untuk bahasa sumber data berikut: Inggris, Prancis, Spanyol, Portugis, Italia, Jerman, Cina(Zh), Jepang, Korea, Rusia, dan Arab.
Tinjau detail yang Anda masukkan, dan pilih Simpan dan tutup. Anda sekarang dapat mengobrol dengan model dan akan menggunakan informasi dari data Anda untuk membangun respons.
Mengambil variabel yang diperlukan
Agar berhasil melakukan panggilan terhadap Azure OpenAI, Anda memerlukan variabel berikut. Mulai cepat ini mengasumsikan Anda telah mengunggah data Anda ke akun penyimpanan blob Azure dan membuat indeks Azure AI Search. Lihat Menambahkan data Anda menggunakan studio Azure AI
Nama variabel | Nilai |
---|---|
AZURE_OPENAI_ENDPOINT |
Nilai ini dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Azure OpenAI Anda dari portal Azure. Atau, Anda dapat menemukan nilainya di tampilan Kode playground>Obrolan studio>Azure AI. Contoh titik akhir adalah: https://my-resoruce.openai.azure.com . |
AZURE_OPENAI_API_KEY |
Nilai ini dapat ditemukan di bagian Kunci Manajemen>sumber daya & Titik Akhir saat memeriksa sumber daya Azure OpenAI Anda dari portal Azure. Anda dapat menggunakan KEY1 atau KEY2 . Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan. |
AZURE_OPENAI_DEPLOYMENT_ID |
Nilai ini sesuai dengan nama kustom yang Anda pilih untuk penyebaran saat Anda menyebarkan model. Nilai ini dapat ditemukan di bawah Penyebaran Manajemen>Sumber Daya di portal Azure atau sebagai alternatif di bawah Penyebaran Manajemen>di studio Azure AI. |
AZURE_AI_SEARCH_ENDPOINT |
Nilai ini dapat ditemukan di bagian Gambaran Umum saat memeriksa sumber daya Azure AI Search Anda dari portal Azure. |
AZURE_AI_SEARCH_API_KEY |
Nilai ini dapat ditemukan di bagian Kunci Pengaturan>saat memeriksa sumber daya Pencarian Azure AI Anda dari portal Azure. Anda dapat menggunakan kunci admin utama atau kunci admin sekunder. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan. |
AZURE_AI_SEARCH_INDEX |
Nilai ini sesuai dengan nama indeks yang Anda buat untuk menyimpan data Anda. Anda dapat menemukannya di bagian Gambaran Umum saat memeriksa sumber daya Azure AI Search Anda dari portal Azure. |
Variabel lingkungan
Buat dan tetapkan variabel lingkungan persisten untuk kunci dan titik akhir Anda.
Penting
Jika Anda menggunakan kunci API, simpan dengan aman di tempat lain, seperti di Azure Key Vault. Jangan sertakan kunci API langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik.
Untuk informasi selengkapnya tentang keamanan layanan AI, lihat Mengautentikasi permintaan ke layanan Azure AI.
setx AZURE_OPENAI_ENDPOINT REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
setx AZURE_OPENAI_API_KEY REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
setx AZURE_OPENAI_DEPLOYMENT_ID REPLACE_WITH_YOUR_AOAI_DEPLOYMENT_VALUE_HERE
setx AZURE_AI_SEARCH_ENDPOINT REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
setx AZURE_AI_SEARCH_API_KEY REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
setx AZURE_AI_SEARCH_INDEX REPLACE_WITH_YOUR_INDEX_NAME_HERE
Contoh perintah PowerShell
Model obrolan Azure OpenAI 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, alat, dan asisten. Variabel dataSources
terhubung ke indeks Azure Cognitive Search Anda, dan memungkinkan model Azure OpenAI merespons menggunakan data Anda.
Untuk memicu respons dari model, Anda harus diakhir dengan pesan pengguna yang menunjukkan bahwa itu adalah giliran asisten untuk merespons.
Tip
Ada beberapa parameter yang dapat Anda gunakan untuk mengubah respons model, seperti temperature
atau top_p
. Lihat dokumentasi referensi untuk informasi selengkapnya.
# 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 = '2023-07-01-preview' # 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.
}
$acs = @{
search_endpoint = 'YOUR ACS ENDPOINT' # your endpoint should look like the following https://YOUR_RESOURCE_NAME.search.windows.net/
search_key = 'YOUR-ACS-KEY-HERE' # or use the Get-Secret cmdlet to retrieve the value
search_index = 'YOUR-INDEX-NAME-HERE' # the name of your ACS index
}
# Completion text
$body = @{
dataSources = @(
@{
type = 'AzureCognitiveSearch'
parameters = @{
endpoint = $acs.search_endpoint
key = $acs.search_key
indexName = $acs.search_index
}
}
)
messages = @(
@{
role = 'user'
content = 'What are my available health plans?'
}
)
} | convertto-json -depth 5
# Header for authentication
$headers = [ordered]@{
'api-key' = $openai.api_key
}
# Send a completion call to generate an answer
$url = "$($openai.api_base)/openai/deployments/$($openai.name)/extensions/chat/completions?api-version=$($openai.api_version)"
$response = Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Post -ContentType 'application/json'
return $response.choices.messages[1].content
Contoh output
The available health plans in the Contoso Electronics plan and benefit packages are the Northwind Health Plus and Northwind Standard plans.
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 layanan Azure AI.
Mengobrol dengan model Anda menggunakan aplikasi web
Untuk mulai mengobrol dengan model Azure OpenAI yang menggunakan data Anda, Anda dapat menyebarkan aplikasi web menggunakan studio Azure OpenAI atau kode contoh yang kami sediakan di GitHub. Aplikasi ini menyebarkan menggunakan layanan aplikasi Azure, dan menyediakan antarmuka pengguna untuk mengirim kueri. Aplikasi ini dapat digunakan dengan model Azure OpenAI yang menggunakan data Anda, atau model yang tidak menggunakan data Anda. Lihat file readme di repositori untuk petunjuk tentang persyaratan, penyiapan, dan penyebaran. Anda dapat secara opsional menyesuaikan logika frontend dan backend aplikasi web dengan membuat perubahan pada kode sumber.
Prasyarat
Sumber daya berikut:
- Azure OpenAI
- Penyimpanan Blob Azure
- Pencarian Azure AI
- Sumber daya Azure OpenAI disebarkan di wilayah yang didukung dan dengan model yang didukung.
- Pastikan Anda diberi setidaknya peran Kontributor Cognitive Services untuk sumber daya Azure OpenAI.
- Unduh contoh data dari GitHub jika Anda tidak memiliki data Anda sendiri.
Paket kode | Sumber Referensi | (Go)Sampel |
Menambahkan data Anda menggunakan Azure OpenAI Studio
Tip
Anda dapat menggunakan Azure Developer CLI untuk membuat sumber daya yang diperlukan secara terprogram untuk Azure OpenAI On Your Data
Navigasi ke Azure OpenAI Studio 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.
Pilih petak peta Bawa data Anda sendiri
Di playground Obrolan, Pilih Tambahkan data Anda lalu Tambahkan sumber data
Di panel yang muncul, pilih Unggah file (pratinjau) di bawah Pilih sumber data. Azure OpenAI memerlukan sumber daya penyimpanan dan sumber daya pencarian untuk mengakses dan mengindeks data Anda.
Tip
- Lihat sumber daya berikut untuk informasi selengkapnya:
- Untuk dokumen dan himpunan data dengan teks panjang, sebaiknya gunakan skrip persiapan data yang tersedia.
Agar Azure OpenAI mengakses akun penyimpanan Anda, Anda harus mengaktifkan Berbagi sumber daya lintas asal (CORS). Jika CORS belum diaktifkan untuk sumber daya Azure Blob Storage, pilih Aktifkan CORS.
Pilih sumber daya Azure AI Search Anda, dan pilih pengakuan bahwa menyambungkannya akan menimbulkan penggunaan di akun Anda. Kemudian pilih Berikutnya.
Pada panel Unggah file , pilih Telusuri file dan pilih file yang Anda unduh dari bagian prasyarat , atau data Anda sendiri. Lalu pilih Unggah file. Kemudian pilih Berikutnya.
Pada panel Manajemen data , Anda dapat memilih apakah akan mengaktifkan pencarian semantik atau pencarian vektor untuk indeks Anda.
Penting
- Pencarian semantik dan pencarian vektor tunduk pada harga tambahan. Anda perlu memilih SKU Dasar atau lebih tinggi untuk mengaktifkan pencarian semantik atau pencarian vektor. Lihat perbedaan tingkat harga dan batas layanan untuk informasi selengkapnya.
- Untuk membantu meningkatkan kualitas pengambilan informasi dan respons model, sebaiknya aktifkan pencarian semantik untuk bahasa sumber data berikut: Inggris, Prancis, Spanyol, Portugis, Italia, Jerman, Cina(Zh), Jepang, Korea, Rusia, dan Arab.
Tinjau detail yang Anda masukkan, dan pilih Simpan dan tutup. Anda sekarang dapat mengobrol dengan model dan akan menggunakan informasi dari data Anda untuk membangun respons.
Mengambil variabel yang diperlukan
Agar berhasil melakukan panggilan terhadap Azure OpenAI, Anda memerlukan variabel berikut. Mulai cepat ini mengasumsikan Anda telah mengunggah data Anda ke akun penyimpanan blob Azure dan membuat indeks Azure AI Search. Lihat Menambahkan data Anda menggunakan studio Azure AI
Nama variabel | Nilai |
---|---|
AZURE_OPENAI_ENDPOINT |
Nilai ini dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Azure OpenAI Anda dari portal Azure. Atau, Anda dapat menemukan nilainya di tampilan Kode playground>Obrolan studio>Azure AI. Contoh titik akhir adalah: https://my-resoruce.openai.azure.com . |
AZURE_OPENAI_API_KEY |
Nilai ini dapat ditemukan di bagian Kunci Manajemen>sumber daya & Titik Akhir saat memeriksa sumber daya Azure OpenAI Anda dari portal Azure. Anda dapat menggunakan KEY1 atau KEY2 . Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan. |
AZURE_OPENAI_DEPLOYMENT_ID |
Nilai ini sesuai dengan nama kustom yang Anda pilih untuk penyebaran saat Anda menyebarkan model. Nilai ini dapat ditemukan di bawah Penyebaran Manajemen>Sumber Daya di portal Azure atau sebagai alternatif di bawah Penyebaran Manajemen>di studio Azure AI. |
AZURE_AI_SEARCH_ENDPOINT |
Nilai ini dapat ditemukan di bagian Gambaran Umum saat memeriksa sumber daya Azure AI Search Anda dari portal Azure. |
AZURE_AI_SEARCH_API_KEY |
Nilai ini dapat ditemukan di bagian Kunci Pengaturan>saat memeriksa sumber daya Pencarian Azure AI Anda dari portal Azure. Anda dapat menggunakan kunci admin utama atau kunci admin sekunder. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan. |
AZURE_AI_SEARCH_INDEX |
Nilai ini sesuai dengan nama indeks yang Anda buat untuk menyimpan data Anda. Anda dapat menemukannya di bagian Gambaran Umum saat memeriksa sumber daya Azure AI Search Anda dari portal Azure. |
Variabel lingkungan
Buat dan tetapkan variabel lingkungan persisten untuk kunci dan titik akhir Anda.
Penting
Jika Anda menggunakan kunci API, simpan dengan aman di tempat lain, seperti di Azure Key Vault. Jangan sertakan kunci API langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik.
Untuk informasi selengkapnya tentang keamanan layanan AI, lihat Mengautentikasi permintaan ke layanan Azure AI.
setx AZURE_OPENAI_ENDPOINT REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
setx AZURE_OPENAI_API_KEY REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
setx AZURE_OPENAI_DEPLOYMENT_ID REPLACE_WITH_YOUR_AOAI_DEPLOYMENT_VALUE_HERE
setx AZURE_AI_SEARCH_ENDPOINT REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
setx AZURE_AI_SEARCH_API_KEY REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
setx AZURE_AI_SEARCH_INDEX REPLACE_WITH_YOUR_INDEX_NAME_HERE
Membuat lingkungan Go
Buat folder baru bernama openai-go untuk proyek Anda dan file kode Go baru bernama sample.go. Ubah menjadi direktori tersebut:
mkdir openai-go cd openai-go
Instal paket Go berikut:
go get github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai
Aktifkan pelacakan dependensi untuk kode Anda.
go mod init example/azure-openai
Membuat aplikasi Go
Dari direktori proyek, buka file sample.go dan tambahkan kode berikut:
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("AZURE_OPENAI_DEPLOYMENT_ID") // Ex: "https://<your-azure-openai-host>.openai.azure.com" azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT") // Azure AI Search configuration searchIndex := os.Getenv("AZURE_AI_SEARCH_INDEX") searchEndpoint := os.Getenv("AZURE_AI_SEARCH_ENDPOINT") searchAPIKey := os.Getenv("AZURE_AI_SEARCH_API_KEY") if azureOpenAIKey == "" || modelDeploymentID == "" || azureOpenAIEndpoint == "" || searchIndex == "" || searchEndpoint == "" || searchAPIKey == "" { 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.Fatalf("ERROR: %s", err) } resp, err := client.GetChatCompletions(context.TODO(), azopenai.ChatCompletionsOptions{ Messages: []azopenai.ChatRequestMessageClassification{ &azopenai.ChatRequestUserMessage{Content: azopenai.NewChatRequestUserMessageContent("What are my available health plans?")}, }, MaxTokens: to.Ptr[int32](512), AzureExtensionsOptions: []azopenai.AzureChatExtensionConfigurationClassification{ &azopenai.AzureSearchChatExtensionConfiguration{ // This allows Azure OpenAI to use an Azure AI Search index. // // > Because the model has access to, and can reference specific sources to support its responses, answers are not only based on its pretrained knowledge // > but also on the latest information available in the designated data source. This grounding data also helps the model avoid generating responses // > based on outdated or incorrect information. // // Quote from here: https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/use-your-data Parameters: &azopenai.AzureSearchChatExtensionParameters{ Endpoint: &searchEndpoint, IndexName: &searchIndex, Authentication: &azopenai.OnYourDataAPIKeyAuthenticationOptions{ Key: &searchAPIKey, }, }, }, }, DeploymentName: &modelDeploymentID, }, nil) if err != nil { // TODO: Update the following line with your application specific error handling logic log.Fatalf("ERROR: %s", err) } fmt.Fprintf(os.Stderr, "Extensions Context Role: %s\nExtensions Context (length): %d\n", *resp.Choices[0].Message.Role, len(*resp.Choices[0].Message.Content)) fmt.Fprintf(os.Stderr, "ChatRole: %s\nChat content: %s\n", *resp.Choices[0].Message.Role, *resp.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 layanan Azure AI.
Jalankan perintah berikut:
go run sample.go
Aplikasi mencetak respons termasuk jawaban atas kueri dan kutipan Anda dari file yang Anda unggah.
Prasyarat
Sumber daya berikut:
- Azure OpenAI
- Penyimpanan Blob Azure
- Pencarian Azure AI
- Sumber daya Azure OpenAI disebarkan di wilayah yang didukung dan dengan model yang didukung.
- Pastikan Anda diberi setidaknya peran Kontributor Cognitive Services untuk sumber daya Azure OpenAI.
- Unduh contoh data dari GitHub jika Anda tidak memiliki data Anda sendiri.
Menambahkan data Anda menggunakan Azure OpenAI Studio
Tip
Anda dapat menggunakan Azure Developer CLI untuk membuat sumber daya yang diperlukan secara terprogram untuk Azure OpenAI On Your Data
Navigasi ke Azure OpenAI Studio 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.
Pilih petak peta Bawa data Anda sendiri
Di playground Obrolan, Pilih Tambahkan data Anda lalu Tambahkan sumber data
Di panel yang muncul, pilih Unggah file (pratinjau) di bawah Pilih sumber data. Azure OpenAI memerlukan sumber daya penyimpanan dan sumber daya pencarian untuk mengakses dan mengindeks data Anda.
Tip
- Lihat sumber daya berikut untuk informasi selengkapnya:
- Untuk dokumen dan himpunan data dengan teks panjang, sebaiknya gunakan skrip persiapan data yang tersedia.
Agar Azure OpenAI mengakses akun penyimpanan Anda, Anda harus mengaktifkan Berbagi sumber daya lintas asal (CORS). Jika CORS belum diaktifkan untuk sumber daya Azure Blob Storage, pilih Aktifkan CORS.
Pilih sumber daya Azure AI Search Anda, dan pilih pengakuan bahwa menyambungkannya akan menimbulkan penggunaan di akun Anda. Kemudian pilih Berikutnya.
Pada panel Unggah file , pilih Telusuri file dan pilih file yang Anda unduh dari bagian prasyarat , atau data Anda sendiri. Lalu pilih Unggah file. Kemudian pilih Berikutnya.
Pada panel Manajemen data , Anda dapat memilih apakah akan mengaktifkan pencarian semantik atau pencarian vektor untuk indeks Anda.
Penting
- Pencarian semantik dan pencarian vektor tunduk pada harga tambahan. Anda perlu memilih SKU Dasar atau lebih tinggi untuk mengaktifkan pencarian semantik atau pencarian vektor. Lihat perbedaan tingkat harga dan batas layanan untuk informasi selengkapnya.
- Untuk membantu meningkatkan kualitas pengambilan informasi dan respons model, sebaiknya aktifkan pencarian semantik untuk bahasa sumber data berikut: Inggris, Prancis, Spanyol, Portugis, Italia, Jerman, Cina(Zh), Jepang, Korea, Rusia, dan Arab.
Tinjau detail yang Anda masukkan, dan pilih Simpan dan tutup. Anda sekarang dapat mengobrol dengan model dan akan menggunakan informasi dari data Anda untuk membangun respons.
Mengambil variabel yang diperlukan
Agar berhasil melakukan panggilan terhadap Azure OpenAI, Anda memerlukan variabel berikut. Mulai cepat ini mengasumsikan Anda telah mengunggah data Anda ke akun penyimpanan blob Azure dan membuat indeks Azure AI Search. Lihat Menambahkan data Anda menggunakan studio Azure AI
Nama variabel | Nilai |
---|---|
AZURE_OPENAI_ENDPOINT |
Nilai ini dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Azure OpenAI Anda dari portal Azure. Atau, Anda dapat menemukan nilainya di tampilan Kode playground>Obrolan studio>Azure AI. Contoh titik akhir adalah: https://my-resoruce.openai.azure.com . |
AZURE_OPENAI_API_KEY |
Nilai ini dapat ditemukan di bagian Kunci Manajemen>sumber daya & Titik Akhir saat memeriksa sumber daya Azure OpenAI Anda dari portal Azure. Anda dapat menggunakan KEY1 atau KEY2 . Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan. |
AZURE_OPENAI_DEPLOYMENT_ID |
Nilai ini sesuai dengan nama kustom yang Anda pilih untuk penyebaran saat Anda menyebarkan model. Nilai ini dapat ditemukan di bawah Penyebaran Manajemen>Sumber Daya di portal Azure atau sebagai alternatif di bawah Penyebaran Manajemen>di studio Azure AI. |
AZURE_AI_SEARCH_ENDPOINT |
Nilai ini dapat ditemukan di bagian Gambaran Umum saat memeriksa sumber daya Azure AI Search Anda dari portal Azure. |
AZURE_AI_SEARCH_API_KEY |
Nilai ini dapat ditemukan di bagian Kunci Pengaturan>saat memeriksa sumber daya Pencarian Azure AI Anda dari portal Azure. Anda dapat menggunakan kunci admin utama atau kunci admin sekunder. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan. |
AZURE_AI_SEARCH_INDEX |
Nilai ini sesuai dengan nama indeks yang Anda buat untuk menyimpan data Anda. Anda dapat menemukannya di bagian Gambaran Umum saat memeriksa sumber daya Azure AI Search Anda dari portal Azure. |
Variabel lingkungan
Buat dan tetapkan variabel lingkungan persisten untuk kunci dan titik akhir Anda.
Penting
Jika Anda menggunakan kunci API, simpan dengan aman di tempat lain, seperti di Azure Key Vault. Jangan sertakan kunci API langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik.
Untuk informasi selengkapnya tentang keamanan layanan AI, lihat Mengautentikasi permintaan ke layanan Azure AI.
setx AZURE_OPENAI_ENDPOINT REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
setx AZURE_OPENAI_API_KEY REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
setx AZURE_OPENAI_DEPLOYMENT_ID REPLACE_WITH_YOUR_AOAI_DEPLOYMENT_VALUE_HERE
setx AZURE_AI_SEARCH_ENDPOINT REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
setx AZURE_AI_SEARCH_API_KEY REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
setx AZURE_AI_SEARCH_INDEX REPLACE_WITH_YOUR_INDEX_NAME_HERE
Contoh perintah cURL
Model obrolan Azure OpenAI 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, alat, dan asisten. Variabel dataSources
tersambung ke indeks Azure AI Search Anda, dan memungkinkan model Azure OpenAI merespons menggunakan data Anda.
Untuk memicu respons dari model, Anda harus diakhir dengan pesan pengguna yang menunjukkan bahwa itu adalah giliran asisten untuk merespons.
Tip
Ada beberapa parameter yang dapat Anda gunakan untuk mengubah respons model, seperti temperature
atau top_p
. Lihat dokumentasi referensi untuk informasi selengkapnya.
curl -i -X POST $AZURE_OPENAI_ENDPOINT/openai/deployments/$AZURE_OPENAI_DEPLOYMENT_ID/chat/completions?api-version=2024-02-15-preview \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d \
'
{
"data_sources": [
{
"type": "azure_search",
"parameters": {
"endpoint": "'$AZURE_AI_SEARCH_ENDPOINT'",
"key": "'$AZURE_AI_SEARCH_API_KEY'",
"index_name": "'$AZURE_AI_SEARCH_INDEX'"
}
}
],
"messages": [
{
"role": "user",
"content": "What are my available health plans?"
}
]
}
'
Contoh output
{
"id": "12345678-1a2b-3c4e5f-a123-12345678abcd",
"model": "gpt-4",
"created": 1709835345,
"object": "extensions.chat.completion",
"choices": [
{
"index": 0,
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "The available health plans in the Contoso Electronics plan and benefit packages are the Northwind Health Plus and Northwind Standard plans. [doc1].",
"end_turn": true,
"context": {
"citations": [
{
"content": "...",
"title": "...",
"url": "https://mysearch.blob.core.windows.net/xyz/001.txt",
"filepath": "001.txt",
"chunk_id": "0"
}
],
"intent": "[\"Available health plans\"]"
}
}
}
],
"usage": {
"prompt_tokens": 3779,
"completion_tokens": 105,
"total_tokens": 3884
}
}
Mengobrol dengan model Anda menggunakan aplikasi web
Untuk mulai mengobrol dengan model Azure OpenAI yang menggunakan data Anda, Anda dapat menyebarkan aplikasi web menggunakan studio Azure OpenAI atau kode contoh yang kami sediakan di GitHub. Aplikasi ini menyebarkan menggunakan layanan aplikasi Azure, dan menyediakan antarmuka pengguna untuk mengirim kueri. Aplikasi ini dapat digunakan dengan model Azure OpenAI yang menggunakan data Anda, atau model yang tidak menggunakan data Anda. Lihat file readme di repositori untuk petunjuk tentang persyaratan, penyiapan, dan penyebaran. Anda dapat secara opsional menyesuaikan logika frontend dan backend aplikasi web dengan membuat perubahan pada kode sumber.
Membersihkan sumber daya
Jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI atau Azure AI Search, 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 menggunakan data Anda di Azure OpenAI Service
- Kode sampel aplikasi obrolan di GitHub.