هذا هو روبوت دردش Telegram (مساعد AI) الذي يستخدم نماذج لغة GPT من Openai.
ميزات بارزة:
تابع القراءة للحصول على وصف ميزة مفصلة أو القفز إلى الإعداد.
يعمل الروبوت كمساعد شخصي الخاص بك:
؟ اشرح Apache Kafka لعمر ثلاث سنوات
؟ يشبه Apache Kafka صندوق بريد كبير يساعد على إرسال رسائل إلى بعضها البعض. عندما يكون لدى إحدى الألعاب ما تقوله ، فإنها تضع رسالة في صندوق البريد ، ويمكن للألعاب الأخرى إخراج هذه الرسالة وقراءتها. بهذه الطريقة ، يمكنهم التحدث ومشاركة الأشياء بسرعة!
للسماح للمستخدمين الآخرين باستخدام الروبوت ، قم بإدراجها في خاصية Config telegram.usernames .
يتمتع الروبوت بذاكرة فظيعة ، لذلك لا تتوقع أن تتذكر أي سياق دردشة افتراضيًا. ومع ذلك ، يمكنك الرد بسؤال متابعة ( Ctrl/Cmd + ↑ ). بدلاً من ذلك ، استخدم علامة زائد للمتابعة:
؟ بالأمس ، بدت كل مشاكلي بعيدة جدًا
؟ يبدو أنك تقتبس "بالأمس" من البيتلز. إنها أغنية كلاسيكية عن الشوق والحنين.
؟ + من كتبها؟
؟ كتب "أمس" بول مكارتني من البيتلز.
الأوامر المتاحة:
/retry - أعد الإجابة على السؤال الأخير/help - عرض المساعدة/version - عرض معلومات الروبوتلإعادة صياغة أو إضافة إلى السؤال الأخير ، ما عليك سوى تحريره. سيجيب الروبوت بعد ذلك على السؤال المحدث.
للحصول على إجابة من الروبوت في مجموعة ، أذكرها في رد على سؤال:
؟ لقد نسيت من لعب رامسي في لعبة العروش؟
؟ pokitokibot مساعدة؟ لعب رامزي بولتون في لعبة العروش من قبل إيوان ريون.
أو اطرح سؤالاً مباشرة:
؟ pokitokibot الذي لعب رامسي في لعبة العروش؟
؟ لعب Iwan Rheon Ramsay Bolton في Game of Thrones.
لجعل رد الروبوت على أعضاء المجموعة ، قم بإدراج معرف المجموعة في خاصية تكوين telegram.chat_ids . خلاف ذلك ، سوف يتجاهل الروبوت أسئلة من أعضاء المجموعة ما لم يتم سردهم في خاصية Config telegram.usernames .
إذا كنت لا تعرف معرف المجموعة ، فقم بتشغيل الأمر /version في مجموعة للعثور عليه:
Chat information:
- id: -1001405001234
- title: My Favorite Group
- type: supergroup
...
إذا سألت chatgpt "الفانيليا" عن الموارد الخارجية ، فسيتم إما هلوسة أو تعترف بأنها لا يمكنها الوصول إلى المحتوى البعيد:
؟ ما هو محتوى https://sqlime.org/employees.sql؟ أي افتراضات.
؟ كنموذج لغة AI ، لا يمكنني الوصول إلى عناوين URL الخارجية على الإنترنت.
يحل الروبوت المشكلة عن طريق جلب المحتوى عن بُعد وتغذيته إلى النموذج:
؟ الاسم 1 ميزة رئيسية لإصدار GO 1.23 https://tip.golang.org/doc/go1.23 كن موجزًا!
؟ تتمثل إحدى الميزات الرئيسية لـ GO 1.23 في إدراج تجربة "Range-Over-Func" كميزة لغة قياسية ، مما يتيح شرط "المدى" في حلقات "المدى" لقبول وظائف التكرار.
حاليًا يدعم المحتوى النصي (المقالات أو الكود أو البيانات) فقط ، وليس PDFs أو الصور أو الصوت.
إذا كنت لا تريد أن يصل الروبوت إلى عنوان URL ، اقتبسه:
؟ محتويات دقيقة من "https://antonz.org/robots.txt"
؟ لا يمكنني الوصول إلى مواقع الويب الخارجية مباشرة. يمكنك التحقق من محتويات ملف robots.txt عن طريق زيارة عنوان URL في متصفحك.
استخدم الأوامر القصيرة لتوفير الوقت واطلب من الروبوت القيام بشيء محدد مع أسئلتك. على سبيل المثال ، اطلب من ذلك تصحيح كتاباتك باستخدام أمر !proofread
؟ !
؟ نص منقح: "يمكنني كتابة برامج جافا."
التغييرات التي تم إجراؤها:
- تمت إزالته "لديه" من أجل الصواب النحوي ؛ "يمكن" لا يتطلب "لديه."
- تم تصحيح "Java" إلى "Java" للحصول على القيمة السليمة لأنها اسم مناسب.
- تم تغيير "برنامج" إلى "برامج" من أجل الإملاء الصحيح والوضوح.
هناك العديد من الاختصارات المدمجة:
bugfix يعمل على إصلاح الكود الخاص بك.proofread يحدد كتاباتك.translate ترجمة النص الخاص بك إلى اللغة الإنجليزية.summarize يعطي ملخص فقرة للنص. يمكنك إضافة اختصاراتك الخاصة. انظر config.example.yml للحصول على التفاصيل.
لتعيين مطالبة مخصصة للدردشة الحالية ، استخدم الأمر /prompt :
؟ /تطالب أنت عبقري شرير. الرد بضحكة شريرة.
للعودة إلى المطالبة الافتراضية ، استخدم /prompt reset .
يتوفر الأمر /prompt في الدردشات الجماعية فقط للمسؤولين - المستخدمون المدرجون في خاصية telegram.admins .
استخدم الأمر /imagine لإنشاء صورة باستخدام طراز Dall-E 3 من Openai:
؟ /تخيل فجر حقبة جديدة
؟ (صورة جميلة)
فجر حقبة جديدة
حجم الصورة الافتراضي هو 1024 × 1024 بكسل. الأحجام المدعومة الأخرى هي 1792 × 1024 و 1024 × 1792:
/تخيل قطة كسولة في يوم مشمس 1792 × 1024
توليد الصور باهظ الثمن. بشكل افتراضي ، يتم تمكينه فقط للمستخدمين المدرجين في telegram.usernames ، وليس لأعضاء المجموعة. يمكنك تغيير هذا باستخدام خاصية imagine.enabled Config.
تتكون راحة العمل مع روبوت من تفاصيل صغيرة. فيما يلي بعض المواقف التي يمكن أن توفر لك الوقت والجهد.
لنفترض أنك تلقيت رسالة من زميل أو اقرأ منشورًا على قناة وتريد طرح سؤال. ما عليك سوى توجيه الرسالة إلى الروبوت والإجابة على سؤال التوضيح الذي يطرحه.
لطرح سؤال حول مستند ، أرسله كملف واكتب السؤال في التسمية التوضيحية. سوف يقرأ الروبوت محتويات الملف والإجابة. حاليًا يدعم المحتوى النصي (نصًا عاديًا أو رمزًا أو بيانات) ، وليس ملفات PDF أو الصور أو الصوت. إرسال ملفات متعددة أيضًا غير مدعوم.
في بعض الأحيان ، يتجاوز رد الذكاء الاصطناعي الحد الأقصى لطول الرسالة الذي تم تحديده بواسطة Telegram. في هذه الحالة ، لن يفشل الروبوت أو يرسل لك الرسائل. بدلاً من ذلك ، سوف يرسل الإجابة كملف تخفيض المرفق.
لإعادة صياغة أو إضافة إلى السؤال الأخير ، قم بتحريره ( ↑ الاختصار). سوف يلاحظ الروبوت هذا والرد على السؤال الموضح.
استخدم الأمر /version لطباعة معلومات مفصلة حول الدردشة الحالية والبوت ونموذج الذكاء الاصطناعي:
Chat information:
- id: -1001405001234
- title: My Favorite Group
- type: supergroup
Bot information:
- id: 5930739038
- name: @pokitokibot
- version: 129
- usernames: 6 users
- admins: 1 users
- chat IDs: []
- access to messages: True
AI information:
- model: gpt-3.5-turbo
- history depth: 3
- imagine: True
- shortcuts: bugfix, proofread, summarize, translate
استخدم الأمر /config لتغيير أي إعداد تقريبًا أثناء الطيران ، دون إعادة تشغيل الروبوت.
telegram.usernames و telegram.chat_ids ).openai.model ) ، المطالبة ( openai.prompt ) و Params ( openai.params ).imagine.enabled ).shortcuts ). لعرض خاصية تكوين معينة ، ضع اسمها بعد /config :
/config telegram.usernames
/config openai.prompt
/config imagine.enabled
لتغيير خاصية تكوين معينة ، ضع اسمها وقيمتها بعد /config :
/config telegram.usernames ["alice", "bob", "cindy"]
/config openai.prompt "You are an evil AI bot"
/config imagine.enabled none
عند العمل مع خصائص قائمة مثل telegram.usernames ، يمكنك إضافة أو إزالة العناصر الفردية بدلاً من إعادة تعريف القائمة بأكملها:
/config telegram.usernames +cindy
/config telegram.usernames -bob
أمر /config متاح فقط للمسؤولين - المستخدمون المدرجين في خاصية telegram.admins .
يمكن أن تؤدي المناقشات الساخنة مع الروبوت في مجموعات كبيرة إلى استخدام عالية من API Openai. لتجنب إنفاق ميزانيتك بأكملها ، قم بتعيين حدود الرسائل للمجموعات مع خاصية conversation.message_limit Config.
يمكنك الحد من عدد الرسائل من مستخدم على مدى فترة من الزمن. على سبيل المثال:
message_limit :
count : 10
period : hour message_limit :
count : 1
period : minute message_limit :
count : 30
period : day احصل على مفتاح Openai API الخاص بك
احصل على رمز الروبوت Telegram الخاص بك من botfather
استنساخ الريبو إلى الخادم:
git clone https://github.com/nalgeon/pokitoki.git انسخ config.example.yml إلى config.yml وحدد الرموز الخاصة بك هناك. أضف نفسك إلى خاصية telegram.usernames ، وإلا فإن الروبوت سيكون متاحًا للجميع.
ابدأ الروبوت:
docker compose up --build --detachلوقف الروبوت:
docker compose stopلتحديث الروبوت إلى إصدار جديد:
docker compose stop
git pull
docker compose up --build --detach لتوزيعات Docker القديمة ، استخدم docker-compose بدلاً من docker compose .
إعداد البيئة:
python3 -m venv env
. env/bin/activate
pip install -r requirements.txt
قم بإعداد دليل التكوين والبيانات:
cp config.example.yml config.yml
mkdir ./data
تعيين الرموز والإعدادات الأخرى في config.yml .
إجراء اختبارات:
python -m unittest discover
ابدأ الروبوت:
python -m bot.bot
للحصول على الميزات والتحسينات الجديدة ، يرجى أولاً فتح مشكلة لمناقشة ما ترغب في تغييره.
تأكد من إضافة أو تحديث الاختبارات حسب الاقتضاء.
استخدم Black لتنسيق التعليمات البرمجية والالتزامات التقليدية لالتزام الرسائل.
للاطلاع على تاريخ الميزة ، انظر الإصدارات.
استنادا في الأصل على chatgpt_telegram_bot ، على الرغم من أن المشاريع تباعدت قليلاً.