مشاركة عبر


تمكين التخزين المؤقت الدلالي لواجهات برمجة تطبيقات LLM في إدارة واجهة برمجة تطبيقات Azure

ينطبق على: جميع مستويات إدارة واجهة برمجة التطبيقات

تمكين التخزين المؤقت الدلالي للاستجابات لطلبات واجهة برمجة تطبيقات LLM لتقليل متطلبات النطاق الترددي والمعالجة المفروضة على واجهات برمجة التطبيقات الخلفية وتقليل زمن الوصول الذي يدركه مستهلكو واجهة برمجة التطبيقات. باستخدام التخزين المؤقت الدلالي، يمكنك إرجاع الاستجابات المخزنة مؤقتا للمطالبات المتطابقة وأيضا للمطالبات المتشابهة في المعنى، حتى إذا لم يكن النص متطابقا. للحصول على الخلفية، راجع البرنامج التعليمي: استخدام Azure Managed Redis كذاكرة تخزين مؤقت دلالية.

إشعار

تظهر خطوات التكوين في هذا المقال كيفية تمكين التخزين المؤقت الدلالي لواجهات برمجة التطبيقات المضافة إلى إدارة واجهة برمجة التطبيقات من Azure OpenAI في نماذج Microsoft Foundry. يمكنك تطبيق خطوات مماثلة لتمكين التخزين المؤقت الدلالي لواجهات برمجة تطبيقات نموذج اللغة الكبيرة (LLM) المقابلة المتوفرة من خلال واجهة برمجة تطبيقات استدلال نموذج الذكاء الاصطناعي Azure أو مع النماذج المتوافقة مع OpenAI التي يتم تقديمها من خلال موفري الاستدلال التابعين لجهات خارجية.

المتطلبات الأساسية

اختبار نشر واجهة برمجة تطبيقات الدردشة

أولا، اختبر توزيع Azure OpenAI للتأكد من أن واجهة برمجة تطبيقات إكمال الدردشة أو واجهة برمجة تطبيقات الدردشة تعمل كما هو متوقع. للحصول على خطوات، راجع استيراد واجهة برمجة تطبيقات Azure OpenAI إلى Azure API Management.

على سبيل المثال، اختبر Azure OpenAI Chat API عن طريق إرسال طلب POST إلى نقطة نهاية API مع مطالبة في نص الطلب. يجب أن تتضمن الاستجابة إكمال المطالبة. مثال للطلب:

POST https://my-api-management.azure-api.net/my-api/openai/deployments/chat-deployment/chat/completions?api-version=2024-02-01

مع نص الطلب:

{"messages":[{"role":"user","content":"Hello"}]}

عند نجاح الطلب، تتضمن الاستجابة إكمالا لرسالة الدردشة.

إنشاء خلفية لتضمين واجهة برمجة التطبيقات

قم بإنشاء مورد خلفي لنشر واجهة برمجة تطبيقات التضمينات باستخدام الإعدادات التالية:

  • الاسم - اسم من اختيارك، مثل التضمينات الخلفية. يمكنك استخدام هذا الاسم للإشارة إلى الخلفية في النهج.

  • النوع - حدد عنوان URL المخصص.

  • عنوان URL لوقت التشغيل - عنوان URL لتوزيع واجهة برمجة تطبيقات التضمينات في Azure OpenAI، على غرار ما يلي: https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings (بدون معلمات الاستعلام).

  • بيانات اعتماد التخويل - انتقل إلى علامة التبويب الهوية المدارة .

    • هوية العميل - حدد الهوية المعينة للنظام أو أدخل معرف عميل الهوية المدارة المعين من قبل المستخدم.
    • معرف المورد - أدخل https://cognitiveservices.azure.com/ ل Azure OpenAI.

اختبار الواجهة الخلفية لتضمينات الاختبار

لاختبار الواجهة الخلفية للتضمينات، قم بإنشاء عملية واجهة برمجة تطبيقات لواجهة برمجة تطبيقات Azure OpenAI:

  1. في علامة التبويب تصميم لواجهة برمجة التطبيقات الخاصة بك، حدد + إضافة عملية.
  2. أدخل اسم عرض مثل التضمينات واختياريا اسما للعملية.
  3. في قسم Frontend ، في URL، حدد POST وأدخل المسار /.
  4. في علامة التبويب رؤوس ، أضف عنوانا مطلوبا بالاسم Content-Type والقيمة application/json.
  5. حدد حفظ.

