Predictor LLM
версия 0.14.1
Доступ к корпоративной языковой модели Predictor: OpenAI-совместимый API по ключам проектов, чат в личном кабинете и учёт потребления по пользователям и проектам.
Возможности
- OpenAI-совместимый API: чат, стриминг, tools, эмбеддинги.
- Ключи на проекты — выпуск, просмотр и отзыв в личном кабинете.
- Чат с моделью: режим рассуждений Think, поиск в интернете Search, память диалога.
- Учёт токенов и запросов по пользователям и проектам, журнал обращений.
- Регистрация по почте с модерацией администратором.
Сведения
- Версия
- 0.14.1 от 2026-09-25
- Модель
Qwen/Qwen3.8-27B- Эмбеддер
Qwen/Qwen3-Embedding-0.6B- Поиск
- SearXNG
- API
http://localhost:10010/v1
История изменений
0.14.1 2026-09-25 текущая
Добавлено
deploy/deploy.sh— выкатка всего стека (vpn, postgres, searxng, api) на удалённую машину по SSH одной командой.
Исправлено
- Замечания статического анализа SonarQube: регулярные выражения без экспоненциального перебора (проверка e-mail, шапка
SKILL.md, Markdown в чате, разбор текстовых вызовов инструментов), остановка генерации корректно завершает задачу (CancelledErrorпробрасывается после сохранения ответа). - Доступность: подписи у полей загрузки файлов, уведомления и статус LLM — элементы
<output>, столбцы графика потребления — кнопки с текстовой подписью.
Изменено
- Крупные функции разбиты на части без изменения поведения: отправка сообщения в чате, генерация docx/xlsx/pptx, стрим OpenAI/Anthropic, отчёт по потреблению, анонимизатор, чтение документов, отрисовка ответа в чате.
- Добавлен
sonar-project.properties; сторонние навыкиapp/skill_packs/в анализ не входят. - Статистика потребления в админке — четыре столбчатые диаграммы вместо таблицы: проекты и пользователи по токенам и по запросам (первые 8, полный список — в CSV). У каждого проекта и пользователя свой цвет, одинаковый на обеих диаграммах; палитра подобрана для светлой и тёмной темы.
Удалено
- Вкладка «Журнал» (
/admin/requests) в админке. Последние запросы проекта по-прежнему видны в ЛК на его странице.
0.14.0 2026-09-25
Добавлено
- Anthropic-совместимый API:
POST /v1/messages(обычный ответ и стрим) иPOST /v1/messages/count_tokens— к шлюзу подключается Claude Code (ANTHROPIC_BASE_URL). Формат переводит vLLM, шлюз добавляет ключи, очередь, повторы и учёт (эндпоинтmessagesв отчётах). - Параметр
thinkingAnthropic (enabled/adaptive/disabled) иoutput_config.effortпереводятся в think иreasoning_effortQwen3.8; без них —DEFAULT_THINKINGи рекомендованный сэмплинг. - Запросы на любые модели (например, «быструю»
claude-haiku-…, на которую Claude Code шлёт фоновые задачи) уходят вLLM_MODEL. - Ключ принимается и в заголовке
x-api-key, как у Anthropic API.
Изменено
- Ошибки на
/v1/messages*— в формате Anthropic ({"type": "error", "error": {...}}); остальные маршруты — по-прежнему в формате OpenAI.
0.13.0 2026-09-25
Добавлено
- Навыки в формате [Agent Skills](https://agentskills.io/specification):
SKILL.mdс YAML-шапкой и файлы навыка (справочники, примеры, скрипты). Модель видит список файлов подключённого навыка и читает нужные сама (read_skill_file); скрипты не выполняются. - Импорт навыка в админке: .zip с папкой навыка или отдельный
SKILL.md; импортируется выключенным, видны источник, лицензия, совместимость и файлы. - Навыки из [anthropics/skills](https://github.com/anthropics/skills) (Apache 2.0) — кнопкой в реестре: internal-comms (3P-апдейты, рассылка, FAQ), discernment-nudge, frontend-design, mcp-builder, webapp-testing. Файлы лежат в
app/skill_packs/anthropic/с лицензией и NOTICE. - 10 тем оформления из theme-factory для создаваемых файлов (
themeуcreate_file): модель берёт их, только если пользователь просит другой стиль; по умолчанию — фирменный Predictor.
Изменено
- Встроенные навыки, которые администратор не правил, при старте получают новые тексты инструкций из кода.
- Модель создаёт файл, только когда его явно просят; на обычный вопрос отвечает в чате.
- Код навыка — до 64 символов, описание — до 1024 (как в спецификации Agent Skills).
Исправлено
- Нестабильный тест учёта по проектам чата: проверяется прирост записей по проектам, а не «последняя запись» (учёт пишется фоновой задачей).
0.12.0 2026-09-24
Добавлено
- Автовыбор навыков: модель видит только названия и описания навыков-инструкций и сама подключает подходящий (
use_skill); полные инструкции загружаются, лишь когда нужны. Под ответом видно, какой навык подключён. - Создание файлов в чате: модель делает документы Word, таблицы Excel (с формулами) и презентации PowerPoint в фирменном стиле Predictor — цвета, шрифты, логотип (
create_file); файл скачивается из сообщения. - Стартовый набор навыков-инструкций кнопкой в админке: статус-отчёт, разбор инцидента, протокол встречи, деловое письмо, анонс для команды.
- «Составить по описанию» на странице нового навыка: LLM готовит черновик — название, код, описание «Используй, когда…», инструкции с примерами.
Изменено
- Описание навыка-инструкции теперь условие применения: по нему модель решает, подключать ли навык.
Безопасность
- В создаваемых Excel-файлах формулы, способные обращаться к сети или запускать программы (
HYPERLINK,WEBSERVICE, DDE и т. п.), записываются как текст.
0.11.0 2026-09-24
Добавлено
- Поиск в интернете стал навыком-инструментом: модель сама решает, когда искать (function calling
web_search), может поискать до 3 раз за ответ и знает сегодняшнюю дату. Правила «когда искать» администратор правит в навыке. - Анонимизатор — встроенный навык: перед отправкой в поисковик заменяет в запросе персональные данные и корпоративную тайну на выдуманные значения (словарь администратора, e-mail, телефоны, ИНН, СНИЛС, паспорта, карты, счета, IP, а также ФИО, компании, проекты и адреса через локальную LLM). Если проверить запрос не удалось, поиск отменяется.
- В статусе поиска видно, что скрыл анонимизатор; на странице анонимизатора в админке его можно проверить на примере.
- Раздел «Инструменты» во вкладке «Навыки».
- Вызов инструмента, который vLLM вернул текстом (
<tool_call>…), скрывается от пользователя и выполняется.
Изменено
- Кнопка Search в поле ввода убрана: вместо неё пометка «Поиск · анонимно», когда навык включён.
- Отдельный вызов LLM для переформулировки поискового запроса больше не нужен — запрос пишет сама модель.
- Источники всех поисков ответа нумеруются сквозь и показываются одним списком.
0.10.0 2026-09-24
Добавлено
- Вкладка «Навыки» в админке — реестр навыков чата: создание, правка, включение и выключение, удаление; видно, в скольких диалогах навык выбран.
- Навыки-инструкции: пользователь выбирает навык для диалога на панели над чатом, его инструкции уходят модели системным сообщением.
- Чтение документов в чате: Word (
.docx), Excel и CSV, PowerPoint (.pptx), PDF с текстовым слоем и текстовые файлы — скрепкой, Ctrl+V или перетаскиванием, до 5 на сообщение. Модель отвечает по тексту документа, и документ остаётся в контексте следующих вопросов. - Плашка документа в сообщении открывает извлечённый из него текст — то, что увидела модель.
- Встроенные навыки чтения документов в реестре: их можно выключить (формат перестаёт прикладываться) и поправить их инструкции.
0.9.0 2026-09-24
Добавлено
- Проект у каждого чата: кнопка «Новый чат» открывает выбор проекта, в списке чатов проект виден цветным лейблом.
- Проект открытого чата можно сменить на панели над чатом; следующие сообщения учитываются на новый проект.
Изменено
- Потребление чата пишется на проект этого чата, а не на один общий проект из настроек; настройка теперь лишь подсказывает проект для нового чата (последний выбранный).
- Старые чаты без проекта получают проект по умолчанию при следующем сообщении.
0.8.2 2026-09-24
Исправлено
- Чат снова отправляет сообщения: в 0.8.1 при правке пропала функция сбора приложенных картинок, и отправка обрывалась ошибкой в браузере (поле очищалось, запрос в LLM не уходил).
- Тест
tests/test_static_js.py: проверяет, что все вызываемые в JS страниц функции объявлены.
0.8.1 2026-09-24
Изменено
- Библиотека изображений перенесена в левую колонку чата, над кнопкой «Новый чат»; её можно свернуть.
- Все добавленные в поле ввода картинки (скрепка, Ctrl+V, перетаскивание) сразу попадают в библиотеку, не дожидаясь отправки.
Исправлено
- Картинка, вставленная из библиотеки, прикладывается без перекодирования — после отправки в библиотеке больше не появляется её копия.
0.8.0 2026-09-24
Добавлено
- Библиотека изображений в чате ЛК: панель справа (кнопка «Библиотека» на панели чата или значок картинки в поле ввода); загрузка своих картинок, удаление.
- Картинку из библиотеки можно вставить в сообщение кликом или перетаскиванием в поле ввода.
- Отправленные в чат изображения сами попадают в библиотеку; одинаковые файлы хранятся один раз, до 300 изображений на пользователя.
Изменено
- Чат занимает всю ширину окна.
0.7.0 2026-09-24
Добавлено
- Картинки в чате ЛК: скрепка в поле ввода, вставка из буфера (Ctrl+V) и перетаскивание, превью перед отправкой; до 5 изображений (PNG, JPEG, WebP, GIF) по 10 МБ.
- Картинки сохраняются в истории диалога и видны только владельцу.
- Перед отправкой браузер уменьшает изображение до 1536 px по длинной стороне (JPEG) — меньше трафика и токенов.
Изменено
- В модель уходят картинки только текущего сообщения; в истории на их месте — пометка, чтобы старые изображения не тратили токены при каждом ответе.
- Тесты работают с файловой SQLite вместо
:memory:— поведение как у рабочей БД (без общего соединения между сессиями).
Безопасность
- Тип изображения определяется по сигнатуре файла, а не по заявленному; картинки отдаются с
nosniffи запрещающей CSP.
0.6.0 2026-09-24
Добавлено
- Раздел «О программе»: текущая версия, описание сервиса и история изменений; иллюстрация с мамонтом перенесена сюда из шапки.
- Контроль версий: файл
VERSION(SemVer) и этот changelog; версия видна в подвале страниц, в/healthи в Swagger. - Проект переведён под git.
0.5.0 2026-09-24
Добавлено
- Режим Search в чате: поиск в интернете через SearXNG, загрузка текста страниц, ответ со ссылками на источники [1], [2] и списком источников под ответом.
- Переключатели Think и Search перенесены в поле ввода сообщения.
- Журнал запросов в админке: каждое обращение к LLM отдельной строкой (пользователь, проект, ключ, модель, токены, статус, длительность), фильтры и выгрузка в CSV.
- Последние запросы проекта на его странице в ЛК.
- Проект «Чат» — проект по умолчанию для сообщений из чата, создаётся у каждого пользователя автоматически.
Изменено
- Стрим учитывается по реально сгенерированным токенам (
continuous_usage_stats): остановленный или оборванный ответ больше не записывается с нулём токенов. - Из шапки убрана надпись «LLM-шлюз».
Безопасность
- Страницы из поисковой выдачи загружаются только с публичных адресов (в т.ч. при редиректах) — шлюз находится в сети VPN и видит внутреннюю сеть.
0.4.0 2026-09-24
Добавлено
- Индикатор доступности LLM в чате.
- Отдельный ключ по умолчанию «Чат в ЛК» для запросов из чата.
- Кнопка показа пароля (глаз) во всех полях пароля.
Изменено
- Ответ модели в чате генерируется на сервере и не прерывается при уходе со страницы или смене вкладки; при возврате страница подхватывает идущий ответ.
- Понятное сообщение в чате, когда LLM недоступна.
Исправлено
- VPN-туннель переподключается сам после обрыва (сторож в контейнере
vpn, healthcheck). - Быстрое следующее сообщение могло уйти в LLM без предыдущего ответа модели.
0.3.0 2026-09-24
Добавлено
- Чат с LLM в личном кабинете: диалоги, режим think, настраиваемая «память» диалога, выбор проекта для учёта.
- Светлая и тёмная темы (сохраняются в профиле).
- При создании проекта — подсказки из названий проектов других пользователей; сводная статистика по одноимённым проектам.
Изменено
- Оформление в фирменном стиле Predictor.
0.2.0 2026-09-24
Добавлено
- Регистрация по почте с подтверждением, вход, сброс пароля.
- Модерация заявок администратором: одобрение, отказ с причиной, блокировка, назначение администраторов.
- Проекты и API-ключи в личном кабинете: выпуск, повторный показ, отзыв, архив проекта.
- Учёт каждого обращения к LLM (пользователь, проект, ключ, токены) и статистика с фильтрами и выгрузкой в CSV.
- PostgreSQL в docker-compose.
Удалено
- Статические ключи
SERVICE_API_KEYS— доступ только по ключам проектов из ЛК.
0.1.0 2026-09-22
Добавлено
- OpenAI-совместимый шлюз к Qwen3.8 (vLLM) через VPN:
/v1/chat/completions(в т.ч. стриминг и tools), управление think, очередь и повторы запросов. - Эмбеддинги Qwen3-Embedding:
/v1/embeddings. - Скрипты запуска vLLM на GPU-сервере и smoke-тест.