Bagikan melalui


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 token Azure OpenAI Service dan batas 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:
    • Tunda penyebaran aplikasi obrolan hingga setelah penyeimbang beban contoh disebarkan.
    • Jika Anda sudah menyebarkan aplikasi obrolan sekali, ubah variabel lingkungan untuk mendukung titik akhir kustom untuk load balancer dan sebarkan ulang lagi.
  • Penyeimbang beban dengan Azure API Management.

Catatan

Artikel ini menggunakan satu atau lebih templat aplikasi AI sebagai dasar untuk contoh dan panduan dalam artikel. Templat aplikasi AI memberi Anda implementasi referensi yang terawat dengan baik yang mudah disebarkan. Ini 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.

diagram yang memperlihatkan arsitektur aplikasi obrolan dengan sumber daya Azure OpenAI disorot.

Untuk menggunakan aplikasi obrolan tanpa mencapai batas tersebut, gunakan solusi seimbang beban dengan API Management. Solusi ini secara mulus menyediakan satu endpoint dari API Management ke server aplikasi obrolan Anda.

Diagram yang memperlihatkan arsitektur aplikasi obrolan dengan Azure API Management di depan tiga sumber daya Azure OpenAI.

Sumber daya API Management, sebagai lapisan API, berada di depan sekumpulan sumber daya Azure OpenAI. Lapisan API berlaku untuk dua skenario: normal dan dibatasi akses. Selama skenario normal di mana token dan kuota model tersedia, sumber daya Azure OpenAI mengembalikan status 200 melalui lapisan API dan server aplikasi backend.

Diagram yang memperlihatkan skenario normal dengan tiga grup titik akhir Azure OpenAI. Grup pertama dari dua titik akhir mendapatkan lalu lintas yang berhasil.

Ketika sumber daya terkendala batas kuota, lapisan API dapat segera mencoba ulang sumber daya Azure OpenAI yang berbeda untuk memenuhi permintaan asli dari aplikasi obrolan.

Diagram yang menunjukkan skenario pembatasan dengan kode respons 429 yang gagal dan header respons yang menunjukkan berapa detik klien harus menunggu untuk mencoba kembali.

Prasyarat

  • Langganan Azure. Buat satu secara gratis

  • Kontainer pengembangan tersedia untuk kedua contoh, beserta semua dependensi yang diperlukan untuk menyelesaikan artikel ini. Anda dapat menjalankan kontainer dev di GitHub Codespaces (di browser) atau secara lokal menggunakan Visual Studio Code.

    • Codespaces (disarankan)
    • Visual Studio Code
    • Hanya akun GitHub yang diperlukan untuk menggunakan Codespaces

Buka aplikasi contoh penyeimbang beban lokal di Azure API Management

  • GitHub Codespaces (disarankan)
  • Visual Studio Code

GitHub Codespaces menjalankan kontainer pengembangan yang dikelola oleh GitHub dengan Visual Studio Code untuk versi 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.

Buka di GitHub Codespaces.

Penting

Semua akun GitHub dapat menggunakan GitHub Codespaces hingga 60 jam gratis setiap bulan dengan dua instans inti. Untuk informasi selengkapnya, lihat penyimpanan dan jam inti yang disertakan setiap bulan oleh GitHub Codespaces.

Mengkonfigurasi load balancer untuk Azure API Management

  1. Untuk menyebarkan load balancer ke Azure, masuk ke Azure Developer CLI (AZD):

    azd auth login
    
  2. Selesaikan instruksi masuk.

  3. Sebarkan aplikasi load balancer:

    azd up
    

    Pilih langganan dan wilayah untuk penyebaran. Mereka tidak harus berlangganan dan berada di wilayah yang sama dengan aplikasi obrolan.

  4. Tunggu sampai proses penyebaran selesai sebelum Anda melanjutkan. Proses ini mungkin memakan waktu hingga 30 menit.

Dapatkan 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 percakapan dengan titik akhir dari penyeimbang beban

