omkarkudalkar23/citationEdge
2
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 