التشغيل السريع: بدء استخدام مساعدي Azure OpenAI (معاينة)

يسمح لك مساعدو Azure OpenAI (معاينة) بإنشاء مساعدين الذكاء الاصطناعي مصممين خصيصا لاحتياجاتك من خلال إرشادات مخصصة ومعززة بأدوات متقدمة مثل مترجم التعليمات البرمجية والوظائف المخصصة.

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

انتقل إلى Azure OpenAI Studio

انتقل إلى Azure OpenAI Studio في https://oai.azure.com/ وسجل الدخول باستخدام بيانات الاعتماد التي لديها حق الوصول إلى مورد OpenAI الخاص بك. أثناء سير عمل تسجيل الدخول أو بعده، حدد الدليل المناسب واشتراك Azure ومورد Azure OpenAI.

من الصفحة المنتقل إليها في Azure OpenAI Studio، ابدأ تشغيل ملعب المساعد من مساعدي ملعب>التنقل الأيسر (معاينة)

لقطة شاشة للصفحة المنتقل إليها في Azure OpenAI Studio.

Playground

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

لقطة شاشة لشاشة تكوين المساعد دون تعبئة جميع القيم.

إعداد المساعد

استخدم جزء إعداد المساعد لإنشاء مساعد الذكاء الاصطناعي جديد أو لتحديد مساعد موجود.

الاسم الوصف
اسم المساعد اسم النشر المقترن بنموذج معين.
تعليمات إرشادات مشابهة لرسائل النظام هذا هو المكان الذي تعطي فيه إرشادات النموذج حول كيفية تصرفه وأي سياق يجب أن يشير إليه عند إنشاء استجابة. يمكنك وصف شخصية المساعد، وإخباره بما يجب وما لا ينبغي الإجابة عليه، وإخباره بكيفية تنسيق الاستجابات. يمكنك أيضا تقديم أمثلة على الخطوات التي يجب أن تتخذها عند الرد على الردود.
النشر هذا هو المكان الذي تقوم فيه بتعيين توزيع النموذج الذي يجب استخدامه مع مساعدك.
الوظائف إنشاء تعريفات وظائف مخصصة للنماذج لصياغة استدعاءات واجهة برمجة التطبيقات وهيكلة مخرجات البيانات استنادا إلى مواصفاتك
مترجم التعليمات البرمجية يوفر مترجم التعليمات البرمجية الوصول إلى بيئة الاختبار المعزولة Python التي يمكن استخدامها للسماح للنموذج باختبار التعليمات البرمجية وتنفيذها.
الملفات يمكنك تحميل ما يصل إلى 20 ملفا، بحد أقصى 512 ميغابايت لاستخدامها مع الأدوات.

الأدوات

يمكن لمساعد فردي الوصول إلى ما يصل إلى 128 أدوات بما في ذلك code interpreter، بالإضافة إلى أي أدوات مخصصة تقوم بإنشائها عبر الوظائف.

جلسة المحادثة

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

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

حدد الزر مسح الدردشة لحذف محفوظات المحادثات الحالية.

يوجد زران أسفل مربع إدخال النص:

  • إضافة رسالة دون تشغيل.
  • إضافة وتشغيل.

السجلات

توفر السجلات لقطة مفصلة لما هو نشاط واجهة برمجة التطبيقات المساعد.

إظهار اللوحات

بشكل افتراضي، هناك ثلاث لوحات: إعداد المساعد وجلسة الدردشة والسجلات. يتيح لك إظهار اللوحات إضافة اللوحات وإزالتها وإعادة ترتيبها. إذا قمت بإغلاق لوحة وتحتاج إلى استعادتها مرة أخرى، فاستخدم إظهار اللوحات لاستعادة اللوحة المفقودة.

إنشاء مساعدك الأول

  1. من القائمة المنسدلة إعداد المساعد، حدد جديد

  2. امنح مساعدك اسما

  3. أدخل الإرشادات التالية "أنت مساعد الذكاء الاصطناعي يمكنه كتابة التعليمات البرمجية للمساعدة في الإجابة عن الأسئلة الرياضية"

  4. حدد توزيع .gpt-4 (1106-preview) ستعرض القائمة المنسدلة أسماء النشر المخصصة الخاصة بك، لذا إذا كانت أسماء النموذج/النشر مختلفة، فيجب عليك اختيار توزيع حيث يكون النموذج الأساسي مكافئا لنموذج 1106-preview.

  5. حدد تبديل تمكين مترجم التعليمات البرمجية.

  6. حدد حفظ.

    لقطة شاشة للمساعد مع إدخال تفاصيل التكوين.

  7. أدخل سؤالا ليجيب عليه المساعد: "أحتاج إلى حل المعادلة 3x + 11 = 14. هل يمكنك مساعدتي؟"

  8. حدد الزر إضافة وتشغيل

    The solution to the equation (3x + 11 = 14) is (x = 1).
    

    بينما يمكننا أن نرى أن الإجابة صحيحة، للتأكد من أن النموذج استخدم مترجم التعليمات البرمجية للوصول إلى هذه الإجابة، وأن التعليمات البرمجية التي كتبها صالحة بدلا من مجرد تكرار إجابة من بيانات تدريب النموذج، سنطرح سؤالا آخر.

  9. أدخل سؤال المتابعة: "أظهر لي التعليمات البرمجية التي قمت بتشغيلها للحصول على هذا الحل."

    Certainly! Here's the Python code I ran to find the solution for the equation (3x + 11 = 14):
    
    from sympy import symbols, Eq, solve  
    
    # Define the variable  
    x = symbols('x')  
    
    # Define the equation  
    equation = Eq(3*x + 11, 14)  
    
    # Solve the equation  
    solution = solve(equation, x)  
    solution  
    

لقطة شاشة لجلسة المحادثة في ملعب المساعد.

يمكنك أيضا الرجوع إلى السجلات في اللوحة اليمنى للتأكد من استخدام مترجم التعليمات البرمجية والتحقق من صحة التعليمات البرمجية التي تم تشغيلها لإنشاء الاستجابة. من المهم أن تتذكر أنه بينما يمنح مترجم التعليمات البرمجية النموذج القدرة على الاستجابة لأسئلة رياضية أكثر تعقيدا عن طريق تحويل الأسئلة إلى تعليمات برمجية وتشغيلها في بيئة Python آلية تحديد الوصول، لا تزال بحاجة إلى التحقق من صحة الاستجابة للتأكد من أن النموذج ترجم سؤالك بشكل صحيح إلى تمثيل صالح في التعليمات البرمجية.

تنظيف الموارد

إذا كنت ترغب في تنظيف مورد Azure OpenAI وإزالته، يمكنك حذف المورد أو مجموعة الموارد. يؤدي حذف مجموعة الموارد إلى حذف أية موارد أخرى مقترنة بها أيضًا.

(راجع أيضًا )

