Обсудить проект

Услуги / AI · LLM

Разработка AI/LLM-систем

Вызов LLM API — это один запрос. AI-продукт — это всё, что вокруг него: маршрутизация между провайдерами, память, оценка качества, лимиты, стоимость, поведение при сбоях и бизнес-логика. Closeflow проектирует и строит эту инфраструктуру, а не чат-бота поверх одного API.

  • Go · Next.js
  • PostgreSQL · pgvector · Redis
  • multi-provider · RAG · eval
  • договор · NDA

02Что строим

Что мы разрабатываем

  • LLM-шлюзы и маршрутизация между провайдерами

    Единая точка входа к нескольким провайдерам с выбором модели по задаче, стоимости и доступности.

  • RAG и семантический поиск

    Поиск по вашим данным с помощью embeddings и pgvector, сборка контекста для ответа.

  • Embeddings и долговременная память

    Что система помнит о пользователе и сессии, как это извлекается и как попадает в промпт.

  • Агентные и workflow-пайплайны

    Многошаговая обработка с разными моделями, фоновыми задачами и контролем на каждом шаге.

  • AI-функции внутри существующих продуктов

    Подключение к вашему backend, правам доступа и биллингу без отдельной параллельной системы.

  • Внутренние AI-инструменты

    Например, аналитик, который отвечает по данным через read-only сессию БД и готовит отчёты для операционной команды.

  • Оценка качества

    Сравнение моделей и промптов на реальных сценариях, проверки на регрессию.

  • Биллинг и квоты

    Учёт токенов, предоплаченный баланс, лимиты по тарифам и пользователям.

  • Модерация и guard-пайплайны

    Проверки запроса и ответа: попытки обхода ограничений, выход из заданной роли.

03Шлюз

LLM-шлюз: путь запроса

Обобщённая схема шлюза, который мы строили в AI-платформах под NDA.

Circuit breaker на каждого провайдера: если один начинает отвечать ошибками или медленно, запросы перестают идти туда и не копят очередь таймаутов.

Fallback: при недоступности провайдера запрос уходит в другую модель того же класса. Для пользователя это короткая пауза, а не ошибка.

Маршрутизация по уровню и намерению: простые запросы идут в дешёвые модели, сложные — в более сильные. Решение принимается по типу задачи и стоимости.

Деградация: если модель недоступна, система предлагает доступную замену, а не падает целиком. Стриминг ответа идёт через WebSocket или SSE.

Схема: Продукт / API, Guard, Роутер, Hold баланса, Провайдер A, Провайдер B, Провайдер C, Кэш · память, EvalПродукт / APIWebSocket · SSEGuardдо и после генерацииРоутерtier · intent · ценаHold балансаRedisПровайдер Acircuit breakerПровайдер Bcircuit breakerПровайдер Ccircuit breakerКэш · памятьPostgres · pgvectorEvalсудья · регрессии
fig. Роутер выбирает провайдера и модель; у каждого провайдера свой circuit breaker, а баланс удерживается до ответа.

04Память

Память, поиск и контекст

Здесь речь о том, как система хранит и находит информацию, а не об обучении моделей.

  • Три слоя памяти

    Краткосрочный контекст диалога в Redis, структурированные факты в PostgreSQL, семантический поиск по embeddings в pgvector.

  • Семантический кэш

    Похожие запросы получают ранее найденный ответ из Postgres + pgvector, не обращаясь к провайдеру повторно.

  • Суммаризация сессий

    Длинная история сжимается в краткое резюме, а важное сохраняется в долговременную память.

  • Сборка промпта под лимит токенов

    Контекст собирается из слоёв с приоритетами так, чтобы укладываться в бюджет токенов, а не обрезаться случайно.

  • RAG и извлечение

    Поиск релевантных фрагментов по смыслу и подстановка их в запрос с ссылкой на источник.

05Оценка качества

Качество измеряется, а не предполагается

Смена модели или промпта без проверки — это эксперимент на пользователях.

  • Сравнение моделей

    Одни и те же сценарии прогоняются через разные модели и сравниваются по качеству и цене.

  • LLM-as-judge

    Модель-оценщик ранжирует ответы по заданным критериям. Это быстрая проверка, которую дополняют разметкой людьми.

  • Проверка регрессий

    Перед переключением модели или правкой промпта набор сценариев показывает, что стало хуже.

  • A/B-эксперименты

    Варианты сравниваются на реальных сценариях использования, а не на синтетических примерах.

06Workflow

Пайплайны из узлов

В одной из AI-платформ мы реализовали визуальный редактор узлов: пользователь собирает пайплайн на канвасе, а шаги выполняют серверные воркеры. Это не универсальный движок workflow, а прикладной инструмент под конкретные сценарии платформы.

Для каждого узла можно выбрать провайдера и модель. По каждому шагу видны статус, время и результат, поэтому при сбое понятно, где остановилась обработка. Долгие шаги идут в фоне, не блокируя интерфейс.

07Стоимость и надёжность

Стоимость, лимиты и надёжность

  • Предоплаченный баланс с holds в Redis

    Сумма резервируется до вызова модели и списывается по факту, поэтому параллельные запросы не уводят баланс в минус.

  • Воркер сверки платежей

    Платежи провайдера и записи в системе сравниваются по расписанию, подписи проверяются на входе.

  • Fallback между провайдерами

    Недоступность одного провайдера не останавливает продукт.

  • Учёт токенов

    Стоимость каждого запроса записывается и привязывается к пользователю, модели и тарифу.

  • Наблюдаемость

    Дашборды Prometheus и Grafana по ошибкам, задержкам и расходам помогают заметить проблему до жалобы.

08Стек

Что используем

Сервер

  • Go
  • WebSocket
  • SSE

Python — там, где он нужен.

Интерфейс

  • Next.js
  • React

Данные

  • PostgreSQL
  • pgvector
  • Redis

Эксплуатация

  • Prometheus
  • Grafana
  • Docker

09Границы

Чем мы не занимаемся

Closeflow не исследовательская лаборатория и не обучает крупные модели с нуля. Наша работа — инженерия AI-продуктов: инфраструктура вокруг моделей и их надёжная интеграция в приложения.

10Когда подходит

Когда стоит обращаться

  • Прототип должен стать надёжной функцией

    Демо работает, но нет лимитов, повторов, мониторинга и понятного поведения при ошибке.

  • Стоимость и качество непредсказуемы

    Расходы растут, а какая модель лучше для какой задачи — неясно.

  • Нужно подключить несколько провайдеров

    Хочется не зависеть от одного API и выбирать модель под задачу.

  • AI нужен внутри существующего backend

    Функциональность должна использовать ваши данные, права и биллинг.

Есть AI-задача?

Расскажите, что должна делать функциональность и где сейчас упирается. Разберём архитектуру и скажем, что реально сделать.

Обсудить AI-функциональность

12Контакт

Расскажите, что
должно работать.

Опишите задачу, текущую систему и ограничения. Если проект подходит по профилю — предложим следующий шаг: обычно это короткий созвон с вопросами о данных, интеграциях и сроках.

brief.form4 поля · 2 минуты

Бюджет необязательно