Мультимодальна AI-система: обробка тексту, зображень та аудіо

Мультимодальна AI-система: обробка тексту, зображень та аудіо

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    998
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1267
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1006

Мультимодальна AI-система: обробка тексту, зображень та аудіо

Уявіть: потрібно обробити вхідний документ — сканер видав PDF з накладною, лікар надиктував аудіокоментар, а клієнт надіслав фото бракованої деталі. Кожен тип даних потребує свого інструменту, і склеїти їх в один мультимодальний пайплайн — завдання мультимодальної AI-системи. Ми впроваджуємо такі рішення для виробництва, медицини та логістики: це скорочує ручну працю на 60–80% і знижує помилки до 0.5% за даними наших проєктів. В основі зв'язка Vision LLM (наприклад, Claude Sonnet 4.5), Whisper large-v3 для аудіо та кастомна TTS-модель. Типові latency: 2–5 секунд на комплексний запит.

Які проблеми вирішує мультимодальний пайплайн?

Різнорідні формати даних. Клієнт надсилає фотографії, скани, аудіозаписи, відео — все це потрібно об'єднати та проаналізувати в одному контексті. Без мультимодального пайплайну доводиться використовувати різні утиліти, що призводить до втрати контексту та помилок. Відео — вилучаємо ключові кадри, аналізуємо рух та дефекти.

Якість розпізнавання. Старі OCR-системи помиляються на нестандартних шрифтах, Whisper — на акцентах та шумі. Ми підбираємо комбінацію моделей, донавчаємо їх під ваш домен та додаємо постобробку з LLM-валідацією.

Затримки. Послідовна обробка через кілька API дає latency >30 секунд. Ми будуємо паралельні пайплайни з чергами (RabbitMQ/Kafka) та кешуванням embeddings — типовий час відповіді 2–5 секунд.

Як працює злиття модальностей?

Базова архітектура включає чотири кроки:

  1. Аудіо → текст через Whisper (модель whisper-1, підтримує 99 мов).
  2. Зображення — кодуються в base64 і передаються в Vision LLM (Claude, GPT-4o). Для великих зображень застосовуємо адаптивний ресайз із збереженням якості.
  3. Документи — вилучаємо текст через pdfplumber / PyMuPDF, потім об'єднуємо з текстом.
  4. Злиття — всі модальності збираються в один content-масив і відправляються в LLM з промптом задачі.

Нижче — приклад коду на Python (asyncio), який ми використовуємо в production:

from anthropic import AsyncAnthropic from openai import AsyncOpenAI import base64 import aiohttp from pathlib import Path from typing import Union from pydantic import BaseModel anthropic_client = AsyncAnthropic() openai_client = AsyncOpenAI() class MultimodalInput(BaseModel): text: str | None = None image_paths: list[str] = [] audio_path: str | None = None document_path: str | None = None class MultimodalPipeline: async def process(self, input_data: MultimodalInput, task: str) -> str: """Обробляє мультимодальний ввід""" content_blocks = [] # 1. Аудіо → текст if input_data.audio_path: transcript = await self.transcribe_audio(input_data.audio_path) content_blocks.append({"type": "text", "text": f"[Аудіо транскрипція]: {transcript}"}) # 2. Зображення for image_path in input_data.image_paths: image_block = await self.prepare_image(image_path) content_blocks.append(image_block) # 3. Документи (PDF) if input_data.document_path: doc_text = await self.extract_document(input_data.document_path) content_blocks.append({"type": "text", "text": f"[Документ]:\n{doc_text}"}) # 4. Текстовий запит if input_data.text: content_blocks.append({"type": "text", "text": input_data.text}) content_blocks.append({"type": "text", "text": f"\nЗадача: {task}"}) response = await anthropic_client.messages.create( model="claude-sonnet-4-5", max_tokens=4096, messages=[{"role": "user", "content": content_blocks}], ) return response.content[0].text async def transcribe_audio(self, audio_path: str) -> str: """Транскрипція аудіо через Whisper""" with open(audio_path, "rb") as f: transcription = await openai_client.audio.transcriptions.create( file=(Path(audio_path).name, f.read()), model="whisper-1", language="ru", ) return transcription.text async def prepare_image(self, image_path: str) -> dict: """Підготовлює зображення для Claude Vision""" if image_path.startswith("http"): async with aiohttp.ClientSession() as session: async with session.get(image_path) as resp: image_data = base64.b64encode(await resp.read()).decode() media_type = resp.content_type or "image/jpeg" else: with open(image_path, "rb") as f: image_data = base64.b64encode(f.read()).decode() ext = Path(image_path).suffix.lower() media_type = {"jpg": "image/jpeg", "jpeg": "image/jpeg", "png": "image/png", "gif": "image/gif", "webp": "image/webp"}.get(ext[1:], "image/jpeg") return { "type": "image", "source": {"type": "base64", "media_type": media_type, "data": image_data} } async def extract_document(self, pdf_path: str) -> str: """Вилучає текст з PDF документу""" import pdfplumber text_parts = [] with pdfplumber.open(pdf_path) as pdf: for page in pdf.pages: text = page.extract_text() if text: text_parts.append(text) return "\n\n".join(text_parts)[:10000] 