هام

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

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

  • اشتراك Azure - أنشئ اشتراكاً مجاناً.

  • الوصول الممنوح إلى Azure OpenAI في اشتراك Azure المطلوب.

    حاليًا، يتم منح الوصول إلى هذه الخدمة فقط بواسطة التطبيق. يمكنك التقدم بطلب للوصول إلى Azure OpenAI عن طريق إكمال النموذج في https://aka.ms/oai/access. افتح مشكلة على هذا المستودع للاتصال بنا إذا كانت لديك مشكلة.

  • مورد مركز Azure الذكاء الاصطناعي مع نشر نموذج. لمزيد من المعلومات حول نشر النموذج، راجع دليل توزيع الموارد.

  • مشروع Azure الذكاء الاصطناعي في Azure الذكاء الاصطناعي Studio.

انتقل إلى Azure الذكاء الاصطناعي Studio (معاينة)

  1. سجل الدخول إلى Azure الذكاء الاصطناعي Studio.

  2. انتقل إلى مشروعك أو أنشئ مشروعا جديدا في Azure الذكاء الاصطناعي Studio.

  3. من نظرة عامة على مشروعك، حدد Assistants، الموجود ضمن Project playground.

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

    يوفر الملعب عدة خيارات لتكوين مساعدك. في الخطوات التالية، ستستخدم جزء إعداد المساعد لإنشاء مساعد الذكاء الاصطناعي جديد.

    الاسم الوصف
    اسم المساعد اسم النشر المقترن بنموذج معين.
    تعليمات إرشادات مشابهة لرسائل النظام هذا هو المكان الذي تعطي فيه إرشادات النموذج حول كيفية تصرفه وأي سياق يجب أن يشير إليه عند إنشاء استجابة. يمكنك وصف شخصية المساعد، وإخباره بما يجب وما لا ينبغي الإجابة عليه، وإخباره بكيفية تنسيق الاستجابات. يمكنك أيضا تقديم أمثلة على الخطوات التي يجب أن تتخذها عند الرد على الردود.
    النشر هذا هو المكان الذي تقوم فيه بتعيين توزيع النموذج الذي يجب استخدامه مع مساعدك.
    الوظائف إنشاء تعريفات دالة مخصصة للنماذج لصياغة استدعاءات واجهة برمجة التطبيقات وهيكلة مخرجات البيانات استنادا إلى مواصفاتك. غير مستخدم في هذا التشغيل السريع.
    مترجم التعليمات البرمجية يوفر مترجم التعليمات البرمجية الوصول إلى بيئة الاختبار المعزولة Python التي يمكن استخدامها للسماح للنموذج باختبار التعليمات البرمجية وتنفيذها.
    الملفات يمكنك تحميل ما يصل إلى 20 ملفا، بحد أقصى 512 ميغابايت لاستخدامها مع الأدوات. غير مستخدم في هذا التشغيل السريع.

    لقطة شاشة لشاشة تكوين المساعد دون تعبئة جميع القيم.

إنشاء مساعدك الأول

  1. حدد التوزيع من القائمة المنسدلة Deployments .

  2. من القائمة المنسدلة إعداد المساعد، حدد جديد.

  3. امنح مساعدك اسما.

  4. أدخل الإرشادات التالية "أنت مساعد الذكاء الاصطناعي يمكنه كتابة التعليمات البرمجية للمساعدة في الإجابة عن الأسئلة الرياضية"

  5. حدد توزيع نموذج. نوصي بالاختبار باستخدام أحد أحدث نماذج gpt-4.

  6. حدد تبديل تمكين مترجم التعليمات البرمجية.

  7. حدد حفظ.

    لقطة شاشة للمساعد مع إدخال تفاصيل التكوين.

  8. أدخل سؤالا ليجيب عليه المساعد: "أحتاج إلى حل المعادلة 3x + 11 = 14. هل يمكنك مساعدتي؟"

  9. حدد الزر إضافة وتشغيل

    The solution to the equation (3x + 11 = 14) is (x = 1).
    

    بينما يمكننا أن نرى أن الإجابة صحيحة، للتأكد من أن النموذج استخدم مترجم التعليمات البرمجية للوصول إلى هذه الإجابة، وأن التعليمات البرمجية التي كتبها صالحة بدلا من مجرد تكرار إجابة من بيانات تدريب النموذج، سنطرح سؤالا آخر.

  10. أدخل سؤال المتابعة: "أظهر لي التعليمات البرمجية التي قمت بتشغيلها للحصول على هذا الحل."

    Sure. The code is very straightforward
    
    # calculation
    x = (14 - 11) / 3
    x
    
    
    First, we subtract 11 from 14, then divide the result by 3. This gives us the value of x which is 1.0.
    

    لقطة شاشة لجلسة المحادثة في ملعب المساعد.

يمكنك أيضا الرجوع إلى السجلات في اللوحة اليمنى للتأكد من استخدام مترجم التعليمات البرمجية والتحقق من صحة التعليمات البرمجية التي تم تشغيلها لإنشاء الاستجابة. من المهم أن تتذكر أنه بينما يمنح مترجم التعليمات البرمجية النموذج القدرة على الاستجابة لأسئلة رياضية أكثر تعقيدا عن طريق تحويل الأسئلة إلى تعليمات برمجية وتشغيلها في بيئة Python آلية تحديد الوصول، لا تزال بحاجة إلى التحقق من صحة الاستجابة للتأكد من أن النموذج ترجم سؤالك بشكل صحيح إلى تمثيل صالح في التعليمات البرمجية.

المفاهيم الرئيسية

أثناء استخدام ملعب المساعدين، ضع المفاهيم التالية في الاعتبار.

الأدوات

يمكن لمساعد فردي الوصول إلى ما يصل إلى 128 أدوات بما في ذلك code interpreter، بالإضافة إلى أي أدوات مخصصة تقوم بإنشائها عبر الوظائف.

جلسة المحادثة

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

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

حدد الزر مسح الدردشة لحذف محفوظات المحادثات الحالية.

يوجد زران أسفل مربع إدخال النص:

  • إضافة رسالة دون تشغيل.
  • إضافة وتشغيل.

السجلات

توفر السجلات لقطة مفصلة لما هو نشاط واجهة برمجة التطبيقات المساعد.

إظهار اللوحات

بشكل افتراضي، هناك ثلاث لوحات: إعداد المساعد وجلسة الدردشة والسجلات. يتيح لك إظهار اللوحات إضافة اللوحات وإزالتها وإعادة ترتيبها. إذا قمت بإغلاق لوحة وتحتاج إلى استعادتها مرة أخرى، فاستخدم إظهار اللوحات لاستعادة اللوحة المفقودة.

تنظيف الموارد

إذا كنت ترغب في تنظيف مورد Azure OpenAI وإزالته، يمكنك حذف المورد أو مجموعة الموارد. يؤدي حذف مجموعة الموارد إلى حذف أية موارد أخرى مقترنة بها أيضًا.

بدلا من ذلك يمكنك حذف المساعد أو مؤشر الترابط عبر واجهة برمجة تطبيقات المساعد.

(راجع أيضًا )

حزمة التعليمات البرمجية | المصدر لمكتبة الوثائق | المرجعية (PyPi) |

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

  • اشتراك Azure - إنشاء اشتراك مجاناً

  • الوصول الممنوح إلى Azure OpenAI في اشتراك Azure المطلوب

    حاليًا، يتم منح الوصول إلى هذه الخدمة فقط بواسطة التطبيق. يمكنك التقدم بطلب للوصول إلى Azure OpenAI عن طريق إكمال النموذج في https://aka.ms/oai/access. افتح مشكلة على هذا المستودع للاتصال بنا إذا كانت لديك مشكلة.

  • Python 3.8 أو إصدار أحدث

  • مكتبات Python التالية: os، openai (الإصدار 1.x مطلوب)

  • Azure CLI المستخدم للمصادقة بدون كلمة مرور في بيئة تطوير محلية، قم بإنشاء السياق الضروري عن طريق تسجيل الدخول باستخدام Azure CLI.

  • مورد Azure OpenAI مع نموذج متوافق في منطقة مدعومة.

  • نوصي بمراجعة ملاحظة الشفافية الذكاء الاصطناعي المسؤولة وموارد الذكاء الاصطناعي المسؤولة الأخرى للتعرف على قدرات وقيود خدمة Azure OpenAI.

  • تم استخدام مورد Azure OpenAI مع النموذج المنشور gpt-4 (1106-preview) لاختبار هذا المثال.

للمصادقة بدون كلمة مرور، تحتاج إلى

  1. استخدم حزمة azure-identity .
  2. Cognitive Services User تعيين الدور إلى حساب المستخدم الخاص بك. يمكن القيام بذلك في مدخل Microsoft Azure ضمن Access control (IAM)>Add role assignment.
  3. سجل الدخول باستخدام Azure CLI مثل az login.

الإعداد

  1. تثبيت مكتبة عميل OpenAI Python باستخدام:
pip install openai
  1. للمصادقة الموصى بها بدون كلمة مرور:
pip install azure-identity

إشعار

  • يمكن للبحث عن الملفات استيعاب ما يصل إلى 10000 ملف لكل مساعد - 500 مرة أكثر من ذي قبل. وهو سريع، ويدعم الاستعلامات المتوازية من خلال عمليات البحث متعددة مؤشرات الترابط، وميزات محسنة لإعادة الإرسال وإعادة كتابة الاستعلام.
    • مخزن المتجهات هو كائن جديد في واجهة برمجة التطبيقات. بمجرد إضافة ملف إلى مخزن متجهات، يتم تحليله تلقائيا، وتقسيمه، ودمجه، ويكون جاهزا للبحث فيه. يمكن استخدام مخازن المتجهات عبر المساعدين ومؤشرات الترابط، مما يبسط إدارة الملفات والفوترة.
  • لقد أضفنا دعما للمعلمة tool_choice التي يمكن استخدامها لفرض استخدام أداة معينة (مثل البحث في الملفات أو مترجم التعليمات البرمجية أو وظيفة) في تشغيل معين.

إشعار

يتم الاحتفاظ بهذه المكتبة من قبل OpenAI. راجع محفوظات الإصدار لتعقب آخر التحديثات إلى المكتبة.

قم باسترداد المفتاح ونقطة النهاية

لإجراء استدعاء بنجاح مقابل خدمة Azure OpenAI، ستحتاج إلى ما يلي:

اسم المتغير القيمة‬
ENDPOINT يمكن العثور على هذه القيمة في قسم Keys and Endpoint عند فحص المورد من مدخل Microsoft Azure. بدلا من ذلك، يمكنك العثور على القيمة في التعليمات البرمجية ل Azure OpenAI Studio>Playground>View. مثال على نقطة النهاية هو: https://docs-test-001.openai.azure.com/.
API-KEY يمكن العثور على هذه القيمة في قسم Keys and Endpoint عند فحص المورد من مدخل Microsoft Azure. يمكنك استخدام إما KEY1 أو KEY2.
DEPLOYMENT-NAME ستتوافق هذه القيمة مع الاسم المخصص الذي اخترته للتوزيع عند نشر نموذج. يمكن العثور على هذه القيمة ضمن Resource Management>Model Deployments في مدخل Microsoft Azure أو بدلا من ذلك ضمن Management>Deployments في Azure OpenAI Studio.

انتقل إلى مجموعة الموارد في مدخل Microsoft Azure. يمكن العثور على المفاتيح ونقطة النهاية في قسم إدارة الموارد. انسخ نقطة النهاية ومفتاح الوصول حيث ستحتاج إلى كليهما لمصادقة استدعاءات واجهة برمجة التطبيقات. يمكنك استخدام إما KEY1 أو KEY2. يسمح لك وجود مفتاحين دائماً بتدوير المفاتيح وإعادة إنشائها بأمان دون التسبب في تعطيل الخدمة.

لقطة شاشة لجزء النظرة العامة لمورد Azure OpenAI في مدخل Microsoft Azure مع وضع دائرة حول موقع مفاتيح نقطة النهاية باللون الأحمر.

إنشاء متغيرات بيئة ثابتة وتعيينها للمفتاح ونقطة النهاية.

متغيرات البيئة

إنشاء متغيرات بيئة ثابتة وتعيينها للمفتاح ونقطة النهاية.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

إنشاء مساعد

في التعليمات البرمجية الخاصة بنا، سنحدد القيم التالية:

الاسم الوصف
اسم المساعد اسم النشر المقترن بنموذج معين.
تعليمات إرشادات مشابهة لرسائل النظام هذا هو المكان الذي تعطي فيه إرشادات النموذج حول كيفية تصرفه وأي سياق يجب أن يشير إليه عند إنشاء استجابة. يمكنك وصف شخصية المساعد، وإخباره بما يجب وما لا ينبغي الإجابة عليه، وإخباره بكيفية تنسيق الاستجابات. يمكنك أيضا تقديم أمثلة على الخطوات التي يجب أن تتخذها عند الرد على الردود.
النموذج هذا هو المكان الذي تقوم فيه بتعيين اسم توزيع النموذج الذي يجب استخدامه مع مساعدك. تتطلب gpt-35-turbo (1106) أداة الاسترداد أو gpt-4 (1106-preview) النموذج. قم بتعيين هذه القيمة إلى اسم النشر الخاص بك، وليس اسم النموذج إلا إذا كان هو نفسه.
مترجم التعليمات البرمجية يوفر مترجم التعليمات البرمجية الوصول إلى بيئة الاختبار المعزولة Python التي يمكن استخدامها للسماح للنموذج باختبار التعليمات البرمجية وتنفيذها.

الأدوات

يمكن لمساعد فردي الوصول إلى ما يصل إلى 128 أدوات بما في ذلك code interpreter، بالإضافة إلى أي أدوات مخصصة تقوم بإنشائها عبر الوظائف.

إنشاء تطبيق Python

سجل الدخول إلى Azure ثم az login قم بإنشاء وتشغيل مساعد باستخدام مثال Python الموصى به التالي بدون كلمة مرور:

import os
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import AzureOpenAI

token_provider = get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default")

client = AzureOpenAI(
    azure_ad_token_provider=token_provider,
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version="2024-05-01-preview",
)

# Create an assistant
assistant = client.beta.assistants.create(
    name="Math Assist",
    instructions="You are an AI assistant that can write code to help answer math questions.",
    tools=[{"type": "code_interpreter"}],
    model="gpt-4-1106-preview" # You must replace this value with the deployment name for your model.
)

# Create a thread
thread = client.beta.threads.create()

# Add a user question to the thread
message = client.beta.threads.messages.create(
    thread_id=thread.id,
    role="user",
    content="I need to solve the equation `3x + 11 = 14`. Can you help me?"
)

# Run the thread and poll for the result
run = client.beta.threads.runs.create_and_poll(
    thread_id=thread.id,
    assistant_id=assistant.id,
    instructions="Please address the user as Jane Doe. The user has a premium account.",
)

print("Run completed with status: " + run.status)

if run.status == "completed":
    messages = client.beta.threads.messages.list(thread_id=thread.id)
    print(messages.to_json(indent=2))

لاستخدام مفتاح واجهة برمجة تطبيقات الخدمة للمصادقة، يمكنك إنشاء وتشغيل مساعد باستخدام مثال Python التالي:

import os
from openai import AzureOpenAI

client = AzureOpenAI(
    api_key=os.environ["AZURE_OPENAI_API_KEY"],
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version="2024-05-01-preview",
)

# Create an assistant
assistant = client.beta.assistants.create(
    name="Math Assist",
    instructions="You are an AI assistant that can write code to help answer math questions.",
    tools=[{"type": "code_interpreter"}],
    model="gpt-4-1106-preview" # You must replace this value with the deployment name for your model.
)

# Create a thread
thread = client.beta.threads.create()

# Add a user question to the thread
message = client.beta.threads.messages.create(
    thread_id=thread.id,
    role="user",
    content="I need to solve the equation `3x + 11 = 14`. Can you help me?"
)

# Run the thread and poll for the result
run = client.beta.threads.runs.create_and_poll(
    thread_id=thread.id,
    assistant_id=assistant.id,
    instructions="Please address the user as Jane Doe. The user has a premium account.",
)

print("Run completed with status: " + run.status)

if run.status == "completed":
    messages = client.beta.threads.messages.list(thread_id=thread.id)
    print(messages.to_json(indent=2))

المخرجات

اكتمل التشغيل بالحالة: مكتمل

{
  "data": [
    {
      "id": "msg_4SuWxTubHsHpt5IlBTO5Hyw9",
      "assistant_id": "asst_cYqL1RuwLyFV3HU1gkaE2k0K",
      "attachments": [],
      "content": [
        {
          "text": {
            "annotations": [],
            "value": "The solution to the equation \\(3x + 11 = 14\\) is \\(x = 1\\)."
          },
          "type": "text"
        }
      ],
      "created_at": 1716397091,
      "metadata": {},
      "object": "thread.message",
      "role": "assistant",
      "run_id": "run_hFgBPbUtO8ZNTnNPC8PgpH1S",
      "thread_id": "thread_isb7spwRycI5ueT9E7357aOm"
    },
    {
      "id": "msg_Z32w2E7kY5wEWhZqQWxIbIUB",
      "assistant_id": null,
      "attachments": [],
      "content": [
        {
          "text": {
            "annotations": [],
            "value": "I need to solve the equation `3x + 11 = 14`. Can you help me?"
          },
          "type": "text"
        }
      ],
      "created_at": 1716397025,
      "metadata": {},
      "object": "thread.message",
      "role": "user",
      "run_id": null,
      "thread_id": "thread_isb7spwRycI5ueT9E7357aOm"
    }
  ],
  "object": "list",
  "first_id": "msg_4SuWxTubHsHpt5IlBTO5Hyw9",
  "last_id": "msg_Z32w2E7kY5wEWhZqQWxIbIUB",
  "has_more": false
}

فهم نتائج SMART الخاصة بك

في هذا المثال، نقوم بإنشاء مساعد مع تمكين مترجم التعليمات البرمجية. عندما نسأل المساعد سؤالا رياضيا فإنه يترجم السؤال إلى تعليمة python البرمجية وينفذ التعليمات البرمجية في بيئة الاختبار المعزولة من أجل تحديد الإجابة على السؤال. التعليمات البرمجية التي ينشئها النموذج والاختبارات للوصول إلى إجابة هي:

from sympy import symbols, Eq, solve  
  
# Define the variable  
x = symbols('x')  
  
# Define the equation  
equation = Eq(3*x + 11, 14)  
  
# Solve the equation  
solution = solve(equation, x)  
solution  

من المهم أن تتذكر أنه بينما يمنح مترجم التعليمات البرمجية النموذج القدرة على الرد على استعلامات أكثر تعقيدا عن طريق تحويل الأسئلة إلى تعليمات برمجية وتشغيل تلك التعليمات البرمجية بشكل متكرر في بيئة الاختبار المعزولة Python حتى يصل إلى حل، لا تزال بحاجة إلى التحقق من صحة الاستجابة للتأكد من أن النموذج ترجم سؤالك بشكل صحيح إلى تمثيل صالح في التعليمات البرمجية.

تنظيف الموارد

إذا كنت ترغب في تنظيف مورد Azure OpenAI وإزالته، يمكنك حذف المورد أو مجموعة الموارد. يؤدي حذف مجموعة الموارد إلى حذف أية موارد أخرى مقترنة بها أيضًا.

(راجع أيضًا )

الوثائق | المرجعية حزمة التعليمات البرمجية | المصدر (NuGet)

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

  • اشتراك Azure - إنشاء اشتراك مجاناً

  • الوصول الممنوح إلى Azure OpenAI في اشتراك Azure المطلوب

    حاليًا، يتم منح الوصول إلى هذه الخدمة فقط بواسطة التطبيق. يمكنك التقدم بطلب للوصول إلى Azure OpenAI عن طريق إكمال النموذج في https://aka.ms/oai/access. افتح مشكلة على هذا المستودع للاتصال بنا إذا كانت لديك مشكلة.

  • .NET 8 SDK

  • مورد Azure OpenAI مع نموذج متوافق في منطقة مدعومة.

  • نوصي بمراجعة ملاحظة الشفافية الذكاء الاصطناعي المسؤولة وموارد الذكاء الاصطناعي المسؤولة الأخرى للتعرف على قدرات وقيود خدمة Azure OpenAI.

  • تم استخدام مورد Azure OpenAI مع النموذج المنشور gpt-4 (1106-preview) لاختبار هذا المثال.

الإعداد

إنشاء تطبيق .NET Core جديد

في نافذة وحدة تحكم (مثل cmd أو PowerShell أو Bash)، استخدم الأمر ⁧dotnet new⁩ لإنشاء تطبيق وحدة تحكم جديد بالاسم ⁧azure-openai-quickstart⁩. ينشئ هذا الأمر مشروع "Hello World" بسيطًا مع ملف مصدر C# واحد: Program.cs.

dotnet new console -n azure-openai-assistants-quickstart

غيّر دليلك إلى مجلد التطبيق المنشأ حديثاً. يمكنك إنشاء التطبيق باستخدام:

dotnet build

يجب ألا يحتوي إخراج البناء على تحذيرات أو أخطاء.

...
Build succeeded.
 0 Warning(s)
 0 Error(s)
...

تثبيت مكتبة عميل OpenAI .NET مع:

dotnet add package Azure.AI.OpenAI.Assistants --prerelease

قم باسترداد المفتاح ونقطة النهاية

لإجراء مكالمة بنجاح مقابل Azure OpenAI، تحتاج إلى نقطة نهاية ومفتاح.

اسم المتغير القيمة‬
ENDPOINT يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. بدلاً من ذلك، يمكنك العثور على القيمة في Azure OpenAI Studio>Playground>Code View. مثال على نقطة النهاية هو: https://docs-test-001.openai.azure.com/.
API-KEY يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. يمكنك استخدام إما KEY1 أو KEY2.

انتقل إلى مجموعة الموارد في مدخل Microsoft Azure. يمكن العثور على قسم Keys & Endpoint في قسم Resource Management . انسخ نقطة النهاية ومفتاح الوصول حيث ستحتاج إلى كليهما لمصادقة استدعاءات واجهة برمجة التطبيقات. يمكنك استخدام إما KEY1 أو KEY2. يسمح لك وجود مفتاحين دائماً بتدوير المفاتيح وإعادة إنشائها بأمان دون التسبب في تعطيل الخدمة.

لقطة شاشة لواجهة مستخدم النظرة العامة لمورد Azure OpenAI في مدخل Microsoft Azure مع وضع نقطة النهاية وموقع مفاتيح الوصول في دائرة باللون الأحمر.

متغيرات البيئة

إنشاء متغيرات بيئة ثابتة وتعيينها للمفتاح ونقطة النهاية.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

إنشاء مساعد

في التعليمات البرمجية الخاصة بنا، سنحدد القيم التالية:

الاسم الوصف
اسم المساعد اسم النشر المقترن بنموذج معين.
تعليمات إرشادات مشابهة لرسائل النظام هذا هو المكان الذي تعطي فيه إرشادات النموذج حول كيفية تصرفه وأي سياق يجب أن يشير إليه عند إنشاء استجابة. يمكنك وصف شخصية المساعد، وإخباره بما يجب وما لا ينبغي الإجابة عليه، وإخباره بكيفية تنسيق الاستجابات. يمكنك أيضا تقديم أمثلة على الخطوات التي يجب أن تتخذها عند الرد على الردود.
النموذج هذا هو المكان الذي تقوم فيه بتعيين اسم توزيع النموذج الذي يجب استخدامه مع مساعدك. تتطلب gpt-35-turbo (1106) أداة الاسترداد أو gpt-4 (1106-preview) النموذج. قم بتعيين هذه القيمة إلى اسم النشر الخاص بك، وليس اسم النموذج إلا إذا كان هو نفسه.
مترجم التعليمات البرمجية يوفر مترجم التعليمات البرمجية الوصول إلى بيئة الاختبار المعزولة Python التي يمكن استخدامها للسماح للنموذج باختبار التعليمات البرمجية وتنفيذها.

الأدوات

يمكن لمساعد فردي الوصول إلى ما يصل إلى 128 أدوات بما في ذلك code interpreter، بالإضافة إلى أي أدوات مخصصة تقوم بإنشائها عبر الوظائف.

إنشاء مساعد وتشغيله باستخدام ما يلي:

using Azure;
using Azure.AI.OpenAI.Assistants;

string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new ArgumentNullException("AZURE_OPENAI_ENDPOINT");
string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY") ?? throw new ArgumentNullException("AZURE_OPENAI_API_KEY");
AssistantsClient client = new AssistantsClient(new Uri(endpoint), new AzureKeyCredential(key));

// Create an assistant
Assistant assistant = await client.CreateAssistantAsync(
    new AssistantCreationOptions("gpt-4-1106-preview") // Replace this with the name of your model deployment
    {
        Name = "Math Tutor",
        Instructions = "You are a personal math tutor. Write and run code to answer math questions.",
        Tools = { new CodeInterpreterToolDefinition() }
    });

// Create a thread
AssistantThread thread = await client.CreateThreadAsync();

// Add a user question to the thread
ThreadMessage message = await client.CreateMessageAsync(
    thread.Id,
    MessageRole.User,
    "I need to solve the equation `3x + 11 = 14`. Can you help me?");

// Run the thread
ThreadRun run = await client.CreateRunAsync(
    thread.Id,
    new CreateRunOptions(assistant.Id)
);

// Wait for the assistant to respond
do
{
    await Task.Delay(TimeSpan.FromMilliseconds(500));
    run = await client.GetRunAsync(thread.Id, run.Id);
}
while (run.Status == RunStatus.Queued
    || run.Status == RunStatus.InProgress);

// Get the messages
PageableList<ThreadMessage> messagesPage = await client.GetMessagesAsync(thread.Id);
IReadOnlyList<ThreadMessage> messages = messagesPage.Data;

// Note: messages iterate from newest to oldest, with the messages[0] being the most recent
foreach (ThreadMessage threadMessage in messages.Reverse())
{
    Console.Write($"{threadMessage.CreatedAt:yyyy-MM-dd HH:mm:ss} - {threadMessage.Role,10}: ");
    foreach (MessageContent contentItem in threadMessage.ContentItems)
    {
        if (contentItem is MessageTextContent textItem)
        {
            Console.Write(textItem.Text);
        }
        Console.WriteLine();
    }
}

سيؤدي ذلك إلى طباعة الإخراج كما يلي:

2024-03-05 03:38:17 -       user: I need to solve the equation `3x + 11 = 14`. Can you help me?
2024-03-05 03:38:25 -  assistant: The solution to the equation \(3x + 11 = 14\) is \(x = 1\).

يمكن إنشاء رسائل جديدة على مؤشر الترابط قبل إعادة التشغيل، والتي سترى المساعد يستخدم الرسائل السابقة كتسياق داخل مؤشر الترابط.

تنظيف الموارد

إذا كنت ترغب في تنظيف مورد Azure OpenAI وإزالته، يمكنك حذف المورد أو مجموعة الموارد. يؤدي حذف مجموعة الموارد إلى حذف أية موارد أخرى مقترنة بها أيضًا.

(راجع أيضًا )

حزمة التعليمات البرمجية | المصدر لمكتبة الوثائق | المرجعية (npm) |

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

  • اشتراك Azure - إنشاء اشتراك مجاناً

  • الوصول الممنوح إلى Azure OpenAI في اشتراك Azure المطلوب

    حاليًا، يتم منح الوصول إلى هذه الخدمة فقط بواسطة التطبيق. يمكنك التقدم بطلب للوصول إلى Azure OpenAI عن طريق إكمال النموذج في https://aka.ms/oai/access. افتح مشكلة على هذا المستودع للاتصال بنا إذا كانت لديك مشكلة.

  • Node.js LTS بدعم TypeScript أو ESM.

  • Azure CLI المستخدم للمصادقة بدون كلمة مرور في بيئة تطوير محلية، قم بإنشاء السياق الضروري عن طريق تسجيل الدخول باستخدام Azure CLI.

  • مورد Azure OpenAI مع نموذج متوافق في منطقة مدعومة.

  • نوصي بمراجعة ملاحظة الشفافية الذكاء الاصطناعي المسؤولة وموارد الذكاء الاصطناعي المسؤولة الأخرى للتعرف على قدرات وقيود خدمة Azure OpenAI.

  • تم استخدام مورد Azure OpenAI مع النموذج المنشور gpt-4 (1106-preview) لاختبار هذا المثال.

للمصادقة بدون كلمة مرور، تحتاج إلى

  1. استخدم الحزمة @azure/identity .
  2. Cognitive Services User تعيين الدور إلى حساب المستخدم الخاص بك. يمكن القيام بذلك في مدخل Microsoft Azure ضمن Access control (IAM)>Add role assignment.
  3. سجل الدخول باستخدام Azure CLI مثل az login.

الإعداد

  1. تثبيت مكتبة عميل OpenAI Assistants ل JavaScript باستخدام:

    npm install openai
    
  2. للمصادقة الموصى بها بدون كلمة مرور:

    npm install @azure/identity
    

قم باسترداد المفتاح ونقطة النهاية

لإجراء استدعاء بنجاح مقابل خدمة Azure OpenAI، ستحتاج إلى ما يلي:

اسم المتغير القيمة‬
ENDPOINT يمكن العثور على هذه القيمة في قسم Keys and Endpoint عند فحص المورد من مدخل Microsoft Azure. بدلا من ذلك، يمكنك العثور على القيمة في التعليمات البرمجية ل Azure OpenAI Studio>Playground>View. مثال على نقطة النهاية هو: https://docs-test-001.openai.azure.com/.
API-KEY يمكن العثور على هذه القيمة في قسم Keys and Endpoint عند فحص المورد من مدخل Microsoft Azure. يمكنك استخدام إما KEY1 أو KEY2.
DEPLOYMENT-NAME ستتوافق هذه القيمة مع الاسم المخصص الذي اخترته للتوزيع عند نشر نموذج. يمكن العثور على هذه القيمة ضمن Resource Management>Model Deployments في مدخل Microsoft Azure أو بدلا من ذلك ضمن Management>Deployments في Azure OpenAI Studio.

انتقل إلى مجموعة الموارد في مدخل Microsoft Azure. يمكن العثور على المفاتيح ونقطة النهاية في قسم إدارة الموارد. انسخ نقطة النهاية ومفتاح الوصول حيث ستحتاج إلى كليهما لمصادقة استدعاءات واجهة برمجة التطبيقات. يمكنك استخدام إما KEY1 أو KEY2. يسمح لك وجود مفتاحين دائماً بتدوير المفاتيح وإعادة إنشائها بأمان دون التسبب في تعطيل الخدمة.

لقطة شاشة لجزء النظرة العامة لمورد OpenAI في مدخل Microsoft Azure مع وضع دائرة حول موقع مفاتيح نقطة النهاية باللون الأحمر.

إنشاء متغيرات بيئة ثابتة وتعيينها للمفتاح ونقطة النهاية.

متغيرات البيئة

إنشاء متغيرات بيئة ثابتة وتعيينها للمفتاح ونقطة النهاية.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

إضافة متغيرات بيئة إضافية لاسم النشر وإصدار واجهة برمجة التطبيقات:

  • AZURE_OPENAI_DEPLOYMENT_NAME: اسم النشر الخاص بك كما هو موضح في مدخل Microsoft Azure.
  • OPENAI_API_VERSION: تعرف على المزيد حول إصدارات واجهة برمجة التطبيقات.

إنشاء متغيرات بيئة ثابتة وتعيينها للمفتاح ونقطة النهاية.

setx AZURE_OPENAI_DEPLOYMENT_NAME "REPLACE_WITH_YOUR_DEPLOYMENT_NAME" 
setx OPENAI_API_VERSION "REPLACE_WITH_YOUR_API_VERSION" 

إنشاء مساعد

في التعليمات البرمجية الخاصة بنا، سنحدد القيم التالية:

الاسم الوصف
اسم المساعد اسم النشر المقترن بنموذج معين.
تعليمات إرشادات مشابهة لرسائل النظام هذا هو المكان الذي تعطي فيه إرشادات النموذج حول كيفية تصرفه وأي سياق يجب أن يشير إليه عند إنشاء استجابة. يمكنك وصف شخصية المساعد، وإخباره بما يجب وما لا ينبغي الإجابة عليه، وإخباره بكيفية تنسيق الاستجابات. يمكنك أيضا تقديم أمثلة على الخطوات التي يجب أن تتخذها عند الرد على الردود.
النموذج هذا هو اسم النشر.
مترجم التعليمات البرمجية يوفر مترجم التعليمات البرمجية الوصول إلى بيئة الاختبار المعزولة Python التي يمكن استخدامها للسماح للنموذج باختبار التعليمات البرمجية وتنفيذها.

الأدوات

يمكن لمساعد فردي الوصول إلى ما يصل إلى 128 أدوات بما في ذلك code interpreter، بالإضافة إلى أي أدوات مخصصة تقوم بإنشائها عبر الوظائف.

سجل الدخول إلى Azure ثم az login قم بإنشاء وتشغيل مساعد باستخدام الوحدة النمطية TypeScript بدون كلمة مرور الموصى بها التالية (index.ts):

import "dotenv/config";
import { AzureOpenAI } from "openai";
import {
  Assistant,
  AssistantCreateParams,
  AssistantTool,
} from "openai/resources/beta/assistants";
import { Message, MessagesPage } from "openai/resources/beta/threads/messages";
import { Run } from "openai/resources/beta/threads/runs/runs";
import { Thread } from "openai/resources/beta/threads/threads";

// Add `Cognitive Services User` to identity for Azure OpenAI resource
import {
  DefaultAzureCredential,
  getBearerTokenProvider,
} from "@azure/identity";

// Get environment variables
const azureOpenAIEndpoint = process.env.AZURE_OPENAI_ENDPOINT as string;
const azureOpenAIDeployment = process.env
  .AZURE_OPENAI_DEPLOYMENT_NAME as string;
const openAIVersion = process.env.OPENAI_API_VERSION as string;

// Check env variables
if (!azureOpenAIEndpoint || !azureOpenAIDeployment || !openAIVersion) {
  throw new Error(
    "Please ensure to set AZURE_OPENAI_DEPLOYMENT_NAME and AZURE_OPENAI_ENDPOINT in your environment variables."
  );
}

// Get Azure SDK client
const getClient = (): AzureOpenAI => {
  const credential = new DefaultAzureCredential();
  const scope = "https://cognitiveservices.azure.com/.default";
  const azureADTokenProvider = getBearerTokenProvider(credential, scope);
  const assistantsClient = new AzureOpenAI({
    endpoint: azureOpenAIEndpoint,
    apiVersion: openAIVersion,
    azureADTokenProvider,
  });
  return assistantsClient;
};

const assistantsClient = getClient();

const options: AssistantCreateParams = {
  model: azureOpenAIDeployment, // Deployment name seen in Azure AI Studio
  name: "Math Tutor",
  instructions:
    "You are a personal math tutor. Write and run JavaScript code to answer math questions.",
  tools: [{ type: "code_interpreter" } as AssistantTool],
};
const role = "user";
const message = "I need to solve the equation `3x + 11 = 14`. Can you help me?";

// Create an assistant
const assistantResponse: Assistant =
  await assistantsClient.beta.assistants.create(options);
console.log(`Assistant created: ${JSON.stringify(assistantResponse)}`);

// Create a thread
const assistantThread: Thread = await assistantsClient.beta.threads.create({});
console.log(`Thread created: ${JSON.stringify(assistantThread)}`);

// Add a user question to the thread
const threadResponse: Message =
  await assistantsClient.beta.threads.messages.create(assistantThread.id, {
    role,
    content: message,
  });
console.log(`Message created:  ${JSON.stringify(threadResponse)}`);

// Run the thread and poll it until it is in a terminal state
const runResponse: Run = await assistantsClient.beta.threads.runs.createAndPoll(
  assistantThread.id,
  {
    assistant_id: assistantResponse.id,
  },
  { pollIntervalMs: 500 }
);
console.log(`Run created:  ${JSON.stringify(runResponse)}`);

// Get the messages
const runMessages: MessagesPage =
  await assistantsClient.beta.threads.messages.list(assistantThread.id);
for await (const runMessageDatum of runMessages) {
  for (const item of runMessageDatum.content) {
    // types are: "image_file" or "text"
    if (item.type === "text") {
      console.log(`Message content: ${JSON.stringify(item.text?.value)}`);
    }
  }
}

لاستخدام مفتاح الخدمة للمصادقة، يمكنك إنشاء مساعد وتشغيله باستخدام الوحدة النمطية TypeScript التالية (index.ts):

import "dotenv/config";
import { AzureOpenAI } from "openai";
import {
  Assistant,
  AssistantCreateParams,
  AssistantTool,
} from "openai/resources/beta/assistants";
import { Message, MessagesPage } from "openai/resources/beta/threads/messages";
import { Run } from "openai/resources/beta/threads/runs/runs";
import { Thread } from "openai/resources/beta/threads/threads";

// Get environment variables
const azureOpenAIKey = process.env.AZURE_OPENAI_KEY as string;
const azureOpenAIEndpoint = process.env.AZURE_OPENAI_ENDPOINT as string;
const azureOpenAIDeployment = process.env
  .AZURE_OPENAI_DEPLOYMENT_NAME as string;
const openAIVersion = process.env.OPENAI_API_VERSION as string;

// Check env variables
if (!azureOpenAIKey || !azureOpenAIEndpoint || !azureOpenAIDeployment || !openAIVersion) {
  throw new Error(
    "Please set AZURE_OPENAI_KEY and AZURE_OPENAI_ENDPOINT and AZURE_OPENAI_DEPLOYMENT_NAME in your environment variables."
  );
}

// Get Azure SDK client
const getClient = (): AzureOpenAI => {
  const assistantsClient = new AzureOpenAI({
    endpoint: azureOpenAIEndpoint,
    apiVersion: openAIVersion,
    apiKey: azureOpenAIKey,
  });
  return assistantsClient;
};

const assistantsClient = getClient();

const options: AssistantCreateParams = {
  model: azureOpenAIDeployment, // Deployment name seen in Azure AI Studio
  name: "Math Tutor",
  instructions:
    "You are a personal math tutor. Write and run JavaScript code to answer math questions.",
  tools: [{ type: "code_interpreter" } as AssistantTool],
};
const role = "user";
const message = "I need to solve the equation `3x + 11 = 14`. Can you help me?";

// Create an assistant
const assistantResponse: Assistant =
  await assistantsClient.beta.assistants.create(options);
console.log(`Assistant created: ${JSON.stringify(assistantResponse)}`);

// Create a thread
const assistantThread: Thread = await assistantsClient.beta.threads.create({});
console.log(`Thread created: ${JSON.stringify(assistantThread)}`);

// Add a user question to the thread
const threadResponse: Message =
  await assistantsClient.beta.threads.messages.create(assistantThread.id, {
    role,
    content: message,
  });
console.log(`Message created:  ${JSON.stringify(threadResponse)}`);

// Run the thread and poll it until it is in a terminal state
const runResponse: Run = await assistantsClient.beta.threads.runs.createAndPoll(
  assistantThread.id,
  {
    assistant_id: assistantResponse.id,
  },
  { pollIntervalMs: 500 }
);
console.log(`Run created:  ${JSON.stringify(runResponse)}`);

// Get the messages
const runMessages: MessagesPage =
  await assistantsClient.beta.threads.messages.list(assistantThread.id);
for await (const runMessageDatum of runMessages) {
  for (const item of runMessageDatum.content) {
    // types are: "image_file" or "text"
    if (item.type === "text") {
      console.log(`Message content: ${JSON.stringify(item.text?.value)}`);
    }
  }
}

المخرجات

Assistant created: {"id":"asst_zXaZ5usTjdD0JGcNViJM2M6N","createdAt":"2024-04-08T19:26:38.000Z","name":"Math Tutor","description":null,"model":"daisy","instructions":"You are a personal math tutor. Write and run JavaScript code to answer math questions.","tools":[{"type":"code_interpreter"}],"fileIds":[],"metadata":{}}
Thread created: {"id":"thread_KJuyrB7hynun4rvxWdfKLIqy","createdAt":"2024-04-08T19:26:38.000Z","metadata":{}}
Message created:  {"id":"msg_o0VkXnQj3juOXXRCnlZ686ff","createdAt":"2024-04-08T19:26:38.000Z","threadId":"thread_KJuyrB7hynun4rvxWdfKLIqy","role":"user","content":[{"type":"text","text":{"value":"I need to solve the equation `3x + 11 = 14`. Can you help me?","annotations":[]},"imageFile":{}}],"assistantId":null,"runId":null,"fileIds":[],"metadata":{}}
Created run
Run created:  {"id":"run_P8CvlouB8V9ZWxYiiVdL0FND","object":"thread.run","status":"queued","model":"daisy","instructions":"You are a personal math tutor. Write and run JavaScript code to answer math questions.","tools":[{"type":"code_interpreter"}],"metadata":{},"usage":null,"assistantId":"asst_zXaZ5usTjdD0JGcNViJM2M6N","threadId":"thread_KJuyrB7hynun4rvxWdfKLIqy","fileIds":[],"createdAt":"2024-04-08T19:26:39.000Z","expiresAt":"2024-04-08T19:36:39.000Z","startedAt":null,"completedAt":null,"cancelledAt":null,"failedAt":null}
Message content: "The solution to the equation \\(3x + 11 = 14\\) is \\(x = 1\\)."
Message content: "Yes, of course! To solve the equation \\( 3x + 11 = 14 \\), we can follow these steps:\n\n1. Subtract 11 from both sides of the equation to isolate the term with x.\n2. Then, divide by 3 to find the value of x.\n\nLet me calculate that for you."
Message content: "I need to solve the equation `3x + 11 = 14`. Can you help me?"

من المهم أن تتذكر أنه بينما يمنح مترجم التعليمات البرمجية النموذج القدرة على الرد على استعلامات أكثر تعقيدا عن طريق تحويل الأسئلة إلى تعليمات برمجية وتشغيل تلك التعليمات البرمجية بشكل متكرر في JavaScript حتى يصل إلى حل، لا تزال بحاجة إلى التحقق من صحة الاستجابة للتأكد من أن النموذج ترجم سؤالك بشكل صحيح إلى تمثيل صالح في التعليمات البرمجية.

تنظيف الموارد

إذا كنت ترغب في تنظيف مورد Azure OpenAI وإزالته، يمكنك حذف المورد أو مجموعة الموارد. يؤدي حذف مجموعة الموارد إلى حذف أية موارد أخرى مقترنة بها أيضًا.

التعليمة البرمجية العينة

(راجع أيضًا )

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

الإعداد

قم باسترداد المفتاح ونقطة النهاية

لإجراء مكالمة بنجاح مقابل Azure OpenAI، ستحتاج إلى ما يلي:

اسم المتغير القيمة‬
ENDPOINT يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. بدلا من ذلك، يمكنك العثور على القيمة في Azure OpenAI Studio>Playground>Code View. مثال على نقطة النهاية هو: https://docs-test-001.openai.azure.com/.
API-KEY يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. يمكنك استخدام إما KEY1 أو KEY2.
DEPLOYMENT-NAME ستتوافق هذه القيمة مع الاسم المخصص الذي اخترته للتوزيع عند نشر نموذج. يمكن العثور على هذه القيمة ضمن Resource Management>Deployments في مدخل Microsoft Azure أو بدلاً من ذلك ضمن Management>Deployments في Azure OpenAI Studio.

انتقل إلى مجموعة الموارد في مدخل Microsoft Azure. يمكن العثور على نقطة النهاية والمفاتيح في قسم إدارة الموارد. انسخ نقطة النهاية ومفتاح الوصول حيث ستحتاج إلى كليهما لمصادقة استدعاءات واجهة برمجة التطبيقات. يمكنك استخدام إما KEY1 أو KEY2. يسمح لك وجود مفتاحين دائماً بتدوير المفاتيح وإعادة إنشائها بأمان دون التسبب في تعطيل الخدمة.

لقطة شاشة لجزء النظرة العامة لمورد Azure OpenAI في مدخل Microsoft Azure مع وضع دائرة حول موقع مفاتيح نقطة النهاية باللون الأحمر.

إنشاء متغيرات بيئة ثابتة وتعيينها للمفتاح ونقطة النهاية.

متغيرات البيئة

إنشاء متغيرات بيئة ثابتة وتعيينها للمفتاح ونقطة النهاية.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

واجهة برمجة تطبيقات REST

إنشاء مساعد

إشعار

باستخدام Azure OpenAI، تتطلب المعلمة model اسم توزيع النموذج. إذا كان اسم توزيع النموذج الخاص بك مختلفا عن اسم النموذج الأساسي، فيمكنك ضبط التعليمات البرمجية الخاصة بك إلى "model": "{your-custom-model-deployment-name}".

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants?api-version=2024-05-01-preview \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "instructions": "You are an AI assistant that can write code to help answer math questions.",
    "name": "Math Assist",
    "tools": [{"type": "code_interpreter"}],
    "model": "gpt-4-1106-preview"
  }'

الأدوات

يمكن لمساعد فردي الوصول إلى ما يصل إلى 128 أدوات بما في ذلك code interpreter، بالإضافة إلى أي أدوات مخصصة تقوم بإنشائها عبر الوظائف.

إنشاء مؤشر ترابط

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -d ''

إضافة سؤال مستخدم إلى مؤشر الترابط

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/messages \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -d '{
      "role": "user",
      "content": "I need to solve the equation `3x + 11 = 14`. Can you help me?"
    }'

تشغيل مؤشر الترابط

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/runs \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "assistant_id": "asst_abc123",
  }'

استرداد حالة التشغيل

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/runs/run_abc123 \
  -H "api-key: $AZURE_OPENAI_API_KEY" \

استجابة المساعد

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/messages \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \

فهم نتائج SMART الخاصة بك

في هذا المثال، نقوم بإنشاء مساعد مع تمكين مترجم التعليمات البرمجية. عندما نسأل المساعد سؤالا رياضيا فإنه يترجم السؤال إلى تعليمة python البرمجية وينفذ التعليمات البرمجية في بيئة الاختبار المعزولة من أجل تحديد الإجابة على السؤال. التعليمات البرمجية التي ينشئها النموذج والاختبارات للوصول إلى إجابة هي:

    from sympy import symbols, Eq, solve  
      
    # Define the variable  
    x = symbols('x')  
      
    # Define the equation  
    equation = Eq(3*x + 11, 14)  
      
    # Solve the equation  
    solution = solve(equation, x)  
    solution  

من المهم أن تتذكر أنه بينما يمنح مترجم التعليمات البرمجية النموذج القدرة على الرد على استعلامات أكثر تعقيدا عن طريق تحويل الأسئلة إلى تعليمات برمجية وتشغيل تلك التعليمات البرمجية بشكل متكرر في بيئة الاختبار المعزولة Python حتى يصل إلى حل، لا تزال بحاجة إلى التحقق من صحة الاستجابة للتأكد من أن النموذج ترجم سؤالك بشكل صحيح إلى تمثيل صالح في التعليمات البرمجية.

تنظيف الموارد

إذا كنت ترغب في تنظيف مورد Azure OpenAI وإزالته، يمكنك حذف المورد أو مجموعة الموارد. يؤدي حذف مجموعة الموارد إلى حذف أية موارد أخرى مقترنة بها أيضًا.

(راجع أيضًا )