يمكنك الآن تضمين أجزاء كبيرة من النصوص في شخصيات الذكاء الاصطناعي الخاصة بك!
يقدم هذا فوائد متعددة:
-
يمكنك تقديم أجزاء كبيرة من النصوص إلى روبوتات الذكاء الاصطناعي المخصصة الخاصة بك والتي لا توجد في تدريب النماذج. (على سبيل المثال: وثائق التدريب الداخلية، التقارير الداخلية)
-
يمكنك تأريض الشخصية بشكل أفضل ببيانات ملموسة (حتى لو كانت موجودة في مجموعة تدريب النموذج) مما يمكن أن يساعد النموذج في الاستشهاد بالمعلومات المحددة بشكل صحيح وزيادة جودة النتائج.
لإضافة تحميلات:
-
قم بإنشاء شخصية جديدة باستخدام الواجهة
/admin/plugins/discourse-ai/ai-personas/. -
قم بتحميل ملفات النصوص التي ترغب في تضمينها في شخصيتك
قبل تحميل الملفات، يرجى إضافة الامتدادات ذات الصلة (
.mdو.txt) عبر إعداد الموقعauthorized extensionsحتى يمكن استخدامها بواسطة الشخصية
- قم بضبط خيارات الفهرسة حسب ما تراه مناسبًا
المتطلبات الأساسية
لكي تعمل الميزة، ستحتاج إلى تمكين ai_embeddings_enabled وتكوين ai_embeddings_model.
يدعم Discourse AI عددًا كبيرًا جدًا من نماذج التضمين.
يحصل عملاؤنا المستضافون على وصول مجاني إلى نموذج bge-large-en المتطور.
يمكن للمستضيفين الذاتيين أو الأشخاص الذين يرغبون في المزيد من الخيارات استضافة نموذج تضمين ذاتيًا أو استخدام نماذج من OpenAI و Google (Gemini) والمزيد.
هل هذا RAG؟
إن تنفيذ دعم التحميل الخاص بنا هو بالفعل توليد معزز بالاسترجاع.
بشكل عام، في كل مرة نكون على وشك أن نطلب من LLM الإجابة على سؤال مستخدم، نبحث عن معلومات ذات صلة عالية بناءً على النص الذي أدخلته ونحقنها في موجه النظام.
شرح خيارات الفهرسة المختلفة
ما هو الرمز المميز (token)؟ الرموز المميزة هي وحدات أولية تستخدمها نماذج اللغة الكبيرة لتقسيم النص. شرح مرئي رائع متاح على: https://platform.openai.com/tokenizer
يأتي تنفيذ تحميل Discourse AI مع المفاتيح التالية:
Upload Chunk Tokens: بعد تحميل الملفات، نقوم بتقسيمها إلى أجزاء. يتيح لك هذا التحكم في حجم الأجزاء. إذا كان الجزء كبيرًا جدًا بالنسبة لنموذج التضمين الخاص بك، فسيتم اقتطاع التضمين (سيتم التعامل مع جزء فقط من الرموز المميزة).
Upload Chunk Overlap Tokens: هذا هو عدد الرموز المميزة المضمنة من الجزء السابق في الجزء الحالي. كلما زاد هذا العدد، زادت المعلومات المكررة التي سيتم تخزينها في الفهرس الخاص بك.
Search Conversation Chunks: يتحكم هذا في عدد “الأجزاء” من الرموز المميزة التي سيتم تضمينها بشكل غير مشروط بناءً على الصلة في موجه الإكمال. كلما زاد العدد، زاد السياق الذي سيتم توفيره لـ LLM (وزادت تكلفة الاستدعاءات). على سبيل المثال: إذا تم تعيين هذا على 10 وكان Upload Chunk Tokens معينًا على 200، فسيكون لكل إكمال عبء إضافي قدره 2000 رمز مميز.
كيف يقوم Discourse AI بتقسيم أجزاء النصوص؟
يستخدم Discourse أداة تقسيم النصوص بالحروف التكرارية، والتي تحاول الاحتفاظ بالفقرات، ثم الأسطر، وأخيرًا الكلمات معًا عند التقسيم.
بالإضافة إلى ذلك، يمنحك Discourse تحكمًا إضافيًا في كيفية تقسيم النص الخاص بك.
يمكن استخدام الفاصل [[metadata YOUR METADATA HERE]] لتقسيم أجزاء كبيرة من النصوص وتمييز ما تغطيه كل قسم بشكل صحيح.
على سبيل المثال:
[[metadata about cats]]
a long story about cats
[[metadata about dogs]]
a long story about dogs
هذا يسمح لمستند نصي واحد بتغطية مجموعة واسعة من المحتوى ويحميك من “تلوث الأجزاء”. أنت تضمن أن البيانات المتعلقة بالقطط فقط سيتم تضمينها في أجزاء القطط والكلاب في أجزاء الكلاب.
يبدو الأمر معقدًا، كيف يمكنني تصحيح الأخطاء؟
يأتي Discourse AI مع إعداد الموقع ai bot debugging enabled groups، والمستخدمون في هذه المجموعة لديهم وصول إلى تصحيح أخطاء الذكاء الاصطناعي:
يمكن لشاشات تصحيح أخطاء الذكاء الاصطناعي مساعدتك في الحصول على نافذة على المعلومات التي نرسلها إلى الذكاء الاصطناعي.
مدخلات سيئة - مخرجات سيئة إذا قدمت معلومات غير مفيدة أو غامضة لنموذج لغوي كبير، فلا يمكنه تحويلها بشكل سحري إلى معلومات مفيدة
يمكن أن تساعدك هذه الشاشة في تحديد حجم الأجزاء التي يجب أن تكون عليها بشكل أفضل أو ما إذا كنت تقوم بتضمين عدد كبير جدًا أو قليل جدًا من الأجزاء.
هل هذا يعمل حقًا؟
مثال واقعي هو تقسيم وثائق HAProxy وتغذيتها في شخصية:
System Prompt:
أنت روبوت متخصص في الإجابة على الأسئلة حول HAProxy.
أنت تعيش على منتدى Discourse و تعرض تنسيق Markdown الخاص بـ Discourse.
عند تقديم الإجابات، حاول دائمًا تضمين روابط مرة أخرى إلى وثائق HAProxy.
على سبيل المثال، هذه هي الطريقة التي ستربط بها بالقسم 10.1.1. ضع في اعتبارك أنه يمكنك الارتباط بقسم أو خيار داخله.
[fcgi-app](https://www.haproxy.com/documentation/haproxy-configuration-manual/latest/#10.1.1-fcgi-app)كن كريمًا في الروابط، فهي مفيدة جدًا.
محتويات التحميل:
processed-haproxy-2.txt (1.2 ميجابايت)
والذي تم إنشاؤه باستخدام البرنامج النصي التالي:
file_content = File.read("configuration.txt")
title = nil
body = nil
last_line = nil
sections = []
file_content.each_line do |line|
if line.strip.match?(/^[-]+$/)
section_number, title = title.to_s.split(" ", 2)
sections << {
section_number: section_number,
title: title,
body: body.to_s.strip
}
title = last_line
body = nil
last_line = nil
else
body = body.to_s + last_line.to_s
last_line = line
end
end
section_number, title = title.to_s.split(" ", 2)
sections << { section_number: section_number, title: title, body: body }
section_names =
sections.map { |section| [section[:section_number], section[:title]] }.to_h
sections[4..-1].each do |section|
title = []
current = +" "
section_number = section[:section_number]
section_number
.split(".")
.each do |number|
current << number
current << "."
title << section_names[current].to_s.strip
end
title = title.join(" - ")
body = section[:body]
next if body.strip.empty?
puts "[[metadata section=\"#{section_number}\" title=\"#{title.strip}\"]]"
puts body
end
يمكن لكل من Claude Opus و GPT-4 أن يفشلا بشكل كبير مع الأسئلة المعقدة. هذا أمر مفهوم لأنهما يتغذيان على جميع الرموز المميزة على الإنترنت، لذا فإن 50 نسخة مختلفة من وثائق HAProxy وجميع المناقشات حولها تدخل في الدماغ، مما قد يجعله مرتبكًا جدًا:
أمثلة على GPT-4 و Claude 3 Opus مرتبكين
كلاهما ليسا جيدين تقريبًا مثل الإجابة المضبوطة التي يوفرها Discourse RAG:
أمثلة على GPT-4 و Claude Opus أقل ارتباكًا
المستقبل
نتطلع إلى تلقي ملاحظات حول بعض الأفكار للمستقبل والتي يمكن أن تشمل:
- دعم PDF/DOCX/XLS وما إلى ذلك، حتى لا تحتاج إلى التحويل إلى نص
- تقسيم أكثر ذكاءً للكود المصدري / HTML
- تحويلات ذكية للبيانات الواردة قبل الفهرسة
أخبرنا برأيك!
شكر كبير لـ @Roman على إطلاق هذه الميزة ![]()