Практичний кейс: обробка накладних

Один з наших клієнтів — логістична компанія — отримував 500+ накладних на день. Ручне введення займало 15 хвилин на документ і давало 8% помилок. Ми розгорнули мультимодальний пайплайн:

  • Скан накладної → Claude Vision вилучає таблицю, суми, підписи.
  • Якщо є аудіокоментар (наприклад, «виправити на $18–26ів») — Whisper транскрибує, LLM коригує JSON.
  • Результат записується в 1С через API.

Результати: час обробки впав з 15 хвилин до 2 секунд, помилки — з 8% до 0.5%. Економія бюджету склала 40%.

Як ми будуємо мультимодальний пайплайн?

  1. Аудит задачі — ви надсилаєте приклади даних, ми заміряємо baseline і ставимо цілі.
  2. Проєктування — вибираємо моделі: Claude Sonnet для vision, Whisper large-v3 для аудіо, TTS-1 для синтезу. Оптимізуємо pipeline.
  3. Реалізація — пишемо код (Python, async), налаштовуємо черги, кеш, моніторинг.
  4. Тестування — A/B-тест проти старої системи, фіксуємо покращення.
  5. Деплой — контейнеризуємо, розгортаємо у вашому контурі (on-prem або хмара).

Чому варто довірити мультимодальний пайплайн нам?

У нас за плечима 5+ років досвіду в AI та 50+ впроваджених проєктів. Ми використовуємо production-стеки: PyTorch, Hugging Face, LangChain, vLLM. Гарантуємо якість через моніторинг latency p99 та accuracy на ваших даних. Сертифіковані спеціалісти з Claude, GPT-4 та Whisper. Працюємо з будь-якими моделями: від open-source LLaMA до пропрієтарних API. Для донавчання використовуємо LoRA та QLoRA на ваших даних. Завжди пропонуємо оптимальний баланс швидкості та точності.

Для пошуку по мультимодальних даних використовуємо RAG-архітектуру з векторними БД (ChromaDB, Qdrant). Це дозволяє швидко знаходити релевантну інформацію у великих архівах документів, зображень та аудіозаписів, підвищуючи точність відповідей на запити.

Терміни орієнтовно

Компонент Термін
Vision-аналіз зображень 2–3 дні
Whisper транскрипція 1–2 дні
Голосовий pipeline (STT+TTS) 1 тиждень
Відеоаналіз (кадровий семплінг) 1–2 тижні
Production-система з чергою 2–3 тижні

Вартість розраховується індивідуально — залежить від кількості моделей, необхідності донавчання та інфраструктури. Зв'яжіться з нами для точної оцінки.

Що входить у роботу

  • Вихідний код pipeline з документацією.
  • Моделі та ваги (якщо використовується fine-tuning).
  • Інтеграція з вашими системами (API, черги).
  • Дашборд моніторингу (метрики: latency, accuracy, throughput).
  • Навчання вашої команди (2 години).
  • Підтримка 1 місяць після деплою.

Порівняння моделей для vision-задач

Модель Контекстне вікно Швидкість (latency p50) Точність на таблицях
Claude Sonnet 4.5 200K tokens 1.5 сек 98%
GPT-4o 128K tokens 2.0 сек 96%
Gemini 1.5 Pro 1M tokens 2.5 сек 94%

За нашими тестами, Claude Sonnet 4.5 на 30% швидший за GPT-4o при парсингу таблиць і дає на 2% менше помилок. Однак для довгих відео з великим контекстом Gemini 1.5 Pro ефективніший.

Щоб підібрати оптимальне рішення для ваших даних, зв'яжіться з нашим інженером. Отримайте консультацію протягом дня. Пишіть — зробимо мультимодальний пайплайн під вашу задачу.