
Rasagpt هي أول منصة LLM chatbot التي تم تصميمها على رأس Rasa و Langchain. إنه Boilerplate وتنفيذ مرجعي لـ RASA و Telegram باستخدام مكتبة LLM مثل Langchain لفهرسة واسترجاع وحقن السياق.

بكلماتهم الخاصة:
RASA هو إطار عمل للتعلم الآلي مفتوح المصدر (Python) لأتمتة المحادثات المستندة إلى النص والصوت: NLU ، إدارة الحوار ، الاتصال بالركود ، Facebook ، والمزيد- إنشاء chatbots ومساعدين صوتيين
بكلماتي:
Rasa تحظى بشعبية كبيرة (Dare I say de acto؟) وسهلة الاستخدام لاستخدام إطار chatbot مع خطوط أنابيب NLU ML المدمجة التي عفا عليها الزمن ونقطة انطلاق مفاهيمية لإطار chatbot المعاد تصوره في عالم من LLMS.
Rasagpt يعمل خارج الصندوق. تم فرز الكثير من الصداع التنفيذي حتى لا يتعين عليك ذلك ، بما في ذلك:
القصة الخلفية مألوفة. جاء صديق لي بمشكلة. لقد بحثت عن Google و Github لتنفيذ مرجعي لائق لـ LLM المدمج مع RASA ولكنني خرجت خالي الوفاض. لقد تصورت أن هذا يمثل فرصة رائعة لتلبيس فضولي وبعد يومين ، كان لدي دليل على المفهوم ، وبعد أسبوع ما توصلت إليه.
️ تحذير Emptor: هذا بعيد عن رمز الإنتاج وينتج عن حقن فوري ونقاط الأمن العام. آمل فقط أن يجد شخص ما هذا مفيدًا؟
من السهل البدء ، فقط تأكد من تلبية التبعيات أدناه.
️ ️ ️ ** انتباه غير مستخدمين غير ماكوس: ** إذا كنت تستخدم Linux أو Windows ، فستحتاج إلى تغيير اسم الصورة منkhalosa/rasa-aarch64:3.5.2إلىrasa/rasa:latestفي Docker-corm.yml على الخط #64 وفي الإجراءات dockerfile على السطر رقم 1 هنا
# Get the code
git clone https://github.com/paulpierre/RasaGPT.git
cd RasaGPT
# # Setup the .env file
cp .env-example .env
# Edit your .env file and add all the necessary credentials
make install
# Type "make" to see more options
makehttps://t.me/yourbotnamegit clone https://github.com/paulpierre/RasaGPT.git
cd RasaGPT
cp .env-example .env
# Edit your .env file and all the credentials
في أي وقت لا تتردد في make فقط وسيعرض قائمة الخيارات ، مفيدة في الغالب لتصحيح الأخطاء:

أسهل طريقة للبدء هي استخدام Makefile في دليل الجذر. سيتم تثبيت وتشغيل جميع الخدمات لـ Rasagpt بالترتيب الصحيح.
make install
# This will automatically install and run RasaGPT
# After installation, to run again you can simply run
make run هذا مفيد إذا كنت ترغب في التركيز على التطوير أعلى واجهة برمجة التطبيقات ، تم صنع Makefile منفصلة لهذا الغرض. سيؤدي ذلك إلى إنشاء بيئة افتراضية محلية لك.
# Assuming you are already in the RasaGPT directory
cd app/api
make install
# This will automatically install and run RasaGPT
# After installation, to run again you can simply run
make run وبالمثل ، أدخل make لمشاهدة قائمة كاملة بالأوامر

يجب أن يكون التثبيت آليًا يجب أن يبدو هكذا:

سجل التثبيت الكامل: https://app.warp.dev/block/vflua6eue29epk8evvw8kd
تتخذ عملية التثبيت لـ Docker الخطوات التالية على مستوى عالٍ
.env متاحpgvectorseed.pyيمكنك البدء في الدردشة مع الروبوت الخاص بك من خلال زيارة https://t.me/yourbotsname

يمكنك عرض كل السجل من خلال زيارة https: // localhost: 9999/التي ستعرض سجلات في الوقت الفعلي لجميع حاويات Docker

عرض مستندات نقطة نهاية API من خلال زيارة https: // localhost: 8888/docs
في هذه الصفحة ، يمكنك إنشاء وتحديث الكيانات ، بالإضافة إلى تحميل المستندات إلى قاعدة المعرفة.

