Gambaran umum kemampuan gateway AI generatif di Azure API Management
BERLAKU UNTUK: Semua tingkatAN API Management
Artikel ini memperkenalkan kemampuan di Azure API Management untuk membantu Anda mengelola API AI generatif, seperti yang disediakan oleh Azure OpenAI Service. Azure API Management menyediakan berbagai kebijakan, metrik, dan fitur lainnya untuk meningkatkan keamanan, performa, dan keandalan untuk API yang melayani aplikasi cerdas Anda. Secara kolektif, fitur-fitur ini disebut kemampuan gateway AI (GenAI) generatif untuk API AI generatif Anda.
Catatan
- Artikel ini berfokus pada kemampuan untuk mengelola API yang diekspos oleh Azure OpenAI Service. Banyak kemampuan gateway GenAI berlaku untuk API model bahasa besar (LLM) lainnya, termasuk yang tersedia melalui Azure AI Model Inference API.
- Kemampuan gateway AI generatif adalah fitur gateway API Management yang ada, bukan gateway API terpisah. Untuk informasi selengkapnya tentang API Management, lihat Gambaran umum Azure API Management.
Tantangan dalam mengelola API AI generatif
Salah satu sumber daya utama yang Anda miliki dalam layanan AI generatif adalah token. Layanan Azure OpenAI menetapkan kuota untuk penyebaran model Anda yang dinyatakan dalam token per menit (TPM) yang kemudian didistribusikan di seluruh konsumen model Anda - misalnya, aplikasi yang berbeda, tim pengembang, departemen dalam perusahaan, dll.
Azure memudahkan untuk menghubungkan satu aplikasi ke Azure OpenAI Service: Anda dapat terhubung langsung menggunakan kunci API dengan batas TPM yang dikonfigurasi langsung pada tingkat penyebaran model. Namun, ketika Anda mulai mengembangkan portofolio aplikasi, Anda disajikan dengan beberapa aplikasi yang memanggil satu atau bahkan beberapa titik akhir Azure OpenAI Service yang disebarkan sebagai instans pay-as-you-go atau Provisioned Throughput Units (PTU). Itu datang dengan tantangan tertentu:
- Bagaimana penggunaan token dilacak di beberapa aplikasi? Dapatkah biaya silang dihitung untuk beberapa aplikasi/tim yang menggunakan model Azure OpenAI Service?
- Bagaimana Anda memastikan bahwa satu aplikasi tidak menggunakan seluruh kuota TPM, meninggalkan aplikasi lain tanpa opsi untuk menggunakan model Azure OpenAI Service?
- Bagaimana kunci API didistribusikan dengan aman di beberapa aplikasi?
- Bagaimana beban didistribusikan di beberapa titik akhir Azure OpenAI? Dapatkah Anda memastikan bahwa kapasitas yang diterapkan di PTUs habis sebelum kembali ke instans prabayar?
Sisa artikel ini menjelaskan bagaimana Azure API Management dapat membantu Anda mengatasi tantangan ini.
Mengimpor sumber daya Azure OpenAI Service sebagai API
Impor API dari titik akhir Azure OpenAI Service ke manajemen Azure API menggunakan pengalaman sekali klik. API Management menyederhanakan proses onboarding dengan secara otomatis mengimpor skema OpenAPI untuk Azure OpenAI API dan menyiapkan autentikasi ke titik akhir Azure OpenAI menggunakan identitas terkelola, menghapus kebutuhan akan konfigurasi manual. Dalam pengalaman ramah pengguna yang sama, Anda dapat melakukan prakonfigurasi kebijakan untuk batas token dan memancarkan metrik token.
Kebijakan batas token
Konfigurasikan kebijakan batas token Azure OpenAI untuk mengelola dan menerapkan batas per konsumen API berdasarkan penggunaan token Azure OpenAI Service. Dengan kebijakan ini Anda dapat menetapkan batasan, yang dinyatakan dalam token per menit (TPM).
Kebijakan ini memberikan fleksibilitas untuk menetapkan batas berbasis token pada kunci penghitung apa pun, seperti kunci langganan, alamat IP asal, atau kunci arbitrer yang ditentukan melalui ekspresi kebijakan. Kebijakan ini juga memungkinkan prakalkulasi token prompt di sisi Azure API Management, meminimalkan permintaan yang tidak perlu ke backend Azure OpenAI Service jika perintah sudah melebihi batas.
Contoh dasar berikut menunjukkan cara menetapkan batas TPM 500 per kunci langganan:
<azure-openai-token-limit counter-key="@(context.Subscription.Id)"
tokens-per-minute="500" estimate-prompt-tokens="false" remaining-tokens-variable-name="remainingTokens">
</azure-openai-token-limit>
Tip
Untuk mengelola dan memberlakukan batas token untuk API LLM yang tersedia melalui API Inferensi Model Azure AI, API Management menyediakan kebijakan batas llm-token yang setara.
Memancarkan kebijakan metrik token
Kebijakan metrik token Azure OpenAI mengirimkan metrik ke Application Insights tentang konsumsi token LLM melalui API Layanan Azure OpenAI. Kebijakan ini membantu memberikan gambaran umum tentang pemanfaatan model Azure OpenAI Service di beberapa aplikasi atau konsumen API. Kebijakan ini dapat berguna untuk skenario penagihan balik, pemantauan, dan perencanaan kapasitas.
Kebijakan ini menangkap permintaan, penyelesaian, dan total metrik penggunaan token dan mengirimkannya ke namespace Application Insights pilihan Anda. Selain itu, Anda dapat mengonfigurasi atau memilih dari dimensi yang telah ditentukan sebelumnya untuk membagi metrik penggunaan token, sehingga Anda dapat menganalisis metrik berdasarkan ID langganan, alamat IP, atau dimensi kustom pilihan Anda.
Misalnya, kebijakan berikut mengirimkan metrik ke Application Insights yang dibagi berdasarkan alamat IP klien, API, dan pengguna:
<azure-openai-emit-token-metric namespace="openai">
<dimension name="Client IP" value="@(context.Request.IpAddress)" />
<dimension name="API ID" value="@(context.Api.Id)" />
<dimension name="User ID" value="@(context.Request.Headers.GetValueOrDefault("x-user-id", "N/A"))" />
</azure-openai-emit-token-metric>
Tip
Untuk mengirim metrik untuk API LLM yang tersedia melalui Azure AI Model Inference API, API Management menyediakan kebijakan metrik llm-emit-token yang setara.
Load balancer backend dan pemutus sirkuit
Salah satu tantangan saat membangun aplikasi cerdas adalah memastikan bahwa aplikasi tahan terhadap kegagalan backend dan dapat menangani beban tinggi. Dengan mengonfigurasi titik akhir Azure OpenAI Service Anda menggunakan backend di Azure API Management, Anda dapat menyeimbangkan beban di seluruhnya. Anda juga dapat menentukan aturan pemutus sirkuit untuk menghentikan penerusan permintaan ke backend Azure OpenAI Service jika tidak responsif.
Penyeimbang beban backend mendukung penyeimbangan beban berbasis round-robin, tertimbang, dan berbasis prioritas, memberi Anda fleksibilitas untuk menentukan strategi distribusi beban yang memenuhi persyaratan spesifik Anda. Misalnya, tentukan prioritas dalam konfigurasi load balancer untuk memastikan pemanfaatan optimal titik akhir Azure OpenAI tertentu, terutama yang dibeli sebagai PTUs.
Pemutus sirkuit backend memiliki durasi perjalanan dinamis, menerapkan nilai dari header Retry-After yang disediakan oleh backend. Ini memastikan pemulihan backend yang tepat dan tepat waktu, memaksimalkan pemanfaatan backend prioritas Anda.
Kebijakan penembolokan semantik
Konfigurasikan kebijakan penembolokan semantik Azure OpenAI untuk mengoptimalkan penggunaan token dengan menyimpan penyelesaian untuk perintah serupa.
Di API Management, aktifkan penembolokan semantik dengan menggunakan Azure Redis Enterprise atau cache eksternal lain yang kompatibel dengan RediSearch dan di-onboard ke Azure API Management. Dengan menggunakan Azure OpenAI Service Embeddings API, azure-openai-semantic-cache-store dan azure-openai-semantic-cache-lookup policies store dan ambil penyelesaian prompt serupa secara semantik dari cache. Pendekatan ini memastikan penyelesaian penggunaan kembali, menghasilkan pengurangan konsumsi token dan peningkatan performa respons.
Tip
Untuk mengaktifkan penembolokan semantik untuk API LLM yang tersedia melalui Azure AI Model Inference API, API Management menyediakan kebijakan llm-semantic-cache-store-policy dan llm-semantic-cache-lookup-policy yang setara.
Lab dan sampel
- Lab untuk kemampuan gateway GenAI dari Azure API Management
- Azure API Management (APIM) - Sampel Azure OpenAI (Node.js)
- Kode sampel Python untuk menggunakan Azure OpenAI dengan API Management
Pertimbangan arsitektur dan desain
- Arsitektur referensi gateway GenAI menggunakan API Management
- Akselerator zona pendaratan gateway hub AI
- Merancang dan menerapkan solusi gateway dengan sumber daya Azure OpenAI
- Menggunakan gateway di depan beberapa penyebaran atau instans Azure OpenAI
Konten terkait
- Blog: Memperkenalkan kemampuan GenAI di Azure API Management
- Blog: Mengintegrasikan Azure Content Safety dengan API Management untuk Titik Akhir Azure OpenAI
- Pelatihan: Mengelola API AI generatif Anda dengan Azure API Management
- Penyeimbangan beban cerdas untuk titik akhir OpenAI dan Azure API Management
- Mengautentikasi dan mengotorisasi akses ke API Azure OpenAI menggunakan Azure API Management