Перейти к основному содержимому

Приглашения по email и доступ группы к моделям

Мы продолжили развивать возможности для командной работы: участников теперь можно приглашать по email, задавать лимит каждому и настраивать доступы к моделям и маршрутам для группы. Кроме того, у каждого API-ключа появилась своя страница аналитики, ключ можно ограничить по IP-адресу, а отчет по расходам теперь можно скачать в формате XLSX.

Что нового

Приглашение участников по email

Теперь в группу можно не только добавить уже зарегистрированных пользователей аккаунта, но и пригласить новых. В разделе API-ключиОрганизация нажмите Добавить участников и укажите Email-адреса — через запятую, точку с запятой или с новой строки. Выберите роль, задайте лимиты и нажмите Пригласить.

Добавление участников по email

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

Если адрес уже принадлежит пользователю аккаунта, приглашение не создается — человек становится участником сразу.

Лимиты участников группы

Появилась возможность назначить одинаковые лимиты расходов персональным API-ключам участников группы. В окне редактирования настроек группы в блоке Лимиты участников выберите режим Одинаково каждому. Введите сумму или нажмите Разделить общий лимит поровну (доступно, если для группы задан ровно один лимит расходов).

Кнопка Применить перезаписывает лимиты персональных ключей участников. Изменение применяется только к активным ключам с указанным владельцем: у ключей, созданных в интерфейсе до этого релиза, владельца нет. Участники, у которых нет подходящих ключей, перечислены отдельной строкой.

Назначение лимитов

Доступ группы к моделям и маршрутам

В окне редактирования настроек группы появился редактор Доступ к моделям, открытый тимлиду группы и владельцу аккаунта. У редактора два взаимоисключающих режима:

  • Разрешённые модели — доступны только модели из списка, все остальное закрыто;
  • Запрещённые модели — доступны все модели, кроме отмеченных.

Отдельный блок Закрыть маршрут целиком задает запрет поверх списка моделей. Модель останется доступной по другим своим маршрутам, а закрытый маршрут будет показан в списке моделей зачеркнутым.

Выбор доступных моделей

Аналитика API-ключа и матрица доступа

У каждого API-ключа появилась своя страница аналитики. Страница доступна владельцу аккаунта, тимлиду и аналитику. Чтобы перейти к ней, в разделе API-ключи раскройте подробную информацию о ключе и нажмите ссылку Аналитика ключа.

Страница аналитики ключа

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

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

Доступ ключа к моделям

Ограничение ключа по IP-адресам

В настройках ключа появилось поле Разрешённые IP-адреса: в него записывается одиночный адрес (10.0.0.1) или подсеть в нотации CIDR (10.0.0.0/8). Записей может быть несколько, имя хоста не принимается.

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

Отчет по расходам в XLSX

В разделе Аналитика теперь можно скачать отчет в формате XLSX с помощью кнопки Отчёт по расходам. Отчет формируется за период, выбранный на самой странице. Дополнительно можно указать группировку По дням или По месяцам, а также API-ключ (по умолчанию Все ключи). Опция Детализация по токенам добавляет в отчет разбивку по типам токенов: входные, выходные, кэшированные и т. д.

Отчет содержит лист Summary (дата, ключ, расход и лимиты) и отдельный лист на каждый API-ключ с разбивкой по дате, сервису, модели.

Выгрузка за длительный период может занимать много времени. Ожидание ограничено 5 минутами: если за это время отчет не сформируется, показывается сообщение об ошибке.

Модели в контуре Just AI

На платформе появился маршрут Just AI — он предоставляет доступ к моделям, развернутым в Caila. Для запросов используйте адрес https://caila.io/api/providers/justai/v1/chat/completions и формат, совместимый с OpenAI.

Актуальный путь Google для речи и изображений

Добавлена поддержка пути v1beta/interactions для синтеза речи и генерации изображений. Модель передается в теле запроса, версия контракта — в заголовке Api-Revision.

