|
|
""" |
|
|
Test script for RAG Chain |
|
|
Runs end-to-end tests with sample queries |
|
|
""" |
|
|
|
|
|
import os |
|
|
import logging |
|
|
from dotenv import load_dotenv |
|
|
|
|
|
|
|
|
load_dotenv() |
|
|
|
|
|
from module_a.rag_chain import LegalRAGChain |
|
|
from module_a.config import LOG_LEVEL, LOG_FORMAT |
|
|
|
|
|
|
|
|
logging.basicConfig(level=LOG_LEVEL, format=LOG_FORMAT) |
|
|
logger = logging.getLogger(__name__) |
|
|
|
|
|
|
|
|
def main(): |
|
|
"""Run RAG chain tests""" |
|
|
print("=" * 80) |
|
|
print("Testing Nepal Justice Weaver - RAG Chain") |
|
|
print("=" * 80) |
|
|
|
|
|
|
|
|
api_key = os.getenv("MISTRAL_API_KEY") |
|
|
if not api_key: |
|
|
print("\n✗ Error: MISTRAL_API_KEY not found!") |
|
|
print("Please set it in .env file or environment variable.") |
|
|
print("Example: export MISTRAL_API_KEY='your_key_here'") |
|
|
return |
|
|
|
|
|
try: |
|
|
|
|
|
print("\nInitializing RAG Chain...") |
|
|
rag = LegalRAGChain() |
|
|
|
|
|
|
|
|
test_queries = [ |
|
|
"I am a single mother, how to get citizenship for my child?", |
|
|
"Can daughters inherit property like sons?", |
|
|
"What are the fundamental rights regarding equality?" |
|
|
] |
|
|
|
|
|
for query in test_queries: |
|
|
print(f"\n\n{'=' * 80}") |
|
|
print(f"QUERY: {query}") |
|
|
print(f"{'=' * 80}") |
|
|
|
|
|
result = rag.run(query) |
|
|
|
|
|
print(f"\nEXPLANATION:\n{result['explanation']}") |
|
|
|
|
|
print("\nSOURCES:") |
|
|
for source in result['sources']: |
|
|
print(f"- {source['section']} ({source['file']})") |
|
|
|
|
|
except Exception as e: |
|
|
logger.error(f"Test failed: {e}", exc_info=True) |
|
|
print(f"\n✗ Test failed: {e}") |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
main() |
|
|
|