الحد من استخدام الرمز المميز لواجهة برمجة تطبيقات Azure OpenAI

ينطبق على: المطور | أساسي | الإصدار 2 الأساسي | قياسي | الإصدار 2 القياسي | قسط

azure-openai-token-limit يمنع النهج ارتفاعات استخدام Azure OpenAI Service API على أساس كل مفتاح عن طريق الحد من استهلاك الرموز المميزة لنموذج اللغة إلى رقم محدد في الدقيقة. عند تجاوز استخدام الرمز المميز، يتلقى المتصل رمز حالة الاستجابة 429 Too Many Requests .

من خلال الاعتماد على مقاييس استخدام الرمز المميز التي تم إرجاعها من نقطة نهاية OpenAI، يمكن للنهج مراقبة الحدود وفرضها بدقة في الوقت الفعلي. كما يتيح النهج الحساب المسبق للرموز المميزة للمطالبة بواسطة APIM، ما يقلل الطلبات غير الضرورية إلى الواجهة الخلفية OpenAI إذا تم تجاوز الحد بالفعل.

إشعار

تعيين عناصر النهج والعناصر التابعة بالترتيب الوارد في بيان النهج. تعلم كيفية إعداد نُهج APIM أو تعديلها.

نماذج خدمة Azure OpenAI المدعومة

يتم استخدام النهج مع واجهات برمجة التطبيقات المضافة إلى APIM من خدمة Azure OpenAI من الأنواع التالية:

نوع API النماذج المدعومة
إكمال الدردشة gpt-3.5

gpt-4
الإكمال gpt-3.5-turbo-instruct
عمليات التضمين تضمين نص-3-كبير

text-embedding-3-small

text-embedding-ada-002

لمزيد من المعلومات، راجع نماذج خدمة Azure OpenAI.

نهج السياسة

<azure-openai-token-limit counter-key="key value"
        tokens-per-minute="number"
        estimate-prompt-tokens="true | false"    
        retry-after-header-name="custom header name, replaces default 'Retry-After'" 
        retry-after-variable-name="policy expression variable name"
        remaining-tokens-header-name="header name"  
        remaining-tokens-variable-name="policy expression variable name"
        tokens-consumed-header-name="header name"
        tokens-consumed-variable-name="policy expression variable name" />

سمات

السمة ‏‏الوصف مطلوبة افتراضي
counter-key المفتاح الذي يجب استخدامه لنهج حد الرمز المميز. لكل قيمة مفتاح، يتم استخدام عداد واحد لجميع النطاقات التي يتم تكوين النهج بها. يتم السماح بتعبيرات النهج. ‏‏نعم‬ غير متوفر
الرموز المميزة في الدقيقة الحد الأقصى لعدد الرموز المميزة المستهلكة بواسطة المطالبة والإكمال في الدقيقة. ‏‏نعم‬ غير متوفر
تقدير الرموز المميزة الموجهة قيمة منطقية تحدد ما إذا كنت تريد تقدير عدد الرموز المميزة المطلوبة لمطالبة:
- true: تقدير عدد الرموز المميزة استنادا إلى مخطط المطالبة في واجهة برمجة التطبيقات؛ قد يقلل من الأداء.
- false: لا تقدر الرموز المميزة للمطالبة.