примечание

В карточках моделей этот путь не отображается.

Пример запроса
curl -N -X POST "https://caila.io/api/providers/google/v1beta/interactions" \
-H "x-goog-api-key: ${MLP_API_KEY}" \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream" \
-H "Api-Revision: 2026-05-20" \
-d '{
"model": "gemini-3.1-flash-tts-preview",
"input": "Say cheerfully: Have a wonderful day!",
"response_format": { "type": "audio" },
"generation_config": { "speech_config": [ { "voice": "Kore" } ] },
"stream": true
}'

Каталог, чат и интеграции

  • Каталог: добавлены модели GPT-6; появился фильтр по вендорам.
  • Карточки моделей: доступно переключение между Fast- и обычной версией модели вместо отдельных карточек; адрес для запроса определяется по типу операции — например, векторизация, генерация изображений, синтез речи.
  • Чат: в настройках появился переключатель стриминга; выбранный в карточке маршрут переносится в чат по кнопке Попробовать; когда лимит расходов группы исчерпан, чат об этом предупреждает.
  • Кодинг-агенты: конфигурация OpenCode отдает полные данные о возможностях моделей — рассуждения, вызов инструментов, лимиты и модальности; инструкция Claude Code Router обновлена под CCR 3.x.
  • API-ключи: значение ключа скрыто по умолчанию и замаскировано в интеграциях и карточке модели (при этом копируется целиком); полное имя ключа показывается по ховеру; в подробной информации о ключе видна дата создания.
  • Навигация: перейти к другим продуктам Just AI можно с помощью кнопки над боковым меню.
  • Запросы к Yandex: содержат явный запрет на логирование данных на стороне провайдера.

MLOps-платформа: переключатель активности сервиса

В разделе НастройкиХостинг карточки сервиса появился переключатель Активность сервиса с состояниями Активен и Приостановлен. При выключении сервиса платформа запоминает настройки хостинга и фактическое число инстансов, а при включении — возвращает их.

Если сервис единственный в вашей собственной ресурс-группе, в ней включено автомасштабирование и все активные серверы добавлены автоматически, то вместе с остановкой сервиса будут удалены и серверы группы. Подсказка у переключателя предупреждает об этом заранее. Включение такого сервиса занимает больше времени — сначала запускаются серверы. Вручную добавленные серверы, серверы в ресурс-группе free-pool-quota… и в группах, обслуживающих несколько сервисов, продолжают работать — выключение сервиса их не затронет.

Переключатель работает в режимах хостинга Простой и Автоматический. Он неактивен у сервиса-прототипа, в остальных режимах хостинга, а также у сервиса без активных инстансов и заданных настроек автомасштабирования (ненулевые границы количества инстансов, расписание). В этих случаях подсказка называет причину.

Исправления

Запросы к моделям

  • Запрос к модели с датированной версией в имени (например, deepseek/deepseek-chat-v3-0324 или deepseek-v4-flash-0731) выполняется, а не отвечает ошибкой о неизвестной модели, если в каталоге Caila есть базовая модель.
  • Ответ GigaChat на общем адресе https://caila.io/api/openai/v1/chat/completions содержит поле id, поэтому его разбирает OpenAI SDK.
  • Ответ https://caila.io/api/adapters/openai/models содержит обязательные по спецификации OpenAI поля "object": "list" у списка моделей и "object": "model" у каждого элемента. Open WebUI больше не отбрасывает такой список целиком.
  • При запросе в формате Anthropic с отложенной загрузкой схем (defer_loading) больше не возвращается ошибка 400.
  • На маршруте OpenAI устаревший параметр max_tokens, из-за которого reasoning-модели отвечали ошибкой 400, заменяется на max_completion_tokens.
  • При запросе к Anthropic-модели по адресу https://caila.io/api/openai/v1/chat/completions без max_tokens больше не возникает ошибка 400: при конвертации подставляется значение по умолчанию для выбранной модели.
  • При конвертации в формат OpenRouter не теряется video_url.
  • Ошибка провайдера при запросе на https://caila.io/api/anthropic/v1/messages без стриминга возвращается в нативном формате Anthropic.
  • Стриминговый ответ Anthropic возвращается клиенту с восстановленными данными, которые были замаскированы Jay Guard.
  • Отказ Jay Guard по размеру тела теперь отличим от недоступности сервиса: у него отдельный код и статус 413 вместо общего 502. Ответ векторизатора больше не отправляется на анализ в Jay Guard — в векторе нечего анализировать.
  • В каталоге у моделей Gemini Flash появились чат-адреса.
  • В карточке модели у маршрутов, которые обслуживает не сам вендор, помечены недоступными только те возможности, которые реально не поддерживаются на этом маршруте.
  • Если закрыт один из маршрутов, запрос к модели отправляется по разрешенному маршруту. Запрос отклоняется, только если закрыты все маршруты модели.

