CoolFace
Apppublic

omkarkudalkar23/citationEdge

sourceHugging Faceupdated 2mo agoView on Hugging Face
2likes
test_dummy_data.py167 linesDownload Raw Back to root
1#!/usr/bin/env python32"""3Test script: Feed dummy data and verify the system is working4"""5 6import asyncio7import sys8import io9 10# Fix encoding for Windows11if sys.platform == 'win32':12    sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')13 14from services.neo4j_service import Neo4jService15from services.lancedb_service import LanceDBService16from services.vector_store_service import VectorStoreService17 18async def test_dummy_data():19    print("=" * 70)20    print("TESTING CITATIONEDGE WITH DUMMY DATA")21    print("=" * 70)22    print()23 24    # Initialize services25    print("[1/5] Initializing services...")26    try:27        neo4j = Neo4jService()28        lancedb = LanceDBService()29        vector_store = VectorStoreService()30        print("      ✓ Services initialized")31    except Exception as e:32        print(f"      ✗ Failed: {str(e)[:100]}")33        return34 35    print()36    print("[2/5] Creating dummy document in Neo4j...")37    try:38        # Create a dummy document39        doc_id = "test_doc_001"40        query = f"""41        CREATE (d:Document {{42            doc_id: '{doc_id}',43            title: 'Test Research Paper on AI',44            authors: 'John Doe, Jane Smith',45            year: 2026,46            abstract: 'A comprehensive study on artificial intelligence and machine learning'47        }})48        RETURN d49        """50        result = neo4j.run(query)51        print(f"      ✓ Document created: {doc_id}")52    except Exception as e:53        print(f"      ✗ Failed: {str(e)[:100]}")54        return55 56    print()57    print("[3/5] Creating dummy sections...")58    try:59        sections = [60            {"section_id": "sec_001", "title": "Introduction", "text": "This paper introduces a novel approach to deep learning"},61            {"section_id": "sec_002", "title": "Methods", "text": "We used transformer-based models for our experiments"},62            {"section_id": "sec_003", "title": "Results", "text": "Our model achieved 95% accuracy on the benchmark dataset"}63        ]64 65        for sec in sections:66            query = f"""67            MATCH (d:Document {{doc_id: '{doc_id}'}})68            CREATE (s:Section {{69                section_id: '{sec['section_id']}',70                title: '{sec['title']}',71                text: '{sec['text']}',72                page: 173            }})74            CREATE (d)-[:HAS_SECTION]->(s)75            RETURN s76            """77            result = neo4j.run(query)78 79        print(f"      ✓ Created {len(sections)} sections")80    except Exception as e:81        print(f"      ✗ Failed: {str(e)[:100]}")82        return83 84    print()85    print("[4/5] Creating dummy claims...")86    try:87        claims = [88            {"claim_id": "claim_001", "text": "Transformer models achieve 95% accuracy on GLUE benchmark", "confidence": 0.92},89            {"claim_id": "claim_002", "text": "Attention mechanism improves model performance", "confidence": 0.88},90            {"claim_id": "claim_003", "text": "Our method reduces training time by 40%", "confidence": 0.85}91        ]92 93        for claim in claims:94            query = f"""95            MATCH (d:Document {{doc_id: '{doc_id}'}})96            CREATE (c:Claim {{97                claim_id: '{claim['claim_id']}',98                text: '{claim['text']}',99                confidence: {claim['confidence']},100                verifiable: true,101                novelty_position: 'incremental',102                evidence_count: 2103            }})104            CREATE (d)-[:HAS_CLAIM]->(c)105            RETURN c106            """107            result = neo4j.run(query)108 109        print(f"      ✓ Created {len(claims)} claims")110    except Exception as e:111        print(f"      ✗ Failed: {str(e)[:100]}")112        return113 114    print()115    print("[5/5] Verifying data in Neo4j...")116    try:117        # Verify documents118        doc_count_query = "MATCH (d:Document) RETURN count(d) AS count"119        doc_count = neo4j.run(doc_count_query)[0]['count']120 121        # Verify sections122        sec_count_query = "MATCH (s:Section) RETURN count(s) AS count"123        sec_count = neo4j.run(sec_count_query)[0]['count']124 125        # Verify claims126        claim_count_query = "MATCH (c:Claim) RETURN count(c) AS count"127        claim_count = neo4j.run(claim_count_query)[0]['count']128 129        print(f"      ✓ Documents in database: {doc_count}")130        print(f"      ✓ Sections in database: {sec_count}")131        print(f"      ✓ Claims in database: {claim_count}")132 133        # Get sample data134        sample_query = """135        MATCH (d:Document)-[:HAS_CLAIM]->(c:Claim)136        RETURN d.title AS document, c.text AS claim, c.confidence AS confidence137        LIMIT 3138        """139        samples = neo4j.run(sample_query)140 141        print()142        print("Sample data from database:")143        print("-" * 70)144        for i, sample in enumerate(samples, 1):145            print(f"{i}. Document: {sample['document']}")146            print(f"   Claim: {sample['claim']}")147            print(f"   Confidence: {sample['confidence']}")148            print()149 150    except Exception as e:151        print(f"      ✗ Failed: {str(e)[:100]}")152        return153 154    print()155    print("=" * 70)156    print("TEST COMPLETE - SYSTEM IS WORKING!")157    print("=" * 70)158    print()159    print("Next steps:")160    print("1. Open Neo4j Browser: http://localhost:7474")161    print("2. Login with credentials from .env")162    print("3. Run query: MATCH (d:Document)-[:HAS_CLAIM]->(c:Claim) RETURN *")163    print()164 165if __name__ == "__main__":166    asyncio.run(test_dummy_data())167