👁️

Vision & Multimodal

👨‍🍳👑 Master Chef

Vision & Multimodal AI

Los modelos multimodales procesan múltiples tipos de entrada: texto, imágenes, audio, video.


Capacidades de visión

TareaDescripción
OCRExtraer texto de imágenes
DescripciónDescribir contenido visual
AnálisisIdentificar objetos/personas
ComparaciónComparar imágenes
DiagramasEntender gráficos/charts

Modelos multimodales

ModeloProveedorEntrada
GPT-4VOpenAITexto + Imagen
Claude 3AnthropicTexto + Imagen
Gemini ProGoogleTexto + Imagen + Audio
LLaVAOpen SourceTexto + Imagen

Enviar imagen a Claude

const response = await anthropic.messages.create({
  model: "claude-sonnet-4-20250514",
  max_tokens: 1024,
  messages: [{
    role: "user",
    content: [
      {
        type: "image",
        source: {
          type: "base64",
          media_type: "image/jpeg",
          data: base64Image
        }
      },
      {
        type: "text",
        text: "¿Qué hay en esta imagen?"
      }
    ]
  }]
});

Enviar imagen a OpenAI

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "¿Qué hay en esta imagen?"},
            {
                "type": "image_url",
                "image_url": {
                    "url": f"data:image/jpeg;base64,{base64_image}"
                }
            }
        ]
    }]
)

Casos de uso reales

AplicaciónEjemplo
AccesibilidadDescribir imágenes para ciegos
DocumentosExtraer datos de facturas
RetailAnalizar productos en fotos
SaludAnálisis preliminar de rayos X
SeguridadDetección de contenido

Modelos de clasificación de imágenes

Para tareas específicas, usa modelos especializados:

from transformers import pipeline

# Clasificación
classifier = pipeline("image-classification")
result = classifier("cat.jpg")
# → [{"label": "cat", "score": 0.99}]

# Detección de objetos
detector = pipeline("object-detection")
objects = detector("street.jpg")
# → [{"label": "car", "box": {...}}]

🏦 Caso Fintech: Verificación KYC con Vision

Know Your Customer (KYC) requiere verificar documentos de identidad. Vision AI automatiza este proceso:

import Anthropic from '@anthropic-ai/sdk';

const anthropic = new Anthropic();

interface KYCResult {
  documentType: 'passport' | 'id_card' | 'drivers_license' | 'unknown';
  extractedData: {
    fullName?: string;
    documentNumber?: string;
    expiryDate?: string;
    nationality?: string;
  };
  validationChecks: {
    isExpired: boolean;
    formatValid: boolean;
    photoDetected: boolean;
  };
  confidence: number;
  requiresManualReview: boolean;
}

async function verifyKYCDocument(imageBase64: string): Promise<KYCResult> {
  const response = await anthropic.messages.create({
    model: "claude-sonnet-4-20250514",
    max_tokens: 1024,
    messages: [{
      role: "user",
      content: [
        {
          type: "image",
          source: { type: "base64", media_type: "image/jpeg", data: imageBase64 }
        },
        {
          type: "text",
          text: `Analiza este documento de identidad para KYC. Extrae:
1. Tipo de documento (passport, id_card, drivers_license)
2. Nombre completo
3. Número de documento
4. Fecha de expiración
5. Nacionalidad

Verifica:
- ¿El documento está expirado?
- ¿El formato parece válido?
- ¿Se detecta foto del titular?

Responde SOLO en JSON con este formato:
{
  "documentType": "...",
  "extractedData": {...},
  "validationChecks": {...},
  "confidence": 0.0-1.0,
  "requiresManualReview": true/false
}

IMPORTANTE: Si hay CUALQUIER duda sobre la autenticidad, marca requiresManualReview: true`
        }
      ]
    }]
  });

  // Parsear respuesta y validar
  const result = JSON.parse(response.content[0].text);

  // Regla de negocio: baja confianza = revisión manual
  if (result.confidence < 0.85) {
    result.requiresManualReview = true;
  }

  // Log para auditoría (sin datos sensibles)
  await auditLog({
    action: 'KYC_VERIFICATION',
    documentType: result.documentType,
    confidence: result.confidence,
    requiresManualReview: result.requiresManualReview,
    timestamp: new Date().toISOString()
  });

  return result;
}

Consideraciones de seguridad KYC

AspectoRecomendación
AlmacenamientoEncriptar imágenes en reposo (AES-256)
RetenciónEliminar después de verificación (30-90 días)
LogsNO guardar datos extraídos en logs
FallbackSiempre tener revisión humana disponible
RegulaciónCumplir con GDPR/LGPD para datos biométricos

💡 Vision AI acelera KYC de días a minutos, pero siempre mantén un humano en el loop para casos de baja confianza.


Practica

Clasificador de ImágenesApp Multimodal