Siapkan
Anda memperbarui solusi .NET yang ada yang memiliki aplikasi Blazor karena ini adalah proyek satu-satu. Proyek ini mencakup kelas layanan untuk penyimpanan data dan percakapan yang diimplementasikan dengan tempat penampung. Di sini, kami membahas tujuan keseluruhan proyek dan bagaimana Anda akan menerapkan penyimpanan data dan fungsionalitas percakapan. Selain itu, kami membahas cara menyiapkan sumber daya Azure yang Anda butuhkan.
Gambaran umum produk
Tujuan proyek ini adalah untuk menerapkan dua kelas layanan untuk penyimpanan dan penyelesaian data. Untuk kelas layanan penyimpanan data, gunakan Azure Cosmos DB untuk NoSQL .NET SDK untuk membuat, memperbarui, mengkueri, dan menghapus beberapa item dalam kontainer yang sudah ada sebelumnya. Untuk penyelesaian obrolan, gunakan Azure OpenAI .NET SDK untuk mengirim permintaan dan mengurai respons.
Tugas utama yang perlu Anda lakukan adalah:
- Sebarkan sumber daya Azure Cosmos DB for NoSQL dan Azure OpenAI ke Azure.
- Dapatkan kredensial untuk sumber daya Azure Cosmos DB for NoSQL dan Azure OpenAI yang disebarkan.
- Buka solusi pemula di Visual Studio Code.
- Gunakan .NET SDK untuk mengimplementasikan Azure Cosmos DB for NoSQL sebagai layanan penyimpanan data.
- Gunakan .NET SDK untuk mengimplementasikan Azure OpenAI sebagai antarmuka percakapan.
- Periksa operasi aplikasi.
Siapkan
Untuk menyelesaikan proyek ini, Anda memerlukan akun Azure Cosmos DB for NoSQL dan akun Azure OpenAI. Untuk menyederhanakan proses ini, sebarkan templat Bicep ke Azure dengan kedua akun ini.
Mengonfigurasi lingkungan dev
Lingkungan kontainer pengembangan tersedia dengan semua dependensi yang diperlukan untuk menyelesaikan setiap latihan dalam proyek ini. GitHub Codespaces menjalankan kontainer pengembangan yang dikelola oleh GitHub dengan Visual Studio Code untuk Web sebagai antarmuka pengguna. Untuk lingkungan pengembangan yang paling mudah, gunakan GitHub Codespaces sehingga Anda memiliki alat dan dependensi pengembang yang benar yang telah diinstal sebelumnya untuk menyelesaikan modul pelatihan ini.
Penting
Semua akun GitHub dapat menggunakan Codespace hingga 60 jam gratis setiap bulan dengan 2 instans inti. Untuk informasi selengkapnya, lihat GitHub Codespaces bulanan yang disertakan penyimpanan dan jam inti.
Mulai proses untuk membuat GitHub Codespace baru dengan memilih opsi Active Codespaces di awal unit ini.
Pada halaman Buat codespace , tinjau pengaturan konfigurasi codespace, lalu pilih Buat codespace baru.
Tunggu hingga codespace dimulai. Proses startup ini dapat memakan waktu beberapa menit.
Buka terminal baru di codespace.
Validasi bahwa Azure CLI diinstal di lingkungan Anda.
az --version
Validasi bahwa .NET 8 diinstal di lingkungan Anda.
dotnet --list-sdks
Bangun proyek .NET.
dotnet build
Tutup terminal.
Latihan yang tersisa dalam proyek ini berlangsung dalam konteks kontainer pengembangan ini.
Penting
Biarkan GitHub Codespace berjalan selama sisa modul pelatihan ini.
Menyebarkan infrastruktur dari templat
Proyek ini menggunakan repositori GitHub azure-samples/cosmosdb-chatgpt untuk penyebaran templat Azure Resource Manager dan kode aplikasi. Dalam langkah ini, buat penyebaran baru menggunakan templat Bicep untuk menyebarkan sumber daya Anda menggunakan "infrastruktur sebagai kode."
Tip
Templat Bicep "zero-touch" ini juga menyertakan aplikasi akhir yang berjalan di Azure App Service. Anda selalu dapat memeriksa ini jika Anda ingin melihat solusi yang sepenuhnya berfungsi.
Masuk ke Azure CLI.
az login --use-device-code
Buat variabel shell baru bernama resourceGroupName dengan nama grup sumber daya Azure yang Anda buat (
mslearn-cosmos-openai
).resourceGroupName="mslearn-cosmos-openai"
Buat grup sumber daya menggunakan
az group create
.az group create \ --name $resourceGroupName \ --location "eastus"
Sebarkan file templat azuredeploy.json ke grup sumber daya menggunakan
az group deployment create
.az deployment group create \ --resource-group $resourceGroupName \ --name zero-touch-deployment \ --template-uri https://raw.githubusercontent.com/Azure-Samples/cosmosdb-chatgpt/start/azuredeploy.json
Tunggu hingga penyebaran selesai sebelum melanjutkan proyek ini.
Catatan
Rata-rata, penyebaran ini dapat memakan waktu lima hingga sepuluh menit.
Mendapatkan kredensial akun Azure Cosmos DB for NoSQL dan Azure OpenAI
Templat Anda menyebarkan akun Azure Cosmos DB untuk NoSQL dan Azure OpenAI lalu menyimpan kredensial mereka dalam konfigurasi aplikasi web Azure App Service. Sekarang, Anda memiliki pilihan untuk menggunakan portal Azure atau Azure CLI untuk mengambil kredensial untuk setiap layanan. Gunakan az webapp config
dari Azure CLI untuk mendapatkan kredensial Azure OpenAI dan Azure Cosmos DB untuk digunakan di lingkungan pengembangan lokal Anda. Di bagian ini, Anda memfilter output berbagai perintah untuk mengembalikan titik akhir dan string koneksi untuk digunakan dengan pustaka .NET dari Azure OpenAI dan Azure Cosmos DB untuk NoSQL.
Pertama, dapatkan daftar semua aplikasi web yang sedang berjalan di grup sumber daya Anda menggunakan
az webapp list
.az webapp list \ --resource-group $resourceGroupName \ --query "[?state=='Running'].name"
Sekarang, jalankan kueri yang sama lagi tetapi hanya mengembalikan hasil pertama dari array dalam format nilai (
tsv
) yang dipisahkan tab.webAppName=$( \ az webapp list \ --resource-group $resourceGroupName \ --query "[?state=='Running'].name | [0]" \ --output tsv \ )
Tip
Jika Anda tidak yakin bahwa variabel Anda memiliki nilai yang benar, cukup jalankan
echo $webAppName
di terminal untuk memeriksa nilainya.Gunakan
az webapp config appsettings list
untuk mendapatkan daftar pengaturan aplikasi untuk aplikasi web.az webapp config appsettings list \ --name $webAppName \ --resource-group $resourceGroupName
Berikut adalah contoh output yang dipotong dengan asumsi nama akun Azure Cosmos DB for NoSQL adalah nybncrsna76fo-cosmos-nosql dan nama akun Azure OpenAI adalah nybncrsna76fo-openai. Kunci dalam contoh ini fiktif.
[ { "setting": "COSMOSDB__ENDPOINT", "value": "https://nybncrsna76fo-cosmos-nosql.documents.azure.com:443/" }, { "setting": "COSMOSDB__KEY", "value": "Aj2OSQqWhXfFzkITIi4MIbocWAAoBCUWnSPzHlQbDYA3TiyZCJlk8A6R1l6WqD45BxAG5vrsyQ4SCXEkPS1pLh==" }, ... { "setting": "OPENAI__ENDPOINT", "value": "https://nybncrsna76fo-openai.openai.azure.com/" }, { "setting": "OPENAI__KEY", "value": "4bf98cb194cdf0f9001eae3259a76ed8" }, ... ]
Catat nilai titik akhir dan kunci untuk akun Azure Cosmos DB for NoSQL dan Azure OpenAI. Anda menggunakan kredensial ini nanti dalam proyek ini untuk menyambungkan ke setiap akun.