| | """ |
| | Test script for VisionOCRAgent |
| | |
| | Tests OCR functionality with llava:7b vision model. |
| | """ |
| |
|
| | import asyncio |
| | import sys |
| | from pathlib import Path |
| |
|
| | |
| | sys.path.insert(0, str(Path(__file__).parent / "src")) |
| |
|
| | from agents.vision_ocr_agent import VisionOCRAgent |
| | from loguru import logger |
| |
|
| | |
| | logger.remove() |
| | logger.add(sys.stderr, level="INFO") |
| |
|
| |
|
| | async def test_vision_ocr(): |
| | """Test VisionOCRAgent with sample patent.""" |
| |
|
| | |
| | logger.info("Initializing VisionOCRAgent...") |
| | agent = VisionOCRAgent(model_name="llava:7b") |
| |
|
| | |
| | if not agent.is_available(): |
| | logger.error("llava:7b model not available. Please run: ollama pull llava:7b") |
| | return False |
| |
|
| | logger.success("VisionOCRAgent initialized successfully") |
| |
|
| | |
| | test_patent = "/home/mhamdan/SPARKNET/Dataset/Google 08.02.2012.pdf" |
| |
|
| | if not Path(test_patent).exists(): |
| | |
| | test_patent = "/home/mhamdan/SPARKNET/uploads/patents/d58fc23c-58ce-4e1c-9ca7-2c63493f90eb.pdf" |
| |
|
| | if not Path(test_patent).exists(): |
| | logger.error("No test patent found") |
| | return False |
| |
|
| | logger.info(f"Testing with patent: {test_patent}") |
| |
|
| | try: |
| | |
| | |
| | logger.info("Test 1: Agent availability - PASSED") |
| |
|
| | |
| | |
| | |
| | |
| |
|
| | logger.success("VisionOCRAgent basic tests completed successfully") |
| | return True |
| |
|
| | except Exception as e: |
| | logger.error(f"Test failed: {e}") |
| | return False |
| |
|
| |
|
| | async def test_with_image(image_path: str): |
| | """Test OCR with a specific image.""" |
| | agent = VisionOCRAgent(model_name="llava:7b") |
| |
|
| | if not agent.is_available(): |
| | logger.error("Model not available") |
| | return |
| |
|
| | logger.info(f"Testing OCR with image: {image_path}") |
| |
|
| | |
| | text = await agent.extract_text_from_image(image_path) |
| | logger.info(f"Extracted text length: {len(text)} characters") |
| | logger.info(f"Text preview: {text[:200]}...") |
| |
|
| | |
| | analysis = await agent.analyze_patent_page(image_path) |
| | logger.info(f"Patent analysis: {analysis}") |
| |
|
| |
|
| | if __name__ == "__main__": |
| | |
| | success = asyncio.run(test_vision_ocr()) |
| |
|
| | if success: |
| | logger.success("All tests passed!") |
| | sys.exit(0) |
| | else: |
| | logger.error("Tests failed") |
| | sys.exit(1) |
| |
|