CoolFace
Apppublic

Zeri00/Cogni-Chat-document-reader-v2

sourceHugging Facemitupdated 11mo agoView on Hugging Face
1likes
test_dependencies.py76 linesDownload Raw Back to root
1import os2import sys3 4print("CogniChat Dependencies & PDF Handling Test")5 6# Test imports7try:8    print("\nTesting core imports...")9    from langchain_community.embeddings import HuggingFaceEmbeddings10    from langchain_community.retrievers import BM25Retriever11    from langchain.text_splitter import RecursiveCharacterTextSplitter12    from langchain_core.documents import Document13    print("Core LangChain imports successful!")14    15except ImportError as e:16    print(f"Import error: {e}")17    if "rank_bm25" in str(e):18        print("Missing dependency: pip install rank-bm25==0.2.2")19    sys.exit(1)20try:21    print("\nTesting PDF loading capabilities...")22    try:23        from langchain_community.document_loaders import PyPDFLoader24        print("PyPDFLoader available")25    except ImportError:26        print("PyPDFLoader not available")27 28    try:29        import fitz30        print("PyMuPDF (fitz) available - can handle corrupted PDFs")31    except ImportError:32        print("PyMuPDF (fitz) not available")33    34    try:35        import pdfplumber36        print("pdfplumber available - additional PDF parsing method")37    except ImportError:38        print("pdfplumber not available")39        40except Exception as e:41    print(f"Error testing PDF capabilities: {e}")42try:43    print("\nTesting BM25 Retriever...")44    45    test_docs = [46        Document(page_content="This is the first test document about machine learning."),47        Document(page_content="This is the second document discussing natural language processing."),48        Document(page_content="The third document covers artificial intelligence topics."),49    ]50    51    bm25_retriever = BM25Retriever.from_documents(test_docs)52    bm25_retriever.k = 253    query = "machine learning"54    results = bm25_retriever.get_relevant_documents(query)55    print(f"BM25 retriever created and tested successfully!")56    print(f"Retrieved {len(results)} documents for query: '{query}'")57    58except Exception as e:59    print(f"✗ Error testing BM25 retriever: {e}")60    import traceback61    traceback.print_exc()62    sys.exit(1)63 64print("\nAll tests completed successfully!")65print("\nThe application should now handle:")66print("  • Regular file uploads and processing")67print("  • Corrupted PDF files with multiple fallback methods")68print("  • BM25 and FAISS hybrid retrieval")69print("  • Proper error messages for failed file processing")70print("\nMake sure to install all dependencies with:")71print("  pip install -r requirements.txt")72 73print("\nKey Dependencies Added/Updated")74print("  • rank-bm25==0.2.2 (for BM25 retrieval)")75print("  • pymupdf==1.23.26 (PDF fallback method)")76print("  • pdfplumber==0.10.3 (additional PDF parsing)")