Расходы и биллинг

  • У моделей Fal надбавка за аудио считается за каждую секунду, а явно выключенные аудио и веб-поиск больше не увеличивают стоимость.
  • Batch-списание провайдера Anthropic передает разбивку по типам токенов в аналитику.
  • Расход в аналитике теперь относится к той модели, которую указал клиент в запросе, даже если провайдер вернул другое имя (например, имя снапшота).
  • Аккаунт, заблокированный из-за отрицательного баланса, автоматически разблокируется, когда условия блокировки перестают выполняться.

Организация и API-ключи

  • Общий ключ группы учитывает лимит расходов группы, а участник видит общий ключ своей группы.
  • Тимлидом можно назначить только участника группы, а при исключении тимлида из состава участников он перестает быть тимлидом.
  • Создавать и удалять группы может только владелец аккаунта — у тимлида эти кнопки больше не показываются.
  • Поиск в списке ключей находит ключ и по владельцу, и по группе.
  • Массовые действия с API-ключами (например, разморозка) применяются только к ключам подходящего статуса, остальные ключи пропускаются с объяснением причины.
  • При создании API-ключа для пользователя, состоящего хотя бы в одной группе, лимит расходов обязателен.
  • Исправлена валидация суммы лимита для группы.
  • Лимит и остаток чужой группы больше нельзя получить по ее идентификатору.
  • В окне редактирования группы исправлен выбор маршрута из списка и добавлен для закрытия.
  • В карточке группы корректно отображается доступность моделей: если выбран режим доступа Разрешённые модели и ни одна модель не отмечена, выводится сообщение «доступных моделей нет», а если режим Запрещённые модели и ни одна модель не отмечена — «доступны все модели».
  • Тимлид группы получил право настраивать доступ к моделям для своей группы.

Интерфейс

  • Переключение между аккаунтами теперь работает корректно.
  • В разделе Баланс сумма автоматически обновляется, когда поступили деньги. Текущий баланс и суммы в истории пополнений выводятся с копейками.
  • В разделе Аналитика календарь не позволяет выбрать период глубже 120 дней — это срок хранения истории расходов.
  • Ошибка загрузки данных в разделах Аналитика, Баланс, Каталог, Чат и API-ключи больше не занимает весь экран, а отображается внутри конкретного блока с кнопкой повтора.
  • Счетчики согласуют форму слова с числом: теперь «3 запроса», а не «3 запросов».
  • В чате индикатор генерации ответа (мигающий текстовый курсор) больше не задваивается, пока ответ пустой; а если запрос отменен или завершился ошибкой — вместо индикатора отображается статус.
  • Прокрутка колесиком над числовым полем не меняет его значение.
  • В разделе Интеграции имя модели подставляется в сниппеты в формате, который принимается выбранным маршрутом.

Как вам обновление? Ждем ваших комментариев в Telegram-сообществе! ⚡