chatbox / test_rag.py
anaspro
🤖 تحديث شامل: إضافة نظام RAG للدعم الفني
dbcf08f
raw
history blame
3.99 kB
"""
تطبيق بسيط لاختبار نظام RAG
"""
from simple_rag import SimpleRAG
import os
def interactive_search():
"""تطبيق تفاعلي للبحث"""
print("🤖 مرحباً بك في نظام RAG لشركة NBTEL")
print("=" * 50)
# تهيئة النظام
rag = SimpleRAG()
# تحميل البيانات
if not rag.load_index():
print("🔄 إنشاء فهرس جديد...")
file_path = "./data/nbtel_company_profile.md"
if os.path.exists(file_path):
documents = rag.load_markdown_file(file_path)
rag.add_documents(documents)
rag.build_index()
rag.save_index()
print("✅ تم إنشاء الفهرس بنجاح")
else:
print(f"❌ لم يتم العثور على ملف البيانات")
return
# عرض الإحصائيات
stats = rag.get_stats()
print(f"\n📊 الفهرس يحتوي على {stats['total_documents']} مستند")
print("\n💡 اكتب استفسارك أو 'exit' للخروج")
print("=" * 50)
while True:
try:
# الحصول على الاستعلام
query = input("\n🔍 استفسارك: ").strip()
if query.lower() in ['exit', 'خروج', 'quit']:
print("👋 شكراً لاستخدام النظام!")
break
if not query:
continue
# البحث
print("\n🔄 جاري البحث...")
context = rag.get_context_for_query(query, max_results=3)
print("\n📋 النتائج:")
print("-" * 30)
print(context)
print("-" * 30)
except KeyboardInterrupt:
print("\n👋 شكراً لاستخدام النظام!")
break
except Exception as e:
print(f"❌ حدث خطأ: {str(e)}")
def test_common_questions():
"""اختبار الأسئلة الشائعة"""
print("🧪 اختبار الأسئلة الشائعة")
print("=" * 50)
rag = SimpleRAG()
if not rag.load_index():
print("❌ لا يوجد فهرس محفوظ. قم بتشغيل النظام أولاً")
return
questions = [
"ما هي خدمات شركة NBTEL؟",
"كيف أتواصل مع الدعم الفني؟",
"ما هي أسعار باقات الإنترنت؟",
"عندي مشكلة الواي فاي ما يظهر",
"كيف أغير كلمة سر الراوتر؟",
"هل يمكن نقل الخدمة لعنوان جديد؟",
"وين مقر الشركة؟",
"شنو تاريخ الشركة؟",
"عندي انقطاعات بالإنترنت"
]
for i, question in enumerate(questions, 1):
print(f"\n❓ سؤال {i}: {question}")
context = rag.get_context_for_query(question, max_results=2)
# عرض أول 200 حرف من النتيجة
preview = context[:200] + "..." if len(context) > 200 else context
print(f"📋 النتيجة: {preview}")
print("-" * 40)
def main():
"""القائمة الرئيسية"""
while True:
print("\n🤖 نظام RAG لشركة NBTEL")
print("=" * 30)
print("1. البحث التفاعلي")
print("2. اختبار الأسئلة الشائعة")
print("3. الخروج")
choice = input("\nاختر خيار (1-3): ").strip()
if choice == "1":
interactive_search()
elif choice == "2":
test_common_questions()
elif choice == "3":
print("👋 وداعاً!")
break
else:
print("❌ خيار غير صحيح")
if __name__ == "__main__":
main()