Menskalakan Azure OpenAI untuk obrolan .NET menggunakan RAG dengan Azure Container Apps
Pelajari cara menambahkan penyeimbangan beban ke aplikasi Anda untuk memperluas aplikasi obrolan di luar batas token Azure OpenAI dan kuota model. Pendekatan ini menggunakan Azure Container Apps untuk membuat tiga titik akhir Azure OpenAI, serta kontainer utama untuk mengarahkan lalu lintas masuk ke salah satu dari tiga titik akhir.
Artikel ini mengharuskan Anda untuk menyebarkan dua sampel terpisah:
Aplikasi obrolan
Jika Anda belum menyebarkan aplikasi obrolan, tunggu hingga sampel load balancer disebarkan.
Jika Anda telah menyebarkan aplikasi obrolan sekali, Anda akan mengubah variabel lingkungan untuk mendukung titik akhir kustom untuk load balancer dan menyebarkannya kembali.
Aplikasi obrolan tersedia dalam bahasa berikut:
Aplikasi load balancer
Catatan
Artikel ini menggunakan satu atau beberapa templat aplikasi AI sebagai dasar untuk contoh dan panduan dalam artikel. Templat aplikasi AI memberi Anda implementasi referensi yang terawat dan mudah disebarkan dengan baik yang membantu memastikan titik awal berkualitas tinggi untuk aplikasi AI Anda.
Arsitektur untuk penyeimbangan beban Azure OpenAI dengan Azure Container Apps
Karena sumber daya Azure OpenAI memiliki batas token dan kuota model tertentu, aplikasi obrolan yang menggunakan satu sumber daya Azure OpenAI rentan mengalami kegagalan percakapan karena batas tersebut.
Untuk menggunakan aplikasi obrolan tanpa mencapai batas tersebut, gunakan solusi seimbang beban dengan Azure Container Apps. Solusi ini dengan mulus mengekspos satu titik akhir dari Azure Container Apps ke server aplikasi obrolan Anda.
Aplikasi Azure Container berada di depan sekumpulan sumber daya Azure OpenAI. Aplikasi Kontainer memecahkan dua skenario: normal dan dibatasi. Selama skenario normal di mana token dan kuota model tersedia, sumber daya Azure OpenAI mengembalikan 200 kembali melalui Aplikasi Kontainer dan App Server.
Saat sumber daya berada dalam skenario yang dibatasi seperti karena batas kuota, aplikasi Azure Container dapat mencoba kembali sumber daya Azure OpenAI yang berbeda segera untuk memenuhi permintaan aplikasi obrolan asli.
Prasyarat
Langganan Azure. Buat satu secara gratis
Akses yang diberikan ke Azure OpenAI dalam langganan Azure yang diinginkan.
Saat ini, akses ke layanan ini hanya diberikan oleh aplikasi. Anda harus mengajukan permohonan akses ke Azure OpenAI.
Kontainer dev tersedia untuk kedua sampel, dengan semua dependensi diperlukan untuk menyelesaikan artikel ini. Anda dapat menjalankan kontainer dev di GitHub Codespaces (di browser) atau secara lokal menggunakan Visual Studio Code.
- Hanya akun GitHub yang diperlukan untuk menggunakan CodeSpaces
Buka aplikasi Kontainer aplikasi penyeimbang lokal aplikasi sampel
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 artikel 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.
Menyebarkan load balancer Azure Container Apps
Masuk ke Azure Developer CLI untuk menyediakan autentikasi ke langkah-langkah provisi dan penyebaran.
azd auth login --use-device-code
Atur variabel lingkungan untuk menggunakan autentikasi Azure CLI ke langkah provisi postingan.
azd config set auth.useAzCliAuth "true"
Sebarkan aplikasi load balancer.
azd up
Anda harus memilih langganan dan wilayah untuk penyebaran. Ini tidak harus menjadi langganan dan wilayah yang sama dengan aplikasi obrolan.
Tunggu hingga penerapan selesai sebelum melanjutkan.
Mendapatkan titik akhir penyebaran
Gunakan perintah berikut untuk menampilkan titik akhir yang disebarkan untuk aplikasi Kontainer Azure.
azd env get-values
Salin nilai
CONTAINER_APP_URL
. Anda akan menggunakannya di bagian berikutnya.
Menyebarkan ulang aplikasi Obrolan dengan titik akhir load balancer
Ini selesai pada sampel aplikasi obrolan.
Buka kontainer pengembangan sampel aplikasi obrolan menggunakan salah satu pilihan berikut.
Bahasa Codespaces Visual Studio Code .NET JavaScript Python Masuk ke Azure Developer CLI (AZD).
azd auth login
Selesaikan instruksi masuk.
Buat lingkungan AZD dengan nama seperti
chat-app
.azd env new <name>
Tambahkan variabel lingkungan berikut, yang memberi tahu backend aplikasi Obrolan untuk menggunakan URL kustom untuk permintaan OpenAI.
azd env set OPENAI_HOST azure_custom
Tambahkan variabel lingkungan berikut, ganti
<CONTAINER_APP_URL>
URL dari bagian sebelumnya. Tindakan ini memberi tahu backend aplikasi Obrolan berapa nilai URL kustom untuk permintaan OpenAI.azd env set AZURE_OPENAI_CUSTOM_URL <CONTAINER_APP_URL>
Sebarkan aplikasi obrolan.
azd up
Anda sekarang dapat menggunakan aplikasi obrolan dengan keyakinan bahwa aplikasi tersebut dibuat untuk menskalakan di banyak pengguna tanpa kehabisan kuota.
Mengalirkan log untuk melihat hasil load balancer
Di portal Azure, cari grup sumber daya Anda.
Dari daftar sumber daya dalam grup, pilih sumber daya Aplikasi Kontainer.
Pilih Pemantauan -> Aliran log untuk melihat log.
Gunakan aplikasi obrolan untuk menghasilkan lalu lintas di log.
Cari log, yang mereferensikan sumber daya Azure OpenAI. Masing-masing dari tiga sumber daya memiliki identitas numeriknya dalam komentar log yang dimulai dengan
Proxying to https://openai3
, di mana3
menunjukkan sumber daya Azure OpenAI ketiga.Saat Anda menggunakan aplikasi obrolan, ketika load balancer menerima status bahwa permintaan telah melebihi kuota, load balancer secara otomatis berputar ke sumber daya lain.
Mengonfigurasi token per menit kuota (TPM)
Secara default, masing-masing instans OpenAI dalam load balancer akan disebarkan dengan kapasitas 30.000 TPM (token per menit). Anda dapat menggunakan aplikasi obrolan dengan keyakinan bahwa aplikasi tersebut dibuat untuk menskalakan di banyak pengguna tanpa kehabisan kuota. Ubah nilai ini ketika:
- Anda mendapatkan kesalahan kapasitas penyebaran: menurunkan nilai tersebut.
- Merencanakan kapasitas yang lebih tinggi, tingkatkan nilainya.
Gunakan perintah berikut untuk mengubah nilai.
azd env set OPENAI_CAPACITY 50
Sebarkan ulang load balancer.
azd up
Membersihkan sumber daya
Setelah selesai dengan aplikasi obrolan dan load balancer, bersihkan sumber daya. Sumber daya Azure yang dibuat dalam artikel ini ditagihkan ke langganan Azure Anda. Jika Anda tidak mengharapkan untuk membutuhkan sumber daya ini di masa mendatang, hapus sumber daya tersebut untuk menghindari dikenakan lebih banyak biaya.
Membersihkan sumber daya aplikasi obrolan
Kembali ke artikel aplikasi obrolan untuk membersihkan sumber daya tersebut.
Bersihkan sumber daya penyeimbang unggahan
Jalankan perintah Azure Developer CLI berikut untuk menghapus sumber daya Azure dan menghapus kode sumber:
azd down --purge --force
Sakelar menyediakan:
purge
: Sumber daya yang dihapus segera dihapus menyeluruh. Ini memungkinkan Anda untuk menggunakan kembali TPM Azure OpenAI.force
: Penghapusan terjadi secara diam-diam, tanpa memerlukan persetujuan pengguna.
Membersihkan GitHub Codespaces
Menghapus lingkungan GitHub Codespaces memastikan bahwa Anda dapat memaksimalkan jumlah pemberian izin per jam inti gratis yang Anda dapatkan untuk akun Anda.
Penting
Untuk informasi selengkapnya tentang penetapan akun GitHub Anda, lihat GitHub Codespaces bulanan yang disertakan penyimpanan dan jam inti.
Masuk ke dasbor GitHub Codespaces (https://github.com/codespaces).
Temukan Codespace Yang sedang berjalan yang bersumber dari
azure-samples/openai-aca-lb
repositori GitHub.Buka menu konteks untuk codespace, lalu pilih Hapus.
Dapatkan bantuan
Jika Anda mengalami masalah saat menyebarkan load balancer Azure API Management, catat masalah Anda ke Masalah repositori.
Kode Sampel
Sampel yang digunakan dalam artikel ini meliputi:
Langkah selanjutnya
- Menggunakan Azure Load Testing untuk memuat pengujian aplikasi obrolan Anda