Visão
Análise de imagens e processamento de documentos para interações multimodais Aprenda os padrões de configuração, as APIs e os exemplos práticos necessários...
Análise de imagens e processamento de documentos para interações multimodais
Visão Geral
O sistema Vision permite que os agentes processem e analisem imagens, fornecendo capacidades de IA multimodal para interações mais ricas. Ele suporta múltiplos formatos de imagem, oferece vários modos de análise e se integra perfeitamente com os provedores OpenAI, Claude, Gemini e Ollama local para opções flexíveis de implantação.
Habilitando o Vision
Habilite as capacidades de visão para um agente definindo a opção vision como true:
import { Agent } from '@astreus-ai/astreus';
const agent = await Agent.create({
name: 'VisionAgent',
model: 'gpt-4o', // Vision-capable model
vision: true // Enable vision capabilities (default: false)
});Sistema de Anexos
O Astreus suporta um sistema de anexos intuitivo para trabalhar com imagens:
// Clean, modern attachment API
const response = await agent.ask("What do you see in this image?", {
attachments: [
{ type: 'image', path: '/path/to/image.jpg', name: 'My Photo' }
]
});O sistema de anexos automaticamente:
- Detecta o tipo de arquivo e seleciona as ferramentas apropriadas
- Aprimora o prompt com informações do anexo
- Habilita o uso de ferramentas quando anexos estão presentes
Capacidades do Vision
O sistema de visão fornece três capacidades principais através de ferramentas integradas:
1. Análise Geral de Imagens
Analise imagens com prompts personalizados e níveis de detalhe configuráveis:
// Using attachments (recommended approach)
const response = await agent.ask("Please analyze this screenshot and describe the UI elements", {
attachments: [
{ type: 'image', path: '/path/to/screenshot.png', name: 'UI Screenshot' }
]
});
// Using the analyze_image tool through conversation
const response2 = await agent.ask("Please analyze the image at /path/to/screenshot.png and describe the UI elements");
// Direct method call
const analysis = await agent.analyzeImage('/path/to/image.jpg', {
prompt: 'What UI elements are visible in this interface?',
detail: 'high',
maxTokens: 1500
});2. Descrição de Imagem
Gere descrições estruturadas para diferentes casos de uso:
// Accessibility-friendly description
const description = await agent.describeImage('/path/to/image.jpg', 'accessibility');
// Available styles:
// - 'detailed': Comprehensive description of all visual elements
// - 'concise': Brief description of main elements
// - 'accessibility': Screen reader-friendly descriptions
// - 'technical': Technical analysis including composition and lighting3. Extração de Texto (OCR)
Extraia e transcreva texto de imagens:
// Extract text with language hint
const text = await agent.extractTextFromImage('/path/to/document.jpg', 'english');
// The system maintains original formatting and structure
console.log(text);Formatos Suportados
O sistema de visão suporta estes formatos de imagem:
- JPEG (
.jpg,.jpeg) - PNG (
.png) - GIF (
.gif) - BMP (
.bmp) - WebP (
.webp)
Fontes de Entrada
Caminhos de Arquivo
Analise imagens do sistema de arquivos local:
const result = await agent.analyzeImage('/path/to/image.jpg');Dados Base64
Analise imagens a partir de dados codificados em base64:
const base64Image = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQ...';
const result = await agent.analyzeImageFromBase64(base64Image);Configuração
Configuração do Modelo de Vision
Especifique o modelo de visão diretamente na configuração do agente:
const agent = await Agent.create({
name: 'VisionAgent',
model: 'gpt-4o',
visionModel: 'gpt-4o', // Specify vision model here
vision: true
});Variáveis de Ambiente
# API keys (auto-detected based on model)
OPENAI_API_KEY=your_openai_key # For OpenAI models
OPENAI_VISION_API_KEY=your_openai_key # Dedicated vision API key (takes priority)
ANTHROPIC_API_KEY=your_anthropic_key # For Claude models
ANTHROPIC_VISION_API_KEY=your_anthropic_key # Dedicated vision API key (takes priority)
GEMINI_API_KEY=your_gemini_key # For Gemini models
GEMINI_VISION_API_KEY=your_gemini_key # Dedicated vision API key (takes priority)
# Ollama configuration (local)
OLLAMA_BASE_URL=http://localhost:11434 # Default if not setO sistema de visão seleciona automaticamente o provedor apropriado com base no visionModel especificado na configuração do agente.
Opções de Análise
Configure o comportamento da análise com estas opções:
interface AnalysisOptions {
prompt?: string; // Custom analysis prompt
maxTokens?: number; // Response length limit (default: 1000)
detail?: 'low' | 'high' | 'auto'; // Analysis detail level (OpenAI only)
}Exemplos de Uso
Análise de Screenshot
const agent = await Agent.create({
name: 'UIAnalyzer',
model: 'gpt-4o',
vision: true
});
// Analyze a UI screenshot
const analysis = await agent.analyzeImage('/path/to/app-screenshot.png', {
prompt: 'Analyze this mobile app interface. Identify key UI components, layout structure, and potential usability issues.',
detail: 'high'
});
console.log(analysis);Processamento de Documentos
// Extract text from scanned documents
const documentText = await agent.extractTextFromImage('/path/to/scanned-invoice.jpg', 'english');
// Generate accessible descriptions
const accessibleDesc = await agent.describeImage('/path/to/chart.png', 'accessibility');Conversas Multimodais
// Using attachments for cleaner API
const response = await agent.ask("I'm getting an error. Can you analyze this screenshot and help me fix it?", {
attachments: [
{ type: 'image', path: '/Users/john/Desktop/error.png', name: 'Error Screenshot' }
]
});
// Multiple attachments
const response2 = await agent.ask("Compare these UI mockups and suggest improvements", {
attachments: [
{ type: 'image', path: '/designs/mockup1.png', name: 'Design A' },
{ type: 'image', path: '/designs/mockup2.png', name: 'Design B' }
]
});
// Traditional approach (still works)
const response3 = await agent.ask(
"Please analyze the error screenshot at /Users/john/Desktop/error.png and suggest how to fix the issue"
);Comparação de Provedores
| Feature | OpenAI (gpt-4o) | Claude (claude-3-5-sonnet) | Gemini (gemini-1.5-pro) | Ollama (llava) |
|---|---|---|---|---|
| Qualidade de Análise | Excelente | Excelente | Excelente | Boa |
| Velocidade de Processamento | Rápida | Rápida | Rápida | Variável |
| Custo | Pague pelo uso | Pague pelo uso | Pague pelo uso | Gratuito (local) |
| Privacidade | Baseado em nuvem | Baseado em nuvem | Baseado em nuvem | Processamento local |
| Níveis de Detalhe | Baixo/Alto/Auto | Padrão | Padrão | Padrão |
| Suporte a Idiomas | Extenso | Extenso | Extenso | Bom |
Provedor OpenAI
- Melhor para: Aplicações de produção que exigem alta precisão
- Modelo Padrão:
gpt-4o - Recursos: Controle de nível de detalhe, excelente reconhecimento de texto
Provedor Claude
- Melhor para: Análise sutil e descrições detalhadas
- Modelo Padrão:
claude-3-5-sonnet-20241022 - Recursos: Raciocínio forte, excelente compreensão de contexto
Provedor Gemini
- Melhor para: Tarefas multimodais e análise de documentos
- Modelo Padrão:
gemini-1.5-pro - Recursos: Suporte a contexto longo, bom para imagens complexas
Provedor Ollama (Local)
- Melhor para: Aplicações sensíveis à privacidade ou desenvolvimento
- Modelo Padrão:
llava - Recursos: Processamento local, sem custos de API, capacidade offline
Processamento em Lote
Processe múltiplas imagens de forma eficiente:
const images = [
'/path/to/image1.jpg',
'/path/to/image2.png',
'/path/to/image3.gif'
];
// Process all images in parallel
const results = await Promise.all(
images.map(imagePath =>
agent.describeImage(imagePath, 'concise')
)
);
console.log('Analysis results:', results);
// Or use task attachments for batch processing
const batchTask = await agent.createTask({
prompt: 'Analyze all these images and provide a comparative report',
attachments: images.map(path => ({
type: 'image',
path,
name: path.split('/').pop()
}))
});
const batchResult = await agent.executeTask(batchTask.id);Ferramentas de Vision Integradas
Quando o vision está habilitado, estas ferramentas ficam automaticamente disponíveis:
analyze_image
- Parâmetros:
image_path(string, obrigatório): Caminho para o arquivo de imagemprompt(string, opcional): Prompt de análise personalizadodetail(string, opcional): Nível de detalhe 'low' ou 'high'
describe_image
- Parâmetros:
image_path(string, obrigatório): Caminho para o arquivo de imagemstyle(string, opcional): Estilo de descrição ('detailed', 'concise', 'accessibility', 'technical')
extract_text_from_image
- Parâmetros:
image_path(string, obrigatório): Caminho para o arquivo de imagemlanguage(string, opcional): Dica de idioma para melhor precisão do OCR
Tipos de Resposta
Os métodos de visão retornam respostas em string contendo os resultados da análise.
Resposta de Análise de Imagem
A análise de imagem retorna uma string descritiva com base no seu prompt:
const analysis = await agent.analyzeImage('/path/to/office.jpg', {
prompt: "What objects are in this image and how is the space organized?",
detail: "high"
});
// Response: string
"The image shows a modern office workspace with a MacBook Pro laptop, wireless keyboard, and mouse on a wooden desk. To the left is a coffee mug and a notebook. The desk is positioned near a window with natural lighting. The space features a minimalist organization with cable management and a small potted plant."Resposta de Descrição de Imagem
Describeimage retorna uma string de descrição formatada:
const description = await agent.describeImage('/path/to/product.jpg');
// Response: string
"A professional product photograph featuring a stainless steel water bottle with a matte black finish. The bottle has a wide mouth opening and is photographed against a white background with soft studio lighting creating subtle highlights along the curved surfaces."Resposta de Extração de Texto de Imagem
O OCR retorna o texto extraído como uma string:
const text = await agent.extractTextFromImage('/path/to/document.png', {
language: 'en'
});
// Response: string
"INVOICE\nDate: January 15, 2024\nInvoice #: INV-2024-001\n\nBill To:\nAcme Corporation\n123 Main Street\nNew York, NY 10001\n\nDescription Quantity Price Total\nProfessional Services 8 hrs $150 $1,200\nConsulting Fee 1 $500 $500\n\nSubtotal: $1,700\nTax (8%): $136\nTotal: $1,836"Resposta de Análise de Imagem a partir de Base64
A análise de imagem em base64 também retorna uma string:
const base64Image = "data:image/png;base64,iVBORw0KG...";
const result = await agent.analyzeImageFromBase64(base64Image, {
prompt: "Identify the main subject and mood of this image"
});
// Response: string
"The main subject is a sunset landscape with mountains in the background. The mood is serene and peaceful, with warm orange and pink tones dominating the sky. The composition creates a sense of tranquility and natural beauty."Última atualização: 6 de julho de 2026
Nesta seção
Introdução
Framework de agentes de IA open-source para construir sistemas autônomos que resolvem tarefas do mundo real de forma eficaz.
Instalação
Instale o Astreus com npm, yarn ou pnpm, confirme a versão necessária do Node.js e prepare um projeto local para construir agentes de IA com o framework.
Início Rápido
Construa seu primeiro agente de IA com Astreus em menos de 2 minutos Aprenda os padrões de configuração, as APIs e os exemplos práticos necessários para...
Agente
Entidade central de IA com capacidades modulares e composição baseada em decorators Aprenda os padrões de configuração, as APIs e os exemplos práticos...