عند التعيين إلى false، يتم حساب الرموز المميزة المتبقية لكل counter-key باستخدام استخدام الرمز المميز الفعلي من استجابة النموذج. قد يؤدي هذا إلى إرسال المطالبات إلى النموذج الذي يتجاوز حد الرمز المميز. في مثل هذه الحالة، سيتم الكشف عن هذا في الاستجابة، وسيتم حظر جميع الطلبات الناجحة بواسطة النهج حتى يتم تحرير حد الرمز المميز مرة أخرى.
‏‏نعم‬ غير متوفر
retry-after-header-name اسم عنوان استجابة مخصص قيمته هي الفاصل الزمني الموصى به لإعادة المحاولة بالثوان بعد تجاوز المحدد tokens-per-minute . تعبيرات النهج غير مسموح بها. لا Retry-After
retry-after-variable-name اسم متغير يخزن الفاصل الزمني لإعادة المحاولة الموصى به بالثوان بعد تجاوز المحدد tokens-per-minute . تعبيرات النهج غير مسموح بها. لا ‏‫غير متاح
اسم عنوان الرموز المميزة المتبقية اسم عنوان الاستجابة الذي تكون قيمته بعد كل تنفيذ نهج هو عدد الرموز المميزة المتبقية المسموح بها للفاصل الزمني. تعبيرات النهج غير مسموح بها. لا ‏‫غير متاح
اسم متغير الرموز المميزة المتبقية اسم متغير يقوم بعد كل تنفيذ نهج بتخزين عدد الرموز المميزة المتبقية المسموح بها للفاصل الزمني. تعبيرات النهج غير مسموح بها. لا ‏‫غير متاح
اسم عنوان الرموز المميزة المستهلكة اسم عنوان الاستجابة الذي تكون قيمته هو عدد الرموز المميزة التي يستهلكها كل من المطالبة والإكمال. تتم إضافة العنوان إلى الاستجابة فقط بعد تلقي الاستجابة من الخلفية. تعبيرات النهج غير مسموح بها. لا ‏‫غير متاح
اسم متغير الرموز المميزة المستهلكة اسم متغير تمت تهيئته إلى العدد المقدر من الرموز المميزة في المطالبة في backend قسم من البنية الأساسية لبرنامج ربط العمليات التجارية إذا كان estimate-prompt-tokens هو true صفر وبخلاف ذلك. يتم تحديث المتغير مع العدد المبلغ عنه عند تلقي الاستجابة في outbound القسم . لا ‏‫غير متاح

الاستخدام

ملاحظات الاستخدام

  • يمكن استخدام هذا النهج عدة مرات لكل تعريف نهج.
  • يمكن تكوين هذا النهج اختياريا عند إضافة واجهة برمجة تطبيقات من خدمة Azure OpenAI باستخدام المدخل.
  • حيثما يكون متوفرا عند estimate-prompt-tokens تعيين إلى false، يتم استخدام القيم في قسم الاستخدام للاستجابة من Azure OpenAI Service API لتحديد استخدام الرمز المميز.
  • تدعم بعض نقاط نهاية Azure OpenAI تدفق الاستجابات. عند stream تعيين إلى true في طلب واجهة برمجة التطبيقات لتمكين الدفق، يتم دائما تقدير الرموز المميزة للمطالبة، بغض النظر عن قيمة السمة estimate-prompt-tokens . يتم أيضا تقدير رموز الإكمال المميزة عند دفق الاستجابات.
  • تستخدم API Management عدادا واحدا لكل counter-key قيمة تحددها في النهج. يتم تحديث العداد في جميع النطاقات التي يتم فيها تكوين النهج بقيمة المفتاح هذه. إذا كنت ترغب في تكوين عدادات منفصلة في نطاقات مختلفة (على سبيل المثال، واجهة برمجة تطبيقات أو منتج معين)، فحدد قيم مفاتيح مختلفة في النطاقات المختلفة. على سبيل المثال، إلحاق سلسلة تعرف النطاق بقيمة تعبير.

مثال

في المثال التالي، يتم مفتاح حد الرمز المميز البالغ 5000 في الدقيقة بواسطة عنوان IP المتصل. لا يقدر النهج عدد الرموز المميزة المطلوبة لمطالبة. بعد كل تنفيذ نهج، يتم تخزين الرموز المميزة المتبقية المسموح بها لعنوان IP المتصل هذا في الفترة الزمنية في المتغير remainingTokens.

<policies>
    <inbound>
        <base />
        <azure-openai-token-limit
            counter-key="@(context.Request.IpAddress)"
            tokens-per-minute="5000" estimate-prompt-tokens="false" remaining-tokens-variable-name="remainingTokens" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>

لمزيد من المعلومات حول العمل مع النُهج، راجع: