أرى أن هناك بعض المواضيع المثيرة للاهتمام حول دمج الروبوتات على مستويات مختلفة في Discourse، لكنني لم أر أي مواضيع حول دمج روبوتات الذكاء الاصطناعي الكبيرة ذات الذاكرة الكبيرة مثل GPT-3 و BlenderBot وما إلى ذلك. هل فكر أي شخص في هذا؟ أو حتى أحرز أي تقدم في تنفيذ الفكرة؟
أفكر في إعداد نسخة أخرى من Discourse مع أحد روبوتات الذكاء الاصطناعي الكبيرة كمستخدم عادي في النظام يشارك مثل أي مستخدم بشري آخر - ولكن ربما يرد فقط عندما يتم توجيه منشور إليه خصيصًا أو عندما يتم ذكر اسمه في منشور.
قبل أن أبدأ مرة أخرى بنسخة جديدة، اعتقدت أنني قد أحصل على بعض التعليقات أولاً هذه المرة. .
ممتاز! فكرتي الحالية هي أن أتمكن من إضافة العديد من تطبيقات الذكاء الاصطناعي المختلفة إلى الكيان المركزي مع مرور الوقت - بطريقة مشابهة لتطور الدماغ البشري / الثديي مع التكرار والتخصص. .
ربما لنبدأ ببعض التصميم التقني أولاً. ما نوع واجهة برمجة التطبيقات (API) التي سنتصل بها؟ هل نحتاج إلى قطعة برمجية بين النظامين أم أن مكونًا إضافيًا يستدعي واجهة برمجة تطبيقات GPT سيكون كافيًا؟
نعم، بالتأكيد. سأكون بعيدًا لمدة أسبوع تقريبًا وبعد ذلك يمكنني قضاء بعض الوقت في التجربة. لست من محبي Node كثيرًا، أفضل القيام بذلك بلغة Python أو Ruby أو PHP. ولكن دعنا نكتسب بعض الخبرة مع هذا أولاً.
لقد كنت بعيدًا عن الإنترنت في الأشهر القليلة الماضية وعدت لأرى الكثير من الحماس حول GPT-3. هذا جعلني أفكر في كيفية تطبيقه على Discourse.
لقد كنت أعبث بفكرة إنشاء روبوت “مساعد للموظفين” باستخدام OpenAI. أنا أختبره حاليًا باستخدام نموذج text-davinci-003. أعتقد أن التصميم الأساسي سيكون خطاف ويب (webhook) لحدث منشور Discourse يشير إلى خادم مثبت عليه مكتبة Python OpenAI.
المهمة الأولى التي أعمل عليها هي جعل الروبوت يعيد استعلامات مستكشف البيانات (Data Explorer) من أوصاف نصية بسيطة. لم أجرب ضبط النموذج بدقة بعد، ولكن إذا تم توفير معلومات حول بنية قاعدة بيانات Discourse مع موجه الطلب، فإنه يعيد نتائج جيدة بشكل مدهش.
قد يتضح أن استخدام OpenAI لهذا النوع من الأشياء سيكون مكلفًا للغاية، أو أن النتائج ليست دقيقة بما يكفي لاستخدامها على موقع إنتاجي.
أنا أعمل على هذا للمتعة فقط. الشيء الواضح الآخر الذي يجب النظر فيه هو تدريب روبوت دعم العملاء على الردود الموجودة في منتدى Discourse. يبدو هذا مشكلة أكثر صعوبة (من حيث التكلفة والدقة) من مجرد إعداد روبوت للمستخدمين الموظفين.
لدي حالة استخدام مختلفة (يجب أن يتذكر الروبوت المحادثات السابقة مع أعضاء المنظمات غير الربحية لدينا). لقد أحرزت تقدمًا طفيفًا في الأسبوع الماضي مع إصدارات مختلفة من BlenderBot - سأنشر المزيد هنا حيث قمنا بإعداد Discourse خصيصًا للمشروع:
يسعدني أن أكون مخطئًا بشأن هذا، ولكن فهمي هو أن ChatGPT “يتذكر” فقط نص أحدث مطالبة أرسلتها إليه. يمكنك اختبار ذلك في OpenAI playground عن طريق بدء محادثة، ثم النقر فوق الزر “عرض التعليمات البرمجية” بعد إرسال النص الخاص بك. سترى أنه في كل مرة ترسل فيها المزيد من النص، يتم إلحاقه بالمطالبة:
prompt="The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.\n\nHuman: Just testing to see how the prompt gets set.\nAI: Hi there! It looks like you're trying to find out about how to configure the prompts. Is there anything else I can help you with today?\nHuman: If I use OpenAI's chat functionality on my own application, should I keep updating the prompt each time a user posts a new question? It's definitely a good idea to keep your prompts up-to-date, as it will help ensure your users are getting the most relevant information for each question they post. Depending on the size of your application and the complexity of your conversations, you may want to update your prompts regularly or develop a more sophisticated system to determine when updates are necessary. Let me know if there is anything else I can help you with."
يمكن أن يستمر هذا حتى تصل إلى حد 4000 رمز (~ 3 آلاف كلمة) المذكور في الوثائق التي ربطتها. لاحظ أن إرسال المطالبات الكبيرة يمكن أن يكون مكلفًا. أعتقد أنه يكلف حاليًا 0.02 دولار لكل 1000 رمز مع نموذج Davinci.
إذا كان فهمي صحيحًا، فإن تطبيقًا أو إضافة Discourse التي تتعامل مع ChatGPT لـ Discourse ستحتاج إلى إلحاق كل سؤال ورد جديد بالمطالبة. يمكنها القيام بذلك حتى تصل إلى حد 4 آلاف رمز (~ 3 آلاف كلمة). إذا تم تجاوز هذا الحد، يبدو أنه يتم إرجاع خطأ من OpenAI. يجب معالجة هذا الخطأ بواسطة التطبيق الذي يقوم بإجراء الطلبات إلى OpenAI.
قد تتمثل إحدى الحلول الممكنة لحد الرموز في إيجاد طريقة لاستخراج التفاصيل الرئيسية من المحادثة ثم تحديث المطالبة بهذه التفاصيل فقط. قد يكون من الممكن إجراء طلب نيابة عن المستخدم للحصول على هذه المعلومات. شيء مثل:
عندما تتفاعل مع chatGPT وتنظر إلى طلبات الشبكة، يمكنك رؤية معرف محادثة (conversation_id) يتم إرساله أيضًا إلى الواجهة الخلفية. أعتقد أن وثائق openai تذكر هذا أيضًا.