Visione
Analisi delle immagini ed elaborazione dei documenti per interazioni multimodali Scopri i pattern di configurazione, le API e gli esempi pratici necessari...
Analisi delle immagini ed elaborazione dei documenti per interazioni multimodali
Panoramica
Il sistema Vision permette agli agent di elaborare e analizzare immagini, fornendo capacità AI multimodali per interazioni più ricche. Supporta più formati di immagine, offre varie modalità di analisi e si integra perfettamente con i provider OpenAI, Claude, Gemini e Ollama locale per opzioni di deployment flessibili.
Abilitare la Vision
Abilita le capacità di visione per un agent impostando l'opzione vision su 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 di allegati
Astreus supporta un sistema di allegati intuitivo per lavorare con le immagini:
// 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' }
]
});Il sistema di allegati automaticamente:
- Rileva il tipo di file e seleziona gli strumenti appropriati
- Arricchisce il prompt con le informazioni dell'allegato
- Abilita l'utilizzo degli strumenti quando sono presenti allegati
Capacità Vision
Il sistema di visione fornisce tre capacità principali tramite strumenti integrati:
1. Analisi generale delle immagini
Analizza le immagini con prompt personalizzati e livelli di dettaglio configurabili:
// 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. Descrizione delle immagini
Genera descrizioni strutturate per diversi casi d'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. Estrazione del testo (OCR)
Estrai e trascrivi il testo dalle immagini:
// 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);Formati supportati
Il sistema di visione supporta questi formati di immagine:
- JPEG (
.jpg,.jpeg) - PNG (
.png) - GIF (
.gif) - BMP (
.bmp) - WebP (
.webp)
Sorgenti di input
Percorsi di file
Analizza immagini dal file system locale:
const result = await agent.analyzeImage('/path/to/image.jpg');Dati Base64
Analizza immagini da dati codificati in base64:
const base64Image = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQ...';
const result = await agent.analyzeImageFromBase64(base64Image);Configurazione
Configurazione del modello Vision
Specifica il modello vision direttamente nella configurazione dell'agent:
const agent = await Agent.create({
name: 'VisionAgent',
model: 'gpt-4o',
visionModel: 'gpt-4o', // Specify vision model here
vision: true
});Variabili d'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 setIl sistema di visione seleziona automaticamente il provider appropriato in base al visionModel specificato nella configurazione dell'agent.
Opzioni di analisi
Configura il comportamento dell'analisi con queste opzioni:
interface AnalysisOptions {
prompt?: string; // Custom analysis prompt
maxTokens?: number; // Response length limit (default: 1000)
detail?: 'low' | 'high' | 'auto'; // Analysis detail level (OpenAI only)
}Esempi di utilizzo
Analisi degli 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);Elaborazione dei documenti
// 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');Conversazioni multimodali
// 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"
);Confronto tra provider
| Funzionalità | OpenAI (gpt-4o) | Claude (claude-3-5-sonnet) | Gemini (gemini-1.5-pro) | Ollama (llava) |
|---|---|---|---|---|
| Qualità dell'analisi | Eccellente | Eccellente | Eccellente | Buona |
| Velocità di elaborazione | Veloce | Veloce | Veloce | Variabile |
| Costo | A consumo | A consumo | A consumo | Gratuito (locale) |
| Privacy | Basato su cloud | Basato su cloud | Basato su cloud | Elaborazione locale |
| Livelli di dettaglio | Basso/Alto/Auto | Standard | Standard | Standard |
| Supporto linguistico | Esteso | Esteso | Esteso | Buono |
Provider OpenAI
- Ideale per: applicazioni di produzione che richiedono elevata precisione
- Modello predefinito:
gpt-4o - Funzionalità: controllo del livello di dettaglio, eccellente riconoscimento del testo
Provider Claude
- Ideale per: analisi sfumate e descrizioni dettagliate
- Modello predefinito:
claude-3-5-sonnet-20241022 - Funzionalità: ragionamento solido, eccellente comprensione del contesto
Provider Gemini
- Ideale per: task multimodali e analisi di documenti
- Modello predefinito:
gemini-1.5-pro - Funzionalità: supporto per contesti lunghi, adatto a immagini complesse
Provider Ollama (locale)
- Ideale per: applicazioni sensibili alla privacy o sviluppo
- Modello predefinito:
llava - Funzionalità: elaborazione locale, nessun costo API, funzionamento offline
Elaborazione in batch
Elabora più immagini in modo efficiente:
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);Strumenti Vision integrati
Quando la visione è abilitata, questi strumenti sono automaticamente disponibili:
analyze_image
- Parametri:
image_path(string, obbligatorio): percorso del file immagineprompt(string, opzionale): prompt di analisi personalizzatodetail(string, opzionale): livello di dettaglio 'low' o 'high'
describe_image
- Parametri:
image_path(string, obbligatorio): percorso del file immaginestyle(string, opzionale): stile della descrizione ('detailed', 'concise', 'accessibility', 'technical')
extract_text_from_image
- Parametri:
image_path(string, obbligatorio): percorso del file immaginelanguage(string, opzionale): suggerimento sulla lingua per una migliore precisione OCR
Tipi di risposta
I metodi Vision restituiscono risposte in forma di stringa contenenti i risultati dell'analisi.
Risposta di Analyze Image
L'analisi dell'immagine restituisce una stringa descrittiva basata sul tuo 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."Risposta di Describe Image
Describeimage restituisce una stringa di descrizione formattata:
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."Risposta di Extract Text from Image
L'OCR restituisce il testo estratto come stringa:
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"Risposta di Analyze Image from Base64
Anche l'analisi delle immagini in base64 restituisce una stringa:
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."Ultimo aggiornamento: 6 luglio 2026
In questa sezione
Introduzione
Framework AI agent open-source per costruire sistemi autonomi che risolvono in modo efficace problemi del mondo reale.
Installazione
Installa Astreus con npm, yarn o pnpm, verifica la versione richiesta di Node.js e prepara un progetto locale per costruire agenti AI con il framework.
Avvio rapido
Costruisci il tuo primo agente AI con Astreus in meno di 2 minuti Scopri i pattern di configurazione, le API e gli esempi pratici necessari per creare...
Agente
Entità AI centrale con funzionalità modulari e composizione basata su decoratori Scopri i pattern di configurazione, le API e gli esempi pratici necessari...