تكوين النهج التالية في قسم المعالجة الواردة من عملية واجهة برمجة التطبيقات. في نهج set-backend-service ، استبدل اسم الخلفية التي قمت بإنشائها.

<policies>
    <inbound>
        <set-backend-service backend-id="embeddings-backend" />
        <authentication-managed-identity resource="https://cognitiveservices.azure.com/" />
        [...]
    </inbound>
    [...]
</policies>

في علامة التبويب Test ، اختبر العملية عن طريق إضافة معلمة api-version استعلام بقيمة مثل 2024-02-01. توفير نص طلب صالح. على سبيل المثال:

{"input":"Hello"}

إذا نجح الطلب، تتضمن الاستجابة تمثيلا متجها لنص الإدخال. استجابة مثال:

{
    "object": "list",
    "data": [{
        "object": "embedding",
        "index": 0,
        "embedding": [
            -0.021829502,
            -0.007157768,
            -0.028619017,
            [...]
        ]
    }]
}

تكوين نهج التخزين المؤقت الدلالي

لتمكين التخزين المؤقت الدلالي لواجهات برمجة تطبيقات Azure OpenAI في Azure API Management، قم بتطبيق النهج التالية: أحدهما للتحقق من ذاكرة التخزين المؤقت قبل إرسال الطلبات (البحث) والآخر لتخزين الاستجابات لإعادة استخدامها في المستقبل (المتجر):

  • في قسم Inbound processing لواجهة برمجة التطبيقات، أضف نهج azure-openai-semantic-cache-lookup. في السمة embeddings-backend-id ، حدد الواجهة الخلفية لواجهة برمجة تطبيقات Embeddings التي قمت بإنشائها.

    إشعار

    عند تمكين التخزين المؤقت الدلالي لواجهات برمجة تطبيقات نموذج اللغة الكبيرة الأخرى، استخدم نهج البحث عن llm-semantic-cache بدلا من ذلك.

    مثال:

    <azure-openai-semantic-cache-lookup
        score-threshold="0.15"
        embeddings-backend-id="embeddings-backend"
        embeddings-backend-auth="system-assigned"
        ignore-system-messages="true"
        max-message-count="10">
        <vary-by>@(context.Subscription.Id)</vary-by>
    </azure-openai-semantic-cache-lookup>
    <rate-limit calls="10" renewal-period="60" />
    

    إشعار

    أضف سياسة تحديد المعدل (أو سياسة تحديد المعدل حسب المفتاح ) بعد البحث في ذاكرة التخزين المؤقت للمساعدة في تقليل عدد المكالمات ومنع التحميل الزائد على خدمة الواجهة الخلفية في حال عدم توفر الذاكرة المؤقتة.

  • في قسم Outbound processing لواجهة برمجة التطبيقات، أضف نهج azure-openai-semantic-cache-store .

    إشعار

    عند تمكين التخزين المؤقت الدلالي لواجهات برمجة تطبيقات نموذج اللغة الكبيرة الأخرى، استخدم نهج llm-semantic-cache-store بدلا من ذلك.

    مثال:

    <azure-openai-semantic-cache-store duration="60" />
    

تأكيد التخزين المؤقت

للتأكد من أن التخزين المؤقت الدلالي يعمل كما هو متوقع، تتبع عملية إكمال الاختبار أو إكمال الدردشة باستخدام وحدة تحكم الاختبار في المدخل. تأكد من استخدام ذاكرة التخزين المؤقت في المحاولات اللاحقة عن طريق فحص التتبع. تعرف على المزيد حول تتبع استدعاءات واجهة برمجة التطبيقات في Azure API Management.

اضبط السمة score-threshold في نهج البحث للتحكم في مدى تقارير المطالبة الواردة مع مطالبة مخزنة مؤقتا لإرجاع استجابتها المخزنة. يعني حد الدرجة الأقل أنه يجب أن يكون للمطالبات تشابه دلالي أعلى لإرجاع الاستجابات المخزنة مؤقتا. لا تستخدم المطالبات ذات الدرجات أعلى من الحد الاستجابة المخزنة مؤقتا.

على سبيل المثال، إذا تم استخدام ذاكرة التخزين المؤقت، يتضمن قسم الإخراج إدخالات مشابهة لقطة الشاشة التالية:

لقطة شاشة لتتبع الطلب في مدخل Microsoft Azure.