#!/usr/bin/env python """ Script để test RAG pipeline với data mới. """ import os import sys from pathlib import Path ROOT_DIR = Path(__file__).resolve().parents[2] BACKEND_DIR = ROOT_DIR / "backend" HUE_PORTAL_DIR = BACKEND_DIR / "hue_portal" for path in (HUE_PORTAL_DIR, BACKEND_DIR, ROOT_DIR): if str(path) not in sys.path: sys.path.insert(0, str(path)) os.environ.setdefault("DJANGO_SETTINGS_MODULE", "hue_portal.hue_portal.settings") import django django.setup() from hue_portal.core.rag import rag_pipeline from hue_portal.chatbot.chatbot import Chatbot def test_rag_procedure(): """Test RAG với queries về procedure.""" print("="*60) print("Test RAG Pipeline - Procedure") print("="*60) test_queries = [ "Làm thủ tục cư trú cần gì?", "Thủ tục đăng ký thường trú", "Làm thủ tục PCCC như thế nào?", "Thủ tục ANTT cần giấy tờ gì?", ] for query in test_queries: print(f"\n📝 Query: {query}") try: result = rag_pipeline(query, 'search_procedure', top_k=3) print(f" ✅ Results: {result['count']}") print(f" ✅ Confidence: {result['confidence']:.4f}") if result['count'] > 0: print(f" ✅ Answer preview: {result['answer'][:150]}...") print(f" ✅ Documents:") for i, doc in enumerate(result['documents'][:3], 1): print(f" {i}. {doc.title} - {doc.domain}") else: print(" ⚠️ No results found") except Exception as e: print(f" ❌ Error: {e}") def test_rag_advisory(): """Test RAG với queries về advisory.""" print("\n" + "="*60) print("Test RAG Pipeline - Advisory") print("="*60) test_queries = [ "Cảnh báo lừa đảo giả danh công an", "Lừa đảo mạo danh cán bộ", "Cảnh giác lừa đảo online", ] for query in test_queries: print(f"\n📝 Query: {query}") try: result = rag_pipeline(query, 'search_advisory', top_k=3) print(f" ✅ Results: {result['count']}") print(f" ✅ Confidence: {result['confidence']:.4f}") if result['count'] > 0: print(f" ✅ Answer preview: {result['answer'][:150]}...") print(f" ✅ Documents:") for i, doc in enumerate(result['documents'][:3], 1): print(f" {i}. {doc.title}") else: print(" ⚠️ No results found") except Exception as e: print(f" ❌ Error: {e}") def test_chatbot_integration(): """Test chatbot integration.""" print("\n" + "="*60) print("Test Chatbot Integration") print("="*60) chatbot = Chatbot() test_queries = [ "Làm thủ tục cư trú cần gì?", "Cảnh báo lừa đảo giả danh công an", "Thủ tục PCCC như thế nào?", ] for query in test_queries: print(f"\n📝 Query: {query}") try: response = chatbot.generate_response(query) print(f" ✅ Intent: {response.get('intent', 'N/A')}") print(f" ✅ Confidence: {response.get('confidence', 0):.4f}") print(f" ✅ Results: {response.get('count', 0)}") if response.get('results'): first_result = response['results'][0].get('data', {}) print(f" ✅ First result: {first_result.get('title', 'N/A')}") print(f" ✅ Message preview: {response.get('message', '')[:150]}...") except Exception as e: print(f" ❌ Error: {e}") import traceback traceback.print_exc() def main(): print("="*60) print("RAG Pipeline & Chatbot Integration Test") print("="*60) # Test RAG pipeline test_rag_procedure() test_rag_advisory() # Test chatbot integration test_chatbot_integration() print("\n" + "="*60) print("Test Complete") print("="*60) if __name__ == "__main__": main()