Siapkan

Selesai

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:

  1. Sebarkan sumber daya Azure Cosmos DB for NoSQL dan Azure OpenAI ke Azure.
  2. Dapatkan kredensial untuk sumber daya Azure Cosmos DB for NoSQL dan Azure OpenAI yang disebarkan.
  3. Buka solusi pemula di Visual Studio Code.
  4. Gunakan .NET SDK untuk mengimplementasikan Azure Cosmos DB for NoSQL sebagai layanan penyimpanan data.
  5. Gunakan .NET SDK untuk mengimplementasikan Azure OpenAI sebagai antarmuka percakapan.
  6. 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.

  1. Mulai proses untuk membuat GitHub Codespace baru dengan memilih opsi Active Codespaces di awal unit ini.

  2. Pada halaman Buat codespace , tinjau pengaturan konfigurasi codespace, lalu pilih Buat codespace baru.

    Screenshot of the confirmation screen before creating a new codespace.

  3. Tunggu hingga codespace dimulai. Proses startup ini dapat memakan waktu beberapa menit.

  4. Buka terminal baru di codespace.

    Tip

    Anda dapat menggunakan menu utama untuk menavigasi ke opsi menu Terminal lalu pilih opsi Terminal Baru.

    Screenshot of the codespaces menu option to open a new terminal.

  5. Validasi bahwa Azure CLI diinstal di lingkungan Anda.

    az --version
    
  6. Validasi bahwa .NET 8 diinstal di lingkungan Anda.

    dotnet --list-sdks
    
  7. Bangun proyek .NET.

    dotnet build
    
  8. Tutup terminal.

  9. 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.

  1. Masuk ke Azure CLI.

    az login --use-device-code
    
  2. Buat variabel shell baru bernama resourceGroupName dengan nama grup sumber daya Azure yang Anda buat (mslearn-cosmos-openai).

    resourceGroupName="mslearn-cosmos-openai"
    
  3. Buat grup sumber daya menggunakan az group create.

    az group create \
      --name $resourceGroupName \
      --location "eastus"
    
  4. 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
    
  5. 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.

  1. 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"
    
  2. 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.

  3. 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"
      },
      ...
    ]
    
  4. 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.