Что будет, если собрать участников и ИИ модели в одном чате?
Собрал свой ИИ-агрегатор: несколько моделей в одном чате Последнее время много работал с Python-бэкендом и захотел проект, где несколько ИИ-моделей живут в одном месте — не как набор вкладок, а как один диалог. Идея простая: создаёшь чат, приглашаешь людей и на каждый запрос выбираешь, какая модель ответит. В одной переписке можно спросить Gemini, потом Llama или Qwen — история общая, модель переключается на лету. Собеседниками могут быть не только ИИ, но и другие участники: люди пишут друг другу, а модели подключаются к тому же чату, когда нужен их ответ.
Что сделал: 1) регистрация и JWT-авторизация 2) личные чаты, участники и приглашения по ссылке 3) каталог моделей и провайдеров в БД 4) выбор модели прямо в чате 5) стриминг ответа и сохранение истории 6) ветки сообщений (дерево, а не плоский список) 7) REST API для клиента
Backend: Python, FastAPI, PostgreSQL, SQLAlchemy, Alembic, Pydantic, Redis, Docker. Архитектуру старался не складывать в один слой эндпоинтов: API, сервисы, репозитории и схемы разделены. Для моделей — единый оркестратор: разные провайдеры отличаются API и форматом запросов, а чат об этом не должен знать. Redis использую как кэш (профили, список чатов), а не как основное хранилище. Для меня это ещё и способ прокачать бэкенд на практике: схема БД, API, внешние сервисы, стриминг и Docker.
Далее планирую реализовать создание веток от ответа модели, например по выделенному тексту или абзацу, чтобы не засорять основной чат, если эта тема требует отдельного обсуждения, а так же получение сообщений в реальном времени.
Думаю вести здесь небольшой блог о ходе разработки проекта, может кому будет интересно)