Multimodálne modely spracovávajú viaceré typy vstupov - text, obrázky, audio, video. Odomykajú nové možnosti aplikácií.

Čo je multimodalita?

Tradičné LLM pracujú len s textom. Multimodálne modely rozumejú:

  • Text - štandardný vstup
  • Obrázky - fotografie, screenshoty, diagramy
  • Audio - reč, hudba, zvuky
  • Video - kombinácia všetkého

GPT-4 Vision

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "Čo je na tomto obrázku?"},
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://example.com/image.jpg"
                }
            }
        ]
    }]
)

Use cases

  • OCR - extrakcia textu z obrázkov
  • Analýza UI - review dizajnu, accessibility
  • Dokumenty - faktúry, formuláre, ID
  • Diagramy - pochopenie architektúry

Claude Vision

import anthropic
import base64

client = anthropic.Anthropic()

with open("image.png", "rb") as f:
    image_data = base64.standard_b64encode(f.read()).decode("utf-8")

response = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "image",
                "source": {
                    "type": "base64",
                    "media_type": "image/png",
                    "data": image_data
                }
            },
            {
                "type": "text",
                "text": "Analyzuj tento screenshot a navrhni UX zlepšenia"
            }
        ]
    }]
)

Google Gemini

Natívne multimodálny od základu:

import google.generativeai as genai

model = genai.GenerativeModel('gemini-pro-vision')

image = PIL.Image.open('diagram.png')

response = model.generate_content([
    "Vysvetli tento systémový diagram",
    image
])

Gemini 1.5 Pro - Video

# Analýza videa
video = genai.upload_file("presentation.mp4")

response = model.generate_content([
    "Sumarizuj hlavné body tejto prezentácie",
    video
])

Praktické aplikácie

1. Automatizácia dokumentov

def process_invoice(image_path):
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[{
            "role": "user",
            "content": [
                {"type": "text", "text": """Extrahuj z faktúry:
                - Číslo faktúry
                - Dátum
                - Dodávateľ
                - Suma
                Vráť ako JSON."""},
                {"type": "image_url", "image_url": {"url": image_path}}
            ]
        }]
    )
    return json.loads(response.choices[0].message.content)

2. Accessibility audit

def audit_screenshot(screenshot):
    prompt = """Analyzuj tento UI screenshot z pohľadu accessibility:
    1. Kontrastnosť textu
    2. Veľkosť klikateľných oblastí
    3. Alternatívne texty
    4. Logická hierarchia

    Navrhni konkrétne zlepšenia."""

    return analyze_with_vision(screenshot, prompt)

3. Code generation z mockupov

def mockup_to_code(design_image):
    prompt = """Preveď tento UI mockup na React komponent
    s Tailwind CSS. Zachovaj presné rozloženie a štýly."""

    return generate_code(design_image, prompt)

Limity

  • Halucinácie - model môže "vidieť" čo tam nie je
  • Citlivé dáta - pozor na PII v obrázkoch
  • Náklady - obrázky sú drahšie ako text
  • Latencia - spracovanie trvá dlhšie

Záver

Multimodálne AI výrazne rozširujú možnosti automatizácie. Od OCR cez analýzu dizajnu až po video summarizáciu - hranice sa posúvajú každým dňom.