| |
| """ |
| Phase 2: Smoke Tests for HF Vision Integration |
| Author: @mangubee |
| Date: 2026-01-11 |
| |
| Quick validation that HF vision works before GAIA evaluation. |
| """ |
|
|
| import os |
| import sys |
| import logging |
| from pathlib import Path |
|
|
| |
| sys.path.insert(0, str(Path(__file__).parent.parent)) |
|
|
| from dotenv import load_dotenv |
| load_dotenv() |
|
|
| |
| os.environ["LLM_PROVIDER"] = "huggingface" |
|
|
| from src.tools.vision import analyze_image |
|
|
| |
| |
| |
| TEST_IMAGE = "test/fixtures/test_image_red_square.jpg" |
| logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") |
| logger = logging.getLogger(__name__) |
|
|
| |
| |
| |
|
|
| def run_smoke_test(): |
| """Run single smoke test: simple image description.""" |
| logger.info("=" * 60) |
| logger.info("PHASE 2: SMOKE TEST - HF Vision Integration") |
| logger.info("=" * 60) |
| logger.info(f"Test image: {TEST_IMAGE}") |
| logger.info(f"Provider: {os.getenv('LLM_PROVIDER')}") |
| logger.info(f"Model: {os.getenv('HF_VISION_MODEL', 'google/gemma-3-27b-it:scaleway')}") |
| logger.info("=" * 60) |
|
|
| try: |
| result = analyze_image(TEST_IMAGE, "What is in this image?") |
| |
| logger.info("\n✅ SMOKE TEST PASSED") |
| logger.info("-" * 60) |
| logger.info(f"Model used: {result['model']}") |
| logger.info(f"Answer: {result['answer'][:200]}...") |
| logger.info("-" * 60) |
| return True |
|
|
| except Exception as e: |
| logger.error(f"\n❌ SMOKE TEST FAILED: {e}") |
| return False |
|
|
| if __name__ == "__main__": |
| success = run_smoke_test() |
| sys.exit(0 if success else 1) |
|
|