Что будет, если собрать участников и ИИ модели в одном чате?
Собрал свой ИИ-агрегатор: несколько моделей в одном чате Последнее время много работал с 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.
Далее планирую реализовать создание веток от ответа модели, например по выделенному тексту или абзацу, чтобы не засорять основной чат, если эта тема требует отдельного обсуждения, а так же получение сообщений в реальном времени.
Думаю вести здесь небольшой блог о ходе разработки проекта, может кому будет интересно)
· 23.08
На каждый запрос разная модель? А перебрасывать весь контекст в stateless - не ошибка?
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 23.08
Нет, можно общаться как с одной моделью, так и использовать разные в одном чате. При выборе модели через "@" все последующие сообщения будут уходить именно в ту модель которую вы выбрали, до того момента пока вы не удалите закреплённую плашку выбранной модели в окне ввода. Пользователь сам выбирает, когда и кому отправить запрос. Все сообщения без вызова модели отправляются просто в чат
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 23.08
А в чем смысл тогда?
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 23.08
А в чём смысл делать на каждый запрос разную модель? Пользователь сам выбирает, какая модель будет ему отвечать. Смысл в том, что это в первую очередь чат с участниками, в планах сделать проекты, команды, может быть роли, ворк спейс, а ИИ модели будут служить как вспомогательный инструмент
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 23.08
Теперь понял
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён