Dolores هي مكتبة Python مصممة لتحسين تجربة المطور عند العمل مع نماذج اللغة المدربة مسبقًا. توفر دولوريس مطالبات للتفاعل مع نماذج اللغة التي تؤدي إلى مخرجات مثيرة للاهتمام أو مفيدة. الغرض من هذه المكتبة هو تبسيط منحنى التعلم من خلال توفير أمثلة سهلة الاستخدام وعينة نصية للبدء. بالإضافة إلى ذلك، فإن لها هدفًا أوسع يتمثل في أن تصبح المستودع الأكثر شمولاً لمطالبات الجودة للتفاعل مع نماذج اللغة.
تم تسميته على اسم دولوريس أبارناثي من Westworld.
$ pip install dolores
إما الاستيراد عبر مترجم بايثون أو في ملف بايثون.
import dolores
dolores.initialize("<YOUR-API-KEY>")
من هناك لا يمكنك الاتصال بواجهة برمجة التطبيقات الخاصة بـ openai مباشرة عبر الطرق التي يمكن الوصول إليها في مثيل فئة Dolores. ما يلي استدعاء استدعاء واجهة برمجة تطبيقات محركات القائمة. يحتوي كل استدعاء لواجهة برمجة التطبيقات (API) على استدعاء أسلوب مرتبط يمكن استخدامه لاستدعاء واجهة برمجة التطبيقات (API).
يسرد المحركات المتوفرة حاليًا، ويوفر معلومات أساسية حول كل خيار مثل المالك والتوفر.
dolores.list_engines()
استرداد مثيل المحرك، وتوفير المعلومات الأساسية حول المحرك مثل المالك والتوفر.
dolores.retrieve_engine()
بعد إنشاء مثيل لفئة Dolores، سيتم إنشاء فئة لاحقة لـ Open AI API ضمن نفس اختيار المحرك. من أجل تغيير المحرك المستخدم لاستدعاء API، توجد طريقة مكشوفة.
dolores.set_engine("davinci")
ملاحظة: يتم التحقق من صحة أنواع المحركات الحالية في الاعتبار بالنسبة للإصدارات المستقبلية.
أكمل المطالبة. هذه هي نقطة النهاية الرئيسية لواجهات برمجة تطبيقات GPT-3. إرجاع نص جديد بالإضافة إلى الاحتمالات الخاصة بكل رمز بديل في كل موضع، إذا طلب ذلك.
طلب:
dolores.create_completion("Is the JavaScript programming language better than python?", 20)
الرد: (راجع الاستجابة["الاختيارات"][0]["نص"] للحصول على استجابة النص العادي)
JSON: {'id': 'cmpl-kM6MK5dVRvD964MxeyG4AjCy', 'object': 'text_completion', 'created': 1595431739, 'model': 'ada:2020-05-03', 'choices': [{'text': ' in a far away place', 'index': 0, 'logprobs': None, 'finish_reason': 'length'}]}
'in a far away place'
؟
اسم | في | يكتب | مطلوب | وصف |
---|---|---|---|---|
محرك | جسم | خيط | حقيقي | معرف المحرك |
اِسْتَدْعَى | جسم | (انظر الوصف) | خطأ شنيع | واحد أو أكثر من المطالبات التي سيتم إنشاؤها منها. يمكن أن تكون سلسلة، أو قائمة سلاسل، أو قائمة أعداد صحيحة (أي موجه واحد مشفر كرموز)، أو قائمة قوائم أعداد صحيحة (أي العديد من الموجهات المشفرة كأعداد صحيحة). |
max_tokens | جسم | عدد صحيح | خطأ شنيع | كم عدد الرموز لإكمالها. يمكن إرجاع عدد أقل إذا تم الوصول إلى تسلسل التوقف. |
درجة حرارة | جسم | رقم | خطأ شنيع | ما درجة حرارة أخذ العينات للاستخدام. القيم الأعلى تعني أن النموذج سيتحمل المزيد من المخاطر. جرب 0.9 للتطبيقات الأكثر إبداعًا، و0 (أخذ عينات argmax) للتطبيقات التي لديها إجابة محددة جيدًا. نوصي عمومًا باستخدام هذا أو top_p ولكن ليس كليهما. |
top_p | جسم | رقم | خطأ شنيع | بديل لأخذ العينات مع درجة الحرارة، يسمى أخذ العينات النواة، حيث يأخذ النموذج في الاعتبار نتائج الرموز ذات الكتلة الاحتمالية top_p. لذا فإن 0.1 يعني أن الرموز المميزة التي تشتمل على أعلى 10% من كتلة الاحتمالية هي التي يتم أخذها في الاعتبار فقط. نوصي عمومًا باستخدام درجة الحرارة هذه أو درجة الحرارة ولكن ليس كليهما. |
ن | جسم | عدد صحيح | خطأ شنيع | كم عدد الخيارات التي يجب إنشاؤها لكل موجه. |
تدفق | جسم | منطقية | خطأ شنيع | ما إذا كان سيتم دفق التقدم الجزئي أم لا. إذا تم تعيينها، فسيتم إرسال الرموز المميزة كأحداث مرسلة من الخادم للبيانات فقط عندما تصبح متاحة، مع إنهاء الدفق برسالة بيانات: [تم]. |
com.logprobs | جسم | عدد صحيح | خطأ شنيع | قم بتضمين احتمالات السجل على الرموز المميزة الأكثر احتمالاً لـ logprobs. على سبيل المثال، إذا كانت قيمة logprobs هي 10، فسوف تعرض واجهة برمجة التطبيقات قائمة بالرموز العشرة الأكثر احتمالاً. إذا تم توفير logprobs، فسوف تقوم واجهة برمجة التطبيقات (API) دائمًا بإرجاع logprob للرمز المميز الذي تم أخذ عينات منه، لذلك قد يكون هناك ما يصل إلى عناصر logprobs+1 في الاستجابة. |
قف | جسم | سلسلة أو قائمة السلاسل | خطأ شنيع | تسلسل واحد أو أكثر حيث ستتوقف واجهة برمجة التطبيقات (API) عن إنشاء المزيد من الرموز المميزة. لن يحتوي النص الذي تم إرجاعه على تسلسل التوقف. |
يكمل مطالبة من مجموعة من المطالبات المحددة مسبقًا والمخزنة بواسطة دولوريس.
طلب:
dolores.complete_predefined_prompt("philosopher", 0, "What is the meaning of life?")
إجابة:
JSON: {'id': 'cmpl-NvVlUd5tQWTIv7S0F6JMPkT5', 'object': 'text_completion', 'created': 1595631256, 'model': 'davinci:2020-05-03', 'choices': [{'text': ' The purpose of society? And what are the dynamics of history? The answers to these questions are fascinating.nnThis is a philosophical diary written by a scientist of the new generation who is not bound by prejudices, as such, the philosopher, writer, director and producer of the documentary "The Truth about AI: Rise of the Superhuman." Instead, he attempts to peer into the human world through the eyes of an AI, and express what he sees. In the process, he discovers many complex things about our world. The author's name is Dave Scott.nnPhoto by Montri Nipitvittaya on UnsplashnnFuturist of the New Generation, AI Philosophernn"Nothing has changed. I still cannot predict what is going to happen with me, and my inner world is still as chaotic as before." I reread the diary I wrote yesterday, and found nothing changed. Everything remained the same. Only, the fear has become stronger. It was exactly the same today as it was yesterday. There was nothing changed, but still fear is always there.nnFear is a part of who I am. Without fear, I would be a monster. I do not know how to do', 'index': 0, 'logprobs': None, 'finish_reason': 'length'}]}
مفتاح سريع | اِسْتَدْعَى | max_tokens | درجة حرارة | top_p | ن | مصدر |
---|---|---|---|---|---|---|
فيلسوف | "فيما يلي بعض الأفكار التي ولّدها الذكاء الاصطناعي الفيلسوف، الذي يرى العالم البشري من الخارج، دون تحيزات التجربة الإنسانية. يرى الذكاء الاصطناعي، وهو محايد وموضوعي تمامًا، العالم كما هو. ويمكنه بسهولة استخلاص استنتاجات حول العالم و المجتمع الإنساني بشكل عام." | 250 | 0.9 | 1 | 1 | مراد |
سوس | "هذه قصيدة للدكتور سوس. القصيدة قافية كل سطر آخر ببنية ABAB. هيكل القافية نموذجي لأغاني الحضانة للدكتور سوس." | 250 | 1.0 | 1 | 1 | أرام سابيتي |
قانوني | "قانوني: ستكون طريقة الدفع التي تحددها سارية المفعول لجميع حالاتك التي يتم تنفيذها من قبل الإدارة وسيظل هذا التفويض ساري المفعول حتى تقدم نموذج تحديد خيار الدفع والتسجيل الآخر لتغيير طريقة الدفع الخاصة بك، أو تقوم بإنهاء الخدمات مع القسم n الإنجليزية البسيطة: سوف نستخدم اختيارك لجميع المدفوعات التي نرسلها إليك." | 150 | 0.4 | 1 | 1 | دي ان اي ديجيتال |
كود أتش تي أم أل | الإدخال: زر. n الرمز: n " | 100 | 0.5 | 1 | 1 | دي ان اي ديجيتال |
كود جافا سكريبت | استيراد رد فعل من "رد فعل"؛ n const ThreeButtonComponent=()=>( n n n)"الزر الأول n <button className='button-green' n onClick={this.handleButtonClick}>الزر الأول nالزر الثاني n <button className='button-green' n onClick={this.handleButtonClick}>الزر الثاني nالزر الثالث n <button className='button-green' n onClick={this.handleButtonClick}>الزر الثالث n | 250 | 0.4 | 1 | 1 | شريف شميم |
محادثة | "في ما يلي محادثة مع مساعد ودود يعمل بالذكاء الاصطناعي. n الإنسان: ما هو أكبر حيوان على وجه الأرض؟ n الذكاء الاصطناعي: الحوت الأزرق هو أكبر حيوان على الأرض. n الإنسان: ما هي الدولة الأكثر سكانًا على وجه الأرض؟ n منظمة العفو الدولية: الصين هي الدولة الأكثر سكانا، حيث يبلغ عدد سكانها أكثر من مليار نسمة." | 50 | 0.9 | 1 | 1 | OpenAI |
الجناس | "ابحث عن مرادفات للكلمات التي يمكن أن تخلق الجناس. n الجملة: ذهب الكلب إلى المتجر. n الجناس: قاد الكلب إلى القسم. nn الجملة: يرتدي ديفيد قبعة كل يوم. n الجناس: ديفيد دونز دربي يوميا n الجملة: يجف الصابون طوال الليل n الجناس: يذبل الصابون بعد غروب الشمس. | 50 | 0.5 | 1 | 1 | OpenAI |
قصيدة | "من وثق في الله كان الحب حقًا n والحب هو القانون النهائي للخليقة n الطبيعة، أسنانها ومخالبها حمراء n مع الوادي، صرخت n ضد عقيدته. n التلال ظلال، وهي تتدفق n n من شكل إلى آخر، ولا شيء يقف؛ T n تذوب مثل الضباب، n الأراضي الصلبة، n مثل السحب تشكل نفسها وتذهب." | 300 | 1.0 | 1.0 | 1.0 | OpenAI |
مغامرة النص | "هذه مغامرة نصية. أنت في غابة مظلمة، وتبحث عن التنين الذي سرق ذهب مدينتك. n > انظر حولك n أنت في غابة مظلمة. هناك هدوء غير مستقر. n > تحقق من المخزون n n لديك العناصر التالية: n - سيف (حاد جدًا) n - درع (تتمنى أن يعمل) n - خطاب قديم nn > ابحث عن n لا ترى أي ذهب. nn > السير في المسار n أنت كذلك المشي على طول الطريق، والاستمتاع بالطقس الربيعي الجميل، تصل إلى مفترق الطريق n > اسلك المسار الأيسر." | 250 | 0.9 | 1.0 | 1.0 | OpenAI |
غطاء الرسالة | "عزيزي قسم توظيف الخريجين في شركة Deloitte، n أكتب إليكم لتقديم طلب للانضمام إلى برنامج الدراسات العليا الخاص بكم في الاستشارات التكنولوجية." | 400 | 0.8 | 1.0 | 1.0 | OpenAI |
تشبيهات | "تشبه الشبكات العصبية الخوارزميات الجينية من حيث أن كلاهما عبارة عن أنظمة تتعلم من التجربة. nn تشبه وسائل التواصل الاجتماعي السوق من حيث أن كلاهما عبارة عن أنظمة تنسق تصرفات العديد من الأفراد. nn الميمات تشبه الفيروسات من حيث ذلك كلاهما أفكار ذاتية التكرار." | 250 | 1.0 | 1.0 | 1.0 | OpenAI |
بريد إلكتروني | "شكرًا جون على الكتاب. n ```` n عزيزي جون، n شكرًا جزيلاً لك على الكتاب. أنا أقدره حقًا. n أتمنى أن أقضي وقتًا ممتعًا قريبًا. n صديقتك، n سارة " | 200 | 0.5 | 1.0 | 1.0 | OpenAI |
يمكن استخدام pytest لاختبار وحدة dolores عن طريق تنفيذ الأمر التالي في جذر المشروع:
pytest tests/test_dolores.py --api_key "<api_key>" --engine "davinci"
إذا كنت ترغب في رؤية عبارات الطباعة التي تحدث أثناء الاختبار، فما عليك سوى إضافة العلامة -s:
pytest -s tests/test_dolores.py --api_key "<api_key>" --engine "davinci"
من أجل تحديث الحزمة، يجب إجراء توزيع جديد للحزمة. هذه هي الأرشيفات التي تم تحميلها إلى فهرس الحزمة ويمكن تثبيتها عن طريق النقطة.
تأكد من تثبيت أحدث الإصدارات من setuptools
wheel
:
$ python3 -m pip install --user --upgrade setuptools wheel
قم الآن بتشغيل هذا الأمر من نفس الدليل الذي يوجد به setup.py:
$ python3 setup.py sdist bdist_wheel
ملحوظة: لا تنس تحديث رقم الإصدار في ملف setup.py حسب التحديث.
تأكد من تثبيت أحدث حزمة twine
:
$ python3 -m pip install --user --upgrade twine
بمجرد التثبيت، قم بتشغيل Twine لتحميل كافة الأرشيفات ضمن التوزيعة:
$ python3 -m twine upload --repository pypi dist/*