Menskalakan Azure OpenAI untuk JavaScript dengan Azure API Management
Pelajari cara menambahkan penyeimbangan beban tingkat perusahaan ke aplikasi Anda untuk memperluas aplikasi obrolan di luar batas token Azure OpenAI dan kuota model. Pendekatan ini menggunakan Azure API Management untuk mengarahkan lalu lintas secara cerdas antara tiga sumber daya Azure OpenAI.
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.
Load balancer dengan Azure API Management
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 API Management
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 API Management. Solusi ini dengan mulus mengekspos satu titik akhir dari Azure API Management ke server aplikasi obrolan Anda.
Sumber daya Azure API Management, sebagai lapisan API, berada di depan sekumpulan sumber daya Azure OpenAI. Lapisan API berlaku untuk dua skenario: normal dan dibatasi. Selama skenario normal di mana token dan kuota model tersedia, sumber daya Azure OpenAI mengembalikan 200 kembali melalui lapisan API dan server aplikasi backend.
Ketika sumber daya dibatasi karena batas kuota, lapisan API 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 dapat mengajukan permohonan akses ke Azure OpenAI dengan melengkapi formulir di https://aka.ms/oai/access.
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 Codespace
Buka aplikasi sampel penyeimbang lokal Azure API Management
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 API Management
Untuk menyebarkan load balancer ke Azure, masuk ke Azure Developer CLI (AZD).
azd auth login
Selesaikan instruksi masuk.
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. Ini mungkin memakan waktu hingga 30 menit.
Mendapatkan titik akhir load balancer
Jalankan perintah bash berikut untuk melihat variabel lingkungan dari penyebaran. Anda memerlukan informasi ini nanti.
azd env get-values | grep APIM_GATEWAY_URL
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, yang memberi tahu backend aplikasi Obrolan berapa nilai URL kustom untuk permintaan OpenAI.
azd env set AZURE_OPENAI_CUSTOM_URL <APIM_GATEWAY_URL>
Sebarkan aplikasi obrolan.
azd up
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.
Membersihkan sumber daya load balancer
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-apim-lb
repositori GitHub.Buka menu konteks untuk item 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
- Menampilkan data diagnostik Azure API Management di Azure Monitor
- Menggunakan Azure Load Testing untuk memuat pengujian aplikasi obrolan Anda dengan