Contoh-contoh ini diselesaikan pada sampel aplikasi obrolan.

  • Penyebaran awal
  • Penyebaran Ulang
  1. Buka kontainer pengembangan sampel aplikasi obrolan dengan menggunakan salah satu pilihan berikut.

    Bahasa GitHub Codespaces Visual Studio Code
    .NET Open in GitHub CodespacesBuka di GitHub Codespaces Buka di Kontainer Dev
    JavaScript Open in GitHub CodespacesBuka di GitHub Codespaces Buka di Kontainer Dev
    Phyton Open in GitHub CodespacesBuka di GitHub Codespaces Buka di Kontainer Dev
  2. Masuk ke Azure Developer CLI (AZD):

    azd auth login
    

    Selesaikan instruksi masuk.

  3. Buat lingkungan AZD dengan nama seperti chat-app:

    azd env new <name>
    
  4. Tambahkan variabel lingkungan berikut, yang memberi tahu backend aplikasi obrolan untuk menggunakan URL kustom untuk permintaan Azure OpenAI:

    azd env set OPENAI_HOST azure_custom
    
  5. Tambahkan variabel lingkungan ini untuk memberi tahu backend aplikasi obrolan URL kustom untuk permintaan Azure OpenAI:

    azd env set AZURE_OPENAI_CUSTOM_URL <APIM_GATEWAY_URL>
    
  6. Sebarkan aplikasi obrolan:

    azd up
    

Mengonfigurasi kuota TPM

Secara default, masing-masing instans Azure OpenAI di load balancer disebarkan dengan kapasitas 30.000 token per menit (TPM). Anda dapat menggunakan aplikasi obrolan dengan keyakinan bahwa aplikasi tersebut dapat mengakomodasi banyak pengguna tanpa batasan kuota. Ubah nilai ini ketika:

  • Anda mengalami galat kapasitas distribusi: Turunkan nilainya.
  • Anda memerlukan kapasitas yang lebih tinggi: Naikkan nilai.
  1. Gunakan perintah berikut untuk mengubah nilai:

    azd env set OPENAI_CAPACITY 50
    
  2. Sebarkan ulang penyeimbang beban.

    azd up
    

Membersihkan sumber daya

Setelah Anda selesai dengan aplikasi obrolan dan penyeimbang muatan, 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.

  • .NET
  • JavaScript
  • Python

Membersihkan sumber daya penyeimbang beban

Hapus sumber daya Azure dan hapus kode sumber:

azd down --purge --force

Sakelar menawarkan:

  • purge: Sumber daya yang dihapus segera dibersihkan atau dimurnikan. Anda dapat menggunakan kembali token Azure OpenAI per menit.
  • force: Penghapusan terjadi tanpa terdeteksi, tanpa memerlukan persetujuan pengguna.

Membersihkan sumber daya

  • GitHub Codespaces
  • Visual Studio Code

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 lebih lanjut tentang hak akun GitHub Anda, lihat penyimpanan dan jam inti bulanan yang sudah termasuk dalam GitHub Codespaces.

  1. Masuk ke dasbor GitHub Codespaces.

  2. Temukan codespace anda yang saat ini sedang berjalan dan bersumber dari repositori GitHub azure-samples/openai-apim-lb.

    Cuplikan layar yang memperlihatkan semua codespace yang sedang berjalan termasuk status dan templatnya.

  3. Buka menu konteks untuk item GitHub Codespaces, lalu pilih Hapus.

    Cuplikan layar yang memperlihatkan menu konteks untuk satu ruang kode dengan opsi Hapus disorot.

Dapatkan bantuan

Jika Anda mengalami masalah saat menyebarkan load balancer Azure API Management, silakan tambahkan masalah Anda ke halaman "Issues " di repositori.

Contoh Kode

Sampel yang digunakan dalam artikel ini meliputi:

  • Aplikasi obrolan JavaScript dengan RAG
  • Load Balancer dengan Azure API Management

Langkah berikutnya

  • Menampilkan data diagnostik Azure API Management di Azure Monitor
  • Gunakan Azure Load Testing untuk melakukan pengujian beban pada aplikasi obrolan Anda dengan layanan Azure Load Testing.