Spaces:
Sleeping
Sleeping
| # Experimental code for testing RAG pipeline | |
| import sys | |
| import os | |
| sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | |
| from app.rag_pipeline import RAGPipeline | |
| from app.document_processor import DocumentProcessor | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| # Example 1: Simple text test | |
| def test_simple_query(): | |
| processor = DocumentProcessor() | |
| test_doc = """Python is a high-level programming language. | |
| It was created by Guido van Rossum in 1991. | |
| Python is known for its simple syntax.""" | |
| chunks = processor._chunk_text("test_doc.txt", test_doc, doc_type="txt") | |
| # Initialize RAG | |
| rag_pipeline = RAGPipeline() | |
| rag_pipeline.add_documents(chunks) | |
| # Query | |
| question = "What is python known for?" | |
| result = rag_pipeline.query(question) | |
| print(f"Question: {question}") | |
| print(f"Answer: {result['answer']}") | |
| print("\n" + "=" * 50 + "\n") | |
| # Example 2: Testing with actual document | |
| def test_with_pdf(): | |
| processor = DocumentProcessor() | |
| rag_pipeline = RAGPipeline() | |
| # Process a PDF file | |
| pdf_path = "path/to/your/test.pdf" # Replace with actual path | |
| if os.path.exists(pdf_path): | |
| chunks = processor.process_pdf(pdf_path) | |
| rag_pipeline.add_documents(chunks) | |
| question = "What is the main topic of this document?" | |
| result = rag_pipeline.query(question) | |
| print(f"Question: {question}") | |
| print(f"Answer: {result['answer']}") | |
| else: | |
| print(f"PDF not found: {pdf_path}") | |
| # Example 3: Interactive testing | |
| def interactive_test(): | |
| processor = DocumentProcessor() | |
| rag_pipeline = RAGPipeline() | |
| # Add some test content | |
| test_doc = """Artificial Intelligence (AI) is transforming the world. | |
| Machine learning is a subset of AI that focuses on learning from data. | |
| Deep learning uses neural networks with multiple layers. | |
| Natural Language Processing (NLP) helps computers understand human language.""" | |
| chunks = processor._chunk_text("ai_basics.txt", test_doc, doc_type="txt") | |
| rag_pipeline.add_documents(chunks) | |
| print("Interactive RAG Testing") | |
| print("Type 'quit' to exit\n") | |
| while True: | |
| question = input("Your question: ") | |
| if question.lower() == "quit": | |
| break | |
| try: | |
| result = rag_pipeline.query(question) | |
| print(f"Answer: {result['answer']}\n") | |
| except ValueError as e: | |
| print(f"Error: {e}\n") | |
| break | |
| if __name__ == "__main__": | |
| print("Running RAG Pipeline Experiments\n") | |
| # Run simple test | |
| test_simple_query() | |
| # Uncomment to run other tests | |
| # test_with_pdf() | |
| # interactive_test() | |