Bagikan melalui


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.

Cuplikan layar petak Peta Azure OpenAI API di portal.

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

Diagram pembatasan token Layanan Azure OpenAI di API Management.

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.

Diagram memancarkan metrik token Azure OpenAI Service menggunakan API Management.

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.

Diagram menggunakan penyeimbangan beban backend di API Management.

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.

Diagram penggunaan pemutus sirkuit backend di API Management.

Kebijakan penembolokan semantik

Konfigurasikan kebijakan penembolokan semantik Azure OpenAI untuk mengoptimalkan penggunaan token dengan menyimpan penyelesaian untuk perintah serupa.

Diagram penembolokan semantik di API Management.

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

Pertimbangan arsitektur dan desain