Skip to main content

Overview

The Vision Actions module provides AI-powered image analysis for industrial parts and equipment using Google’s Gemini Vision model. It identifies, classifies, and evaluates the physical condition of items in images.

analyzePartImage

Analyzes an image of an industrial part or equipment using Gemini Vision to extract structured information including type, condition, brand, model, and recommendations.
export async function analyzePartImage(
  formData: FormData
): Promise<{ 
  result: PartAnalysisResult | null; 
  success: boolean; 
  error?: string 
}>

Parameters

formData
FormData
required
Form data containing the image file and optional prompt
formData.file
File
required
Image file to analyze (JPG, PNG, etc.)
formData.prompt
string
Custom analysis prompt (defaults to INVENTORY_PROMPT)

Response

result
PartAnalysisResult | null
Structured analysis result from the AI model
success
boolean
Whether the analysis succeeded
error
string
Error message if analysis failed

PartAnalysisResult Schema

tipo_articulo
'mobiliario' | 'equipo'
General classification of the item
codigo
string
Visible identification code on the part
descripcion
string
Detailed description of the part or equipment
marca
string
Manufacturer brand if visible
modelo
string
Equipment model if visible
cantidad_detectada
number
Number of parts of this type detected in the image
estado_fisico
'nuevo' | 'usado' | 'dañado' | 'requiere_inspeccion'
Visual condition of the part
recomendacion
string
Brief recommendation for handling or maintenance
nivel_confianza
'alta' | 'media' | 'baja'
AI’s confidence level in the identification

Features

  • Size Validation: Enforces maximum image size (configured in MAX_IMAGE_SIZE_MB)
  • Structured Output: Uses Zod schema validation for consistent results
  • Low Temperature: Uses temperature 0.1 for strict schema adherence
  • Detailed Analysis: Extracts multiple attributes including condition and recommendations

Example

const formData = new FormData();
formData.append('file', imageFile);
formData.append('prompt', 'Analiza esta pieza y determina si requiere mantenimiento');

const result = await analyzePartImage(formData);

if (result.success && result.result) {
  const part = result.result;
  console.log(`Tipo: ${part.tipo_articulo}`);
  console.log(`Descripción: ${part.descripcion}`);
  console.log(`Estado: ${part.estado_fisico}`);
  console.log(`Cantidad: ${part.cantidad_detectada}`);
  console.log(`Confianza: ${part.nivel_confianza}`);
  
  if (part.marca) console.log(`Marca: ${part.marca}`);
  if (part.modelo) console.log(`Modelo: ${part.modelo}`);
  if (part.codigo) console.log(`Código: ${part.codigo}`);
  
  console.log(`Recomendación: ${part.recomendacion}`);
} else {
  console.error("Error:", result.error);
}

Example Response

{
  "result": {
    "tipo_articulo": "equipo",
    "codigo": "EQ-2024-1523",
    "descripcion": "Compresor de aire industrial marca Atlas Copco",
    "marca": "Atlas Copco",
    "modelo": "GA 55",
    "cantidad_detectada": 1,
    "estado_fisico": "usado",
    "recomendacion": "Verificar filtros y nivel de aceite. Programar mantenimiento preventivo",
    "nivel_confianza": "alta"
  },
  "success": true
}

Configuration

Environment Variables

  • GOOGLE_GENERATIVE_AI_API_KEY: Required for vision analysis
  • MAX_IMAGE_SIZE_MB: Maximum image file size (defined in config/limits)

Constants

  • INVENTORY_PROMPT: Default prompt for inventory analysis (defined in config)

Model Configuration

  • Model: gemini-2.5-flash
  • Temperature: 0.1 (low temperature for consistent structured output)
  • Schema: Zod validation for type-safe results

Supported Image Formats

The function accepts standard image formats including:
  • JPEG/JPG
  • PNG
  • WebP
  • GIF

Size Limits

Images are validated against MAX_IMAGE_SIZE_MB before processing. Large images are rejected with a descriptive error message.

Use Cases

  1. Inventory Management: Automatically catalog parts with descriptions and codes
  2. Quality Inspection: Assess physical condition of equipment
  3. Maintenance Planning: Get AI-powered recommendations for part handling
  4. Asset Tracking: Detect quantities and identify brands/models
  5. Documentation: Generate structured records from visual inspections

Build docs developers (and LLMs) love