الروبوت هو مجرد دليل على المفهوم ولم يتم تحسينه للاسترجاع. ويستخدم حاليًا 1000 من الحرف لتكسير الفهرسة والمسافة الإقليدية الأساسية للاسترجاع والجودة يتم ضربها أو تفوتها.
يمكنك عرض مثال يضرب ويخطئ مع الروبوت في ملف results.md. بشكل عام ، أقدر تحسين الفهرس وتغييرات تكوين LLM يمكن أن تزيد من جودة الإخراج بأكثر من 70 ٪.
انقر لرؤية نتائج الأسئلة والأجوبة للبيانات التجريبية في النتائج.
API REST مستقيم للأمام ، يرجى زيارة الوثائق http: // localhost: 8888/docs
الكيانات أدناه لديها عمليات CRUD الأساسية وإعادة JSON
يمكن اعتبار ذلك كشركة هي عميلك في عالم SaaS / متعدد المستأجرين. بشكل افتراضي ، تم توفير قائمة من المؤسسات الوهمية

[
{
" id " : 1,
" uuid " : " d2a642e6-c81a-4a43-83e2-22cee3562452 " ,
" display_name " : " Pepe Corp. " ,
" namespace " : " pepe " ,
" bot_url " : null,
" created_at " : " 2023-05-05T10:42:45.933976 " ,
" updated_at " : " 2023-05-05T10:42:45.933979 "
},
{
" id " : 2,
" uuid " : " 7d574f88-6c0b-4c1f-9368-367956b0e90f " ,
" display_name " : " Umbrella Corp " ,
" namespace " : " acme " ,
" bot_url " : null,
" created_at " : " 2023-05-05T10:43:03.555484 " ,
" updated_at " : " 2023-05-05T10:43:03.555488 "
},
{
" id " : 3,
" uuid " : " 65105a15-2ef0-4898-ac7a-8eafee0b283d " ,
" display_name " : " Cyberdine Systems " ,
" namespace " : " cyberdine " ,
" bot_url " : null,
" created_at " : " 2023-05-05T10:43:04.175424 " ,
" updated_at " : " 2023-05-05T10:43:04.175428 "
},
{
" id " : 4,
" uuid " : " b7fb966d-7845-4581-a537-818da62645b5 " ,
" display_name " : " Bluth Companies " ,
" namespace " : " bluth " ,
" bot_url " : null,
" created_at " : " 2023-05-05T10:43:04.697801 " ,
" updated_at " : " 2023-05-05T10:43:04.697804 "
},
{
" id " : 5,
" uuid " : " 9283d017-b24b-4ecd-bf35-808b45e258cf " ,
" display_name " : " Evil Corp " ,
" namespace " : " evil " ,
" bot_url " : null,
" created_at " : " 2023-05-05T10:43:05.102546 " ,
" updated_at " : " 2023-05-05T10:43:05.102549 "
}
]يمكن اعتبار هذا منتجًا ينتمي إلى شركة. يمكنك عرض قائمة المشاريع التي تنتمي إلى منظمات مثل ذلك:

[
{
" id " : 1,
" documents " : [
{
" id " : 1,
" uuid " : " 92604623-e37c-4935-bf08-0e9efa8b62f7 " ,
" display_name " : " project-pepetamine.md " ,
" node_count " : 3
}
],
" document_count " : 1,
" uuid " : " 44a4b60b-9280-4b21-a676-00612be9aa87 " ,
" display_name " : " Pepetamine " ,
" created_at " : " 2023-05-05T10:42:46.060930 " ,
" updated_at " : " 2023-05-05T10:42:46.060934 "
},
{
" id " : 2,
" documents " : [
{
" id " : 2,
" uuid " : " b408595a-3426-4011-9b9b-8e260b244f74 " ,
" display_name " : " project-frogonil.md " ,
" node_count " : 3
}
],
" document_count " : 1,
" uuid " : " 5ba6b812-de37-451d-83a3-8ccccadabd69 " ,
" display_name " : " Frogonil " ,
" created_at " : " 2023-05-05T10:42:48.043936 " ,
" updated_at " : " 2023-05-05T10:42:48.043940 "
},
{
" id " : 3,
" documents " : [
{
" id " : 3,
" uuid " : " b99d373a-3317-4699-a89e-90897ba00db6 " ,
" display_name " : " project-kekzal.md " ,
" node_count " : 3
}
],
" document_count " : 1,
" uuid " : " 1be4360c-f06e-4494-bf20-e7c73a56f003 " ,
" display_name " : " Kekzal " ,
" created_at " : " 2023-05-05T10:42:49.092675 " ,
" updated_at " : " 2023-05-05T10:42:49.092678 "
},
{
" id " : 4,
" documents " : [
{
" id " : 4,
" uuid " : " 94da307b-5993-4ddd-a852-3d8c12f95f3f " ,
" display_name " : " project-memetrex.md " ,
" node_count " : 3
}
],
" document_count " : 1,
" uuid " : " 1fd7e772-365c-451b-a7eb-4d529b0927f0 " ,
" display_name " : " Memetrex " ,
" created_at " : " 2023-05-05T10:42:50.184817 " ,
" updated_at " : " 2023-05-05T10:42:50.184821 "
},
{
" id " : 5,
" documents " : [
{
" id " : 5,
" uuid " : " 6deff180-3e3e-4b09-ae5a-6502d031914a " ,
" display_name " : " project-pepetrak.md " ,
" node_count " : 4
}
],
" document_count " : 1,
" uuid " : " a389eb58-b504-48b4-9bc3-d3c93d2fbeaa " ,
" display_name " : " PepeTrak " ,
" created_at " : " 2023-05-05T10:42:51.293352 " ,
" updated_at " : " 2023-05-05T10:42:51.293355 "
},
{
" id " : 6,
" documents " : [
{
" id " : 6,
" uuid " : " 2e3c2155-cafa-4c6b-b7cc-02bb5156715b " ,
" display_name " : " project-memegen.md " ,
" node_count " : 5
}
],
" document_count " : 1,
" uuid " : " cec4154f-5d73-41a5-a764-eaf62fc3db2c " ,
" display_name " : " MemeGen " ,
" created_at " : " 2023-05-05T10:42:52.562037 " ,
" updated_at " : " 2023-05-05T10:42:52.562040 "
},
{
" id " : 7,
" documents " : [
{
" id " : 7,
" uuid " : " baabcb6f-e14c-4d59-a019-ce29973b9f5c " ,
" display_name " : " project-neurokek.md " ,
" node_count " : 5
}
],
" document_count " : 1,
" uuid " : " 4a1a0542-e314-4ae7-9961-720c2d092f04 " ,
" display_name " : " Neuro-kek " ,
" created_at " : " 2023-05-05T10:42:53.689537 " ,
" updated_at " : " 2023-05-05T10:42:53.689539 "
},
{
" id " : 8,
" documents " : [
{
" id " : 8,
" uuid " : " 5be007ec-5c89-4bc4-8bfd-448a3659c03c " ,
" display_name " : " org-about_the_company.md " ,
" node_count " : 5
},
{
" id " : 9,
" uuid " : " c2b3fb39-18c0-4f3e-9c21-749b86942cba " ,
" display_name " : " org-board_of_directors.md " ,
" node_count " : 3
},
{
" id " : 10,
" uuid " : " 41aa81a9-13a9-4527-a439-c2ac0215593f " ,
" display_name " : " org-company_story.md " ,
" node_count " : 4
},
{
" id " : 11,
" uuid " : " 91c59eb8-8c05-4f1f-b09d-fcd9b44b5a20 " ,
" display_name " : " org-corporate_philosophy.md " ,
" node_count " : 4
},
{
" id " : 12,
" uuid " : " 631fc3a9-7f5f-4415-8283-78ff582be483 " ,
" display_name " : " org-customer_support.md " ,
" node_count " : 3
},
{
" id " : 13,
" uuid " : " d4c3d3db-6f24-433e-b2aa-52a70a0af976 " ,
" display_name " : " org-earnings_fy2023.md " ,
" node_count " : 5
},
{
" id " : 14,
" uuid " : " 08dd478b-414b-46c4-95c0-4d96e2089e90 " ,
" display_name " : " org-management_team.md " ,
" node_count " : 3
}
],
" document_count " : 7,
" uuid " : " 1d2849b4-2715-4dcf-aa68-090a221942ba " ,
" display_name " : " Pepe Corp. (company) " ,
" created_at " : " 2023-05-05T10:42:55.258902 " ,
" updated_at " : " 2023-05-05T10:42:55.258904 "
}
]يمكن اعتبار ذلك بمثابة قطعة أثرية تتعلق بمنتج ، مثل صفحة الأسئلة الشائعة أو PDF مع أرباح البيان المالي. يمكنك عرض جميع المستندات المرتبطة بمشروع المنظمة مثل:

{
" id " : 1,
" uuid " : " 44a4b60b-9280-4b21-a676-00612be9aa87 " ,
" organization " : {
" id " : 1,
" uuid " : " d2a642e6-c81a-4a43-83e2-22cee3562452 " ,
" display_name " : " Pepe Corp. " ,
" bot_url " : null,
" status " : 2,
" created_at " : " 2023-05-05T10:42:45.933976 " ,
" updated_at " : " 2023-05-05T10:42:45.933979 " ,
" namespace " : " pepe "
},
" document_count " : 1,
" documents " : [
{
" id " : 1,
" uuid " : " 92604623-e37c-4935-bf08-0e9efa8b62f7 " ,
" organization_id " : 1,
" project_id " : 1,
" display_name " : " project-pepetamine.md " ,
" url " : " " ,
"data": "# PepetaminennProduct Name: PepetaminennPurpose: Increases cognitive focus just like the Limitless movienn**How to Use**nnPepetamine is available in the form of rare Pepe-coated tablets. The recommended dosage is one tablet per day, taken orally with a glass of water, preferably while browsing your favorite meme forum for maximum cognitive enhancement. For optimal results, take Pepetamine 30 minutes before engaging in mentally demanding tasks, such as decoding ancient Pepe hieroglyphics or creating your next viral meme masterpiece.nn**Side Effects**nnSome potential side effects of Pepetamine may include:nn1. Uncontrollable laughter and a sudden appreciation for dank memesn2. An inexplicable desire to collect rare Pepesn3. Enhanced meme creation skills, potentially leading to internet famen4. Temporary green skin pigmentation, resembling the legendary Pepe himselfn5. Spontaneously speaking in "feels good man" languagennWhile most side effects are generally harmless, consult your memologist if side effects persist or become bothersome.nn**Precautions**nnBefore taking Pepetamine, please consider the following precautions:nn1. Do not use Pepetamine if you have a known allergy to rare Pepes or dank memes.n2. Pepetamine may not be suitable for individuals with a history of humor deficiency or meme intolerance.n3. Exercise caution when driving or operating heavy machinery, as Pepetamine may cause sudden fits of laughter or intense meme ideation.nn**Interactions**nnPepetamine may interact with other substances, including:nn1. Normie supplements: Combining Pepetamine with normie supplements may result in meme conflicts and a decreased sense of humor.n2. Caffeine: The combination of Pepetamine and caffeine may cause an overload of energy, resulting in hyperactive meme creation and potential internet overload.nnConsult your memologist if you are taking any other medications or substances to ensure compatibility with Pepetamine.nn**Overdose**nnIn case of an overdose, symptoms may include:nn1. Uncontrollable meme creationn2. Delusions of grandeur as the ultimate meme lordn3. Time warps into the world of PepennIf you suspect an overdose, contact your local meme emergency service or visit the nearest meme treatment facility. Remember, the key to enjoying Pepetamine is to use it responsibly, and always keep in mind the wise words of our legendary Pepe: "Feels good man."",
" hash " : " fdee6da2b5441080dd78e7850d3d2e1403bae71b9e0526b9dcae4c0782d95a78 " ,
" version " : 1,
" status " : 2,
" created_at " : " 2023-05-05T10:42:46.755428 " ,
" updated_at " : " 2023-05-05T10:42:46.755431 "
}
],
" display_name " : " Pepetamine " ,
" created_at " : " 2023-05-05T10:42:46.060930 " ,
" updated_at " : " 2023-05-05T10:42:46.060934 "
}على الرغم من أن هذا لا يتم كشفه في واجهة برمجة التطبيقات ، فإن العقدة هي جزء من المستند الذي يتم إنشاء تضمينات. يتم استخدام العقد للبحث عن الاسترجاع وكذلك حقن السياق. العقدة تنتمي إلى وثيقة.
يمثل المستخدم الشخص الذي يتحدث إلى روبوت. لا ينتم المستخدمون بالضرورة إلى ORG أو منتج ، ولكن يتم التقاط هذه العلاقة في الدردشة أدناه.
لا تتعرض عبر API ، ولكن هذا يمثل سؤالًا والإجابة بين المستخدم والبوت. يمكن التعرف على كل من هذه الكائنات بمرونة بواسطة session_id يتم إنشاؤها تلقائيًا. تحتوي جلسات الدردشة على بيانات تعريف غنية يمكن استخدامها للتدريب والتحسين. ترتبط الدردشة عبر نقطة نهاية /chat في الواقع بالتنظيم (لأغراض أمنية متعددة المستأجرين)
/webhooks/{channel}/webhookFallbackClassifierrasa-credentials عبر APP/RASA-Credentials/Main.pyaction_gpt_fallback الذي سيؤدي إلى قيام خادم الإجراءات لديناout_of_scopeaction_gpt_fallbackActionGPTFallback . يرجع name الطريقة إلى الإجراء الذي حددناه لنيتنا أعلاهrasa train . يتم ذلك تلقائيًا من أجلك عند make installrasa run بعد التدريبrasa run actions rasa-credentials بهذه العملية لك. يعمل Ngrok كخدمة ، بمجرد أن يصبح جاهزًا rasa-credentials يدعو واجهة برمجة تطبيقات NGROK المحلية لاسترداد عنوان URL للنفق وتحديث ملفات credentials.ymlactions.py pgvector هو مكون إضافي لـ Postgres وتم تثبيته تلقائيًا لتمكين تخزين وحساب أنواع بيانات المتجه. لدينا تطبيقنا الخاص لأن فئة Langchain PGVector ليست مرنة للتكيف مع مخططنا ونريد المرونة.
/docker-entry-initdb.d إذا لم تتم تهيئة قاعدة البيانات. في postgres dockerfile ، نقوم بنسخ create_db.sh الذي ينشئ DB والمستخدم لقاعدة البيانات الخاصة بناmodels في Makefile ، نقوم بتشغيل models.py في حاوية API التي تنشئ الجداول من النماذج.enable_vector امتداد PGVector في قاعدة البيانات index.jsonGPTSimpleVectorIndex الأساسي للعثور على البيانات ذات الصلة وحقنها في مطالبة.out_of_scope ، استنادًا إلى القواعد action_gpt_fallbackActionGPTFallback خادم Fastapi APIبشكل عام ، تحقق من سجلات حاويات Docker عن طريق الانتقال ببساطة إلى http: // localhost: 9999/
تحقق دائمًا من أن Webhooks الخاص بك مع Ngrok و Telegram Match. ببساطة افعل هذا بواسطة
curl -sS " https://api.telegram.org/bot<your-bot-secret-token>/getWebhookInfo " | json_pp.. يجب أن تعيد هذا:
{
" ok " : true,
" result " : {
" url " : " https://b280-04-115-40-112.ngrok-free.app/webhooks/telegram/webhook " ,
" has_custom_certificate " : false,
" pending_update_count " : 0,
" max_connections " : 40,
" ip_address " : " 1.2.3.4 "
}
} .. الذي يجب أن يتطابق مع عنوان URL في ملف credentials.yml الخاص بك.

يبدو أنها تطابق. إذا لم يكن كذلك ، فأعد تشغيل كل شيء عن طريق الجري:
make restart@paulpierre `
مبروك ، كل قاعدتك تنتمي إلينا! Kthxbye
حقوق الطبع والنشر (ج) 2023 بول بيير. يتم منح الإذن بموجب هذا ، مجانًا ، لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة ("البرنامج") ، للتعامل في البرنامج دون تقييد ، بما في ذلك على سبيل المثال لا الحصر حقوق استخدام ، نسخ ، تعديل ، دمج ، ونشر وتوزيع و/أو بيع و/أو بيع نسخ من البرنامج ، والسماح للأشخاص الذين يتم تقديم البرنامج لهم للقيام بذلك ، وفقًا للشروط التالية: إشعار حقوق الطبع والنشر أعلاه ويتم تضمين إشعار الإذن هذا في جميع النسخ أو أجزاء كبيرة من البرنامج. يتم توفير البرنامج "كما هو" ، دون ضمان من أي نوع ، صريح أو ضمني ، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق واللياقة لغرض معين وعدم التعبير. لا يجوز بأي حال من الأحوال أن يتحمل المؤلفون أو حاملي حقوق الطبع والنشر مسؤولية أي مطالبة أو أضرار أو مسؤولية أخرى ، سواء في إجراء عقد أو أضرار أو غير ذلك ، ناشئة عن البرامج أو خارجها أو الاستخدام أو غيرها برمجة.