import os import sys import asyncio import logging # Fix: ZMQ + CUDA conflict on Windows (STATUS_ACCESS_VIOLATION) os.environ['CUDA_MODULE_LOADING'] = 'EAGER' # Add project root to sys.path so we can import app sys.path.append(os.path.dirname(os.path.abspath(__file__))) from app.services.rag_service import RAGService logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s") logger = logging.getLogger(__name__) async def test_retrieval(): logger.info("Initializing RAGService...") service = RAGService() logger.info(f"Target turbovec index is: {service._tv_path}") queries = [ "พระสุทินเสพเมถุนธรรมกับอดีตภรรยา 3 ครั้ง เพราะยังไม่มีสิกขาบท", "พระวินัยบัญญัติเรื่องการเสพเมถุนของพระภิกษุมีโทษอย่างไร" ] for i, q in enumerate(queries, 1): logger.info(f"\n--- Query {i}: '{q}' ---") try: result = await service.query(q, n_results=3, threshold=0.1) print("\nRetrieved Context:") print(result) print("-" * 60) except Exception as e: logger.error(f"Failed to query: {e}") import traceback traceback.print_exc() if __name__ == "__main__": asyncio.run(test_retrieval())