Решение задачи, сочинение, конспект и чат — это не одно и то же. У каждого своя логика, свои модели и свой формат выхода. Я упаковал их в единый API-сервис с общим middleware и контрактами ответов — чтобы фронт работал с одним бэкендом, а не с четырьмя разными.
Multimodal AI Assistant
Ученик фотографирует задачу — система читает фото, распознает и выдаёт пошаговое решение с формулами. Также пишет сочинения, делает конспекты и отвечает на учебные общие вопросы. Пайплайн — от приёма файла до форматирования ответа под образовательный интерфейс заказчика.
Какие сложности были у проекта
Фото тетради, скан условия, Word-файл с заданием, таблица Excel — всё это реальные входы образовательного продукта. Я построил отдельную подсистему обработки файлов: определение типа, временное хранение, специализированный reader под каждый формат и очистка после обработки.
Архитектура: четыре режима — четыре разные логики
- Четыре кнопки на фронте — четыре разных эндпоинта. Решение задачи, сочинение, конспект и чат работают по разной логике — не одним промптом на всё.
- Сначала прочитать файл, потом решать задачу. Одна модель не должна одновременно разбирать шумное фото и рассуждать над условием. Extraction и reasoning разделены намеренно.
- Семь форматов файлов — один pipeline. Фото, PDF, Word, Excel — каждый тип обрабатывается своим reader-модулем и очищается после использования.
- Знания платформы — только для чата. FAISS-индекс используется только в chatbot-режиме. Для задач и сочинений это не нужно — и не смешивается.
- Формат ответа — часть backend-системы. KaTeX-форматирование и очистка символов живут на сервере, а не на клиенте.
Как выглядит результат?
База знаний, правила формата ответов и живой сценарий решения задачи по фотографии — не демо, а рабочие артефакты реального сервиса.
Векторная FAISS БД
Для chatbot-режима собрана md-база знаний: как работает сервис, какие есть режимы, как правильно отвечать на учебные вопросы. Langchain-фреймворк чанкирует маркдаун базу для последующей векторизации и семантического поиска
Решение задачи выглядит как учебный разбор, а не чат
Формулы, шаги решения и финальный ответ оформляются по KaTeX-правилам прямо на сервере. Это не украшение — без этого контракта математика на образовательном сайте просто не отображается корректно.
Фото задачи → пошаговое решение
Пользователь прикрепляет скриншот — система читает условие, разбивает на «Дано / Решение / Ответ» и выдаёт структурированный разбор с формулами. Это главный сценарий продукта: помочь с задачей без переписывания условия вручную.
Этапы разработки проекта
4 слоя, которые вместе делают образовательный ассистент рабочим: API, обработка файлов, chain of thought, RAG-поиск.
API с отдельными режимами
Четыре режима — четыре отдельных pipeline. Решение задач, сочинения, конспекты и чат работают по разной логике, но через один сервис с общим middleware и контрактами ответов.
Обработка мульти-формат
Фото, PDF, Word, Excel — каждый формат обрабатывается своим модулем. Файл декодируется, читается и удаляется после обработки. Семь форматов — один унифицированный вход.
Role-split логика
Сначала дешёвая модель читает файл или фото и извлекает текст. Потом Reasoning модель решает задачу по чистому условию. Два шага — два разных уровня качества на каждом из них.
Langchain чанкирование
Сотни сценариев использования платформы и тысячи материалов требовали дробления исходной базы на чанки для качественного RAG-поиска
Retrieval-поиск для чатбота
FAISS-индекс подключён только в chatbot-режиме — как база знаний платформы c конкретным score для релевантного ответа. Для задач и сочинений retrieval не нужен и не используется.
Эксплуатация
Активные сессии клиента через id-заголовок от фронта, Redis rate лимиты, retry при сбоях OpenAI, очистка временных файлов после обработки.
Два решения, которые определили качество результата
Сначала прочитать — потом думать
Если попросить одну модель одновременно разобрать шумное фото и решить задачу — качество падает на обоих шагах. Я разделил это на два вызова: дешёвая модель извлекает текст, сильная модель решает задачу по чистому условию. Результат точнее и предсказуемее.
Форматирование — не косметика, а инженерная задача
Образовательный интерфейс рендерит формулы через KaTeX. Если ответ придёт с неправильными символами — отображение сломается. Я вынес sanitization и KaTeX-правила на сервер, чтобы фронт получал готовый контракт, а не разбирался с форматом сам.
Sergey Shumov