Vision Agent

Specialized agent for image analysis, description, comparison, and text extraction using AI vision models.

Analyse, describe, compare, and read text from images with the VisionAgent and its dedicated methods.

python
from praisonaiagents import VisionAgent

agent = VisionAgent()

result = agent.analyze("https://example.com/image.jpg")
print(result)
Diagram

Vision Agent

📋 Image

🤖 VisionAgent

🧠 Vision Model

✅ Analysis

How It Works

Diagram
Vision ModelVisionAgentUserVision ModelVisionAgentUseranalyze(image_url)Send image + promptDescription / comparison / textAnalysis result

Quick Start

  1. Install
    bash
    pip install praisonaiagents litellm
    export OPENAI_API_KEY="your-key"
  2. Create Agent
    python
    from praisonaiagents import VisionAgent
    
    agent = VisionAgent()
  3. Analyze Image
    python
    result = agent.analyze("https://example.com/image.jpg")
    print(result)

Methods

analyze()

Analyze an image with optional custom prompt.

python
from praisonaiagents import VisionAgent

agent = VisionAgent()

# Basic analysis
result = agent.analyze("image.jpg")

# With custom prompt
result = agent.analyze(
    "chart.png",
    prompt="What data does this chart show?"
)
image str

Image URL or local file path

prompt str

Custom analysis prompt

detail str

Detail level: low, high, or auto

describe()

Generate detailed description of an image.

python
description = agent.describe("photo.jpg")
print(description)

Returns comprehensive description including: – Main subject and composition – Colors, lighting, mood – Background and setting – Text, symbols, notable details

compare()

Compare multiple images.

python
comparison = agent.compare([
    "before.jpg",
    "after.jpg"
], prompt="What changed?")
images List[str]

List of image URLs or paths (minimum 2)

extract_text()

Extract text from images (OCR-like).

python
text = agent.extract_text("document.png", detail="high")
print(text)

Configuration

Basic

python
from praisonaiagents import VisionAgent

agent = VisionAgent(
    name="MyVision",
    llm="gpt-4o",
    verbose=True
)

With Config

python
from praisonaiagents import VisionAgent, VisionConfig

config = VisionConfig(
    detail="high",
    max_tokens=8192,
    timeout=120
)

agent = VisionAgent(vision=config)

Dict Config

python
agent = VisionAgent(
    vision={
        "detail": "high",
        "max_tokens": 4096
    }
)

VisionConfig Parameters

ParameterTypeDefaultDescription
detailstr"auto"Detail level: low, high, auto
max_tokensint4096Maximum response tokens
timeoutint60Request timeout in seconds

Supported Models


Examples

Analyze Chart Data

python
from praisonaiagents import VisionAgent

agent = VisionAgent(llm="gpt-4o")

result = agent.analyze(
    "https://example.com/sales-chart.png",
    prompt="Extract all data points and trends from this chart"
)
print(result)

Compare Product Images

python
agent = VisionAgent()

comparison = agent.compare([
    "product_v1.jpg",
    "product_v2.jpg",
    "product_v3.jpg"
], prompt="Describe the design evolution across these versions")

Extract Document Text

python
agent = VisionAgent()

# High detail for better OCR
text = agent.extract_text(
    "scanned_document.png",
    detail="high"
)
print(text)

Async Usage

python
import asyncio
from praisonaiagents import VisionAgent

async def main():
    agent = VisionAgent()
    result = await agent.aanalyze("image.jpg")
    print(result)

asyncio.run(main())

Comparison with ImageAgent

FeatureVisionAgentImageAgent
PurposeAnalyze imagesGenerate images
InputImage URL/pathText prompt
OutputText descriptionImage file/URL
ModelsGPT-4o, Claude, GeminiDALL-E, Stable Diffusion

Best Practices

Pick the method that matches the task

Use analyze for open-ended questions, describe for captions, compare for two images, and text extraction for OCR. The dedicated methods prompt the model more precisely than a raw call.

Use a vision-capable model

VisionAgent needs a multimodal model (GPT-4o, Claude, Gemini). Point it at a text-only model and it cannot see the image.

Give a specific prompt for analysis

analyze(image, prompt="Count the people") beats a bare analyze(image). A focused question yields a focused, useful answer.

Reach for ImageAgent to generate, not analyse

VisionAgent understands existing images. To create new images from a text prompt, use the ImageAgent instead.

Related