البحث المدعوم من الجيل المعزز للاسترجاع (RAG).
يقوم txtchat ببناء الجيل المعزز للاسترجاع (RAG) وتطبيقات البحث التي تعمل بنموذج اللغة.
أدى ظهور نماذج اللغات الكبيرة (LLMs) إلى إعادة تصور البحث. يمكن للبحث المدعوم من LLM أن يفعل المزيد. بدلاً من مجرد إعادة النتائج، يمكن للبحث الآن استخراج المحتوى وتلخيصه وترجمته وتحويله إلى إجابات.
يضيف txtchat مجموعة من الوكلاء الأذكياء المتاحين للتكامل مع منصات المراسلة. يرتبط هؤلاء الوكلاء أو الأشخاص بحساب تلقائي ويستجيبون للرسائل باستجابات مدعومة بالذكاء الاصطناعي. يمكن أن يستخدم سير العمل نماذج اللغة الكبيرة (LLMs) أو النماذج الصغيرة أو كليهما.
تم إنشاء txtchat باستخدام Python 3.8+ وtxtai.
أسهل طريقة للتثبيت هي عبر النقطة وPyPI
pip install txtchat
يمكنك أيضًا تثبيت txtchat مباشرة من GitHub. يوصى باستخدام بيئة Python الافتراضية.
pip install git+https://github.com/neuml/txtchat
بايثون 3.8+ مدعوم
راجع هذا الارتباط للمساعدة في حل مشكلات التثبيت الخاصة بالبيئة.
تم تصميم txtchat وسيدعم عددًا من منصات المراسلة. حاليًا، Rocket.Chat هو النظام الأساسي الوحيد المدعوم نظرًا لإمكانية تثبيته في بيئة محلية إلى جانب كونه مرخصًا من معهد ماساتشوستس للتكنولوجيا. أسهل طريقة لبدء مثيل Rocket.Chat محلي هي باستخدام Docker Compose. انظر هذه التعليمات للمزيد.
إن توسيع txtchat إلى منصات إضافية يحتاج فقط إلى فئة فرعية جديدة للوكيل لتلك المنصة.
الشخصية عبارة عن مزيج من وكيل الدردشة وسير العمل الذي يحدد نوع الاستجابات. يرتبط كل وكيل بحساب في منصة المراسلة. إن سير عمل الشخصية لا يعتمد على منصة المراسلة. يحتوي مستودع txtchat-persona على قائمة بسير عمل الشخصية القياسية.
راجع دليل الأمثلة للحصول على تكوينات إضافية للشخصية وسير العمل.
يوضح الأمر التالي كيفية بدء شخصية txtchat.
# Set to server URL, this is default when running local
export AGENT_URL=ws://localhost:3000/websocket
export AGENT_USERNAME=<Rocket Chat User>
export AGENT_PASSWORD=<Rocket Chat User Password>
# YAML is loaded from Hugging Face Hub, can also reference local path
python -m txtchat.agent wikitalk.yml
هل تريد إضافة شخصية جديدة؟ ما عليك سوى إنشاء سير عمل txtai وحفظه في ملف YAML.
فيما يلي قائمة بمقاطع فيديو YouTube التي توضح كيفية عمل txtchat. تقوم مقاطع الفيديو هذه بتشغيل سلسلة من الاستعلامات باستخدام شخصية Wikitalk. Wikitalk عبارة عن مزيج من فهرس تضمينات ويكيبيديا ومطالبة LLM للإجابة على الأسئلة.
تعرض كل إجابة مرجعًا مرتبطًا بالمصدر الذي جاءت منه البيانات. سيقول Wikitalk "ليس لدي بيانات حول ذلك" عندما لا يكون لديه إجابة.
محادثة مع Wikitalk حول التاريخ.
الحديث عن الرياضة.
أسئلة فنية وثقافية.
دعونا نختبر Wikitalk حول العلوم.
ليست كل سير العمل تحتاج إلى LLM. هناك الكثير من النماذج الصغيرة الرائعة المتاحة لأداء مهمة محددة. تقوم شخصية الملخص ببساطة بقراءة عنوان URL للإدخال وتلخيص النص.
مثل الشخصية الموجزة، يعد السيد فرينش شخصية بسيطة تترجم نص الإدخال إلى الفرنسية.
هل تريد ربط txtchat ببياناتك الخاصة؟ كل ما عليك فعله هو إنشاء سير عمل txtai. دعنا نستعرض مثالًا لبناء سير عمل فهرسة Hacker News وشخصية txtchat.
أولاً، سنقوم بتعريف سير عمل الفهرسة وبناء الفهرس. ويتم ذلك من خلال سير العمل من أجل الراحة. وبدلاً من ذلك، يمكن أن يكون برنامج Python الذي ينشئ فهرس التضمينات من مجموعة البيانات الخاصة بك. يوجد أكثر من 50 نموذجًا لدفتر ملاحظات يغطي نطاقًا واسعًا من الطرق لإدخال البيانات إلى txtai. هناك أيضًا أمثلة لسير العمل يمكن تنزيلها من Hugging Face Space.
path : /tmp/hn
embeddings :
path : sentence-transformers/all-MiniLM-L6-v2
content : true
tabular :
idcolumn : url
textcolumns :
- title
workflow :
index :
tasks :
- batch : false
extract :
- hits
method : get
params :
tags : null
task : service
url : https://hn.algolia.com/api/v1/search?hitsPerPage=50
- action : tabular
- action : index
writable : true
يقوم سير العمل هذا بتحليل خلاصة الصفحة الأولى لـ Hacker News وإنشاء فهرس التضمينات في المسار /tmp/hn
.
قم بتشغيل سير العمل مع ما يلي.
from txtai . app import Application
app = Application ( "index.yml" )
list ( app . workflow ( "index" , [ "front_page" ]))
سنقوم الآن بتعريف سير عمل الدردشة وتشغيله كوكيل.
path : /tmp/hn
writable : false
extractor :
path : google/flan-t5-xl
output : flatten
workflow :
search :
tasks :
- task : txtchat.task.Question
action : extractor
python -m txtchat.agent query.yml
دعونا نتحدث إلى هاكر نيوز!
كما ترون، Hacker News هو مصدر بيانات شديد الرأي!
يعد الحصول على الإجابات أمرًا رائعًا، لكن القدرة على الحصول على إجابات من حيث أتت هي الأفضل. لنقم ببناء سير عمل يضيف رابطًا مرجعيًا لكل إجابة.
path : /tmp/hn
writable : false
extractor :
path : google/flan-t5-xl
output : reference
workflow :
search :
tasks :
- task : txtchat.task.Question
action : extractor
- task : txtchat.task.Answer