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

pacod-gw · AI-шлюз
- pacod-id: С PGW_AUTH=oidc пользователи входят в консоль через pacod-id; шлюз регистрирует там свои организации и рабочие пространства и следует его ленте ролей.
- pacod-ap: Каждый вызов LLM от агента проходит через шлюз, который управляет моделями, ценами, ключами и учётом использования.
- pacod-cms: AI-перевод в студии обращается к шлюзу, поэтому CMS никогда не хранит ключ провайдера.
- pacod-kb: Необязательный проход очистки через LLM в базе знаний и необязательное второе мнение её проверки содержимого маршрутизируются, тарифицируются и атрибутируются шлюзом.
- pacod-demo: Запускает шлюз рядом с остальными продуктами, с включённым кэшем ответов и его mock-провайдером, пока не задан ключ провайдера.
- pacod-benchmark: Измеряет, что добавляет шлюз, его же нагрузочными агентами и относительно базовой линии напрямую к mock-провайдеру, и публикует свои отчёты в консоли в разделе Platform → Testing → Benchmarks.
pacod-cms · Управление контентом
- pacod-id: Студия выполняет вход пользователей через pacod-id, где также хранятся их роли на уровне организации и сайта.
- pacod-gw: AI-функции работают через шлюз — студия никогда не хранит ключ провайдера.
- pacod-demo: Запускает CMS вместе с остальными проектами за одним Caddy, одним pacod-id и одним шлюзом — живая студия и три демонстрационных сайта.
pacod-ap · Платформа для создания агентов
- pacod-gw: Каждый вызов LLM идёт через шлюз и приписывается человеку, ходу, агенту и цели; модели, цены, ключи провайдеров, лимиты токенов, использование и стоимость находятся в ведении шлюза.
- pacod-id: Аккаунты, пароли, сессии и роли хранятся в pacod-id; люди входят через него, а приложение и консоль шлюза используют один общий аккаунт.
- pacod-kb: pacod-ap приносит pacod-embeddings, общий сервис эмбеддингов и переранжирования на bge-m3; запущенный рядом, pacod-kb может пользоваться им, а не загружать модель сам.
pacod-id · Идентификация и доступ
- pacod-gw: С
PGW_AUTH=oidcконсоль впускает людей через pacod-id; ядро передаёт ролиgw, регистрирует организации и рабочие пространства и следит за лентой. - pacod-ap: Приложение и его консоль администратора входят через pacod-id; API передаёт роли
pacodи следит за лентой, так что у приложения и консоли шлюза один общий аккаунт. - pacod-cms: Студия впускает людей через pacod-id, где хранятся их роли на уровне организации и сайта.
- pacod-kb: Интерфейс впускает людей через pacod-id; роли viewer, editor и admin назначаются там.
- pacod-benchmark: Интерфейс впускает людей через pacod-id, а API проверяет каждого вызывающего по своим ролям viewer, operator и admin, которые передаёт при каждом запуске.
pacod-kb · База знаний для RAG
- pacod-id: Пользователи входят через pacod-id; роли viewer, editor и admin назначаются там, а страница участников kb работает через его admin API.
- pacod-gw: Необязательный проход очистки через LLM и необязательное второе мнение при проверке идут через шлюз, который хранит ключи провайдеров, рассчитывает стоимость каждого вызова и атрибутирует его.
- pacod-ap: Работая рядом с pacod-ap, kb может строить эмбеддинги и переранжировать через его общий сервис эмбеддингов — с теми же векторами BGE-M3.
- pacod-demo: Запускает kb вместе с остальными продуктами на общих Qdrant, PostgreSQL и сервисе эмбеддингов, за общей точкой входа.
pacod-benchmark · Бенчмарки шлюза
- pacod-gw: Шлюз, который он измеряет. Он управляет агентами нагрузки и моком pacod-gw, готовит сцену каждого прогона через API управления и публикует отчёты в разделе Platform → Testing → Benchmarks.
- pacod-id: Вход в интерфейс идёт через pacod-id, а API проверяет каждого вызывающего по ролям из authz/bench.yaml, которые передаёт в pacod-id при каждом запуске.
- pacod-demo: Работает на bench.demo.pacod.io рядом с другими продуктами, управляет демо-шлюзом с токеном, который выпускает bootstrap, и использует собственные агент нагрузки и мок шлюза.
pacod-demo · Весь стек
- pacod-id: Единственный провайдер идентификации в стеке, с одним realm, через который входит каждый продукт; bootstrap даёт администратору роль каждого продукта.
- pacod-gw: Единственный шлюз в стеке, запущенный с включённым кэшем ответов; bootstrap даёт каждому продукту собственный ключ шлюза.
- pacod-ap: Запускает стартового агента, небольшую вымышленную службу поддержки, с его сайтом, чатом и консолью администратора.
- pacod-cms: Запускает студию с её AI-помощью при написании и три демо-сайта, Demo Journal, Demo Notes и Starward.
- pacod-kb: Запускает базу знаний на общих Qdrant, PostgreSQL и сервисе эмбеддингов.
- pacod-benchmark: Измеряет собственный шлюз стека с помощью агента нагрузки и мока шлюза; его отчёты видны в консоли шлюза.
В основе — несколько твёрдых принципов
Открытый код
Лицензия Apache-2.0; исходный код, тесты и модели угроз открыты.
На вашей инфраструктуре
Docker Compose для ноутбука, Helm-чарты там, где это важно. Ваши данные остаются на ваших машинах.
Единый вход
pacod-id обеспечивает вход во все продукты и хранит, что каждому пользователю разрешено.
Один шлюз
pacod-gw хранит ключи, рассчитывает стоимость вызовов и следит за соблюдением квот — для всех продуктов.