Skip to main content
Component: VLMClient Module: gaia.llm.vlm_client Import: from gaia.llm import VLMClient

Overview

VLMClient provides Vision-Language Model capabilities for extracting text from images using Lemonade server. It handles model loading/unloading, image-to-markdown conversion, and state tracking for VLM processing with automatic model downloading and context manager support. Key Features:
  • Image-to-text extraction via VLM
  • Automatic model loading and downloading
  • Base64 image encoding
  • Batch processing for multiple images
  • Context manager for resource cleanup
  • Integration with LemonadeClient

Requirements

Functional Requirements

  1. Model Management
    • Load VLM model (Gemma-4-E4B-it-GGUF)
    • Automatic model download via Lemonade
    • Model availability checking
    • State tracking (loaded/unloaded)
  2. Image Extraction
    • extract_from_image() - Extract text from single image
    • extract_from_page_images() - Batch extraction from page
    • Custom extraction prompts
    • Progress logging
  3. Image Format Support
    • PNG images (base64 encoded)
    • JPEG images (base64 encoded)
    • Automatic image optimization (handled by caller)
    • Size and dimension tracking
  4. Resource Management
    • Context manager support (with VLMClient())
    • Cleanup after processing
    • State reset
  5. Error Handling
    • Model availability errors
    • Loading failures
    • Extraction failures
    • Connection errors

Non-Functional Requirements

  1. Performance
    • 300-second timeout for VLM image extraction (5 minutes for complex forms)
    • 60-second timeout for model loading
    • Low temperature (0.1) for accuracy
    • Up to 2048 tokens per extraction
    • Progress logging for user feedback
  2. Reliability
    • Automatic model download (may take hours)
    • Graceful error handling
    • Helpful error messages
    • Connection retry via LemonadeClient
  3. Usability
    • Simple initialization
    • Auto-load option
    • Clear progress messages
    • Context manager pattern

API Specification

File Location

Public Interface


Implementation Details

Model Loading

Image Extraction

Server URL Parsing


Testing Requirements

Unit Tests

File: tests/llm/test_vlm_client.py

Integration Tests


Dependencies

Required Packages

Import Dependencies


Usage Examples

Example 1: Basic Image Extraction

Example 3: Batch Processing

Example 4: Custom Extraction Prompt

Example 5: Remote Lemonade Server

Example 6: Error Handling


Documentation Updates Required

docs/sdk/sdks/vlm.mdx

Add to Vision Section:

VLMClient Technical Specification