Скрипт «Triage posts using AI» плагина «Automation» всегда включает данные изображений в запрос

Приоритет/Серьезность:

Средний

Платформа:

Discourse b66fca70d0e3d12ef930398289fac5269cd240c7

Описание:

Официальный плагин «Automation» содержит скрипт «Triage posts using AI» (Сортировка постов с помощью ИИ). Этот скрипт передает содержимое поста в модель LLM, а затем выполняет настраиваемые действия по сортировке в зависимости от результата.

Чтобы уложиться в лимит токенов, предоставляемый планом хостинга Discourse (при использовании хостинга LLM от CDCK), или в бюджет при использовании стороннего провайдера LLM, важно контролировать количество токенов, необходимых для каждого запроса. Скрипт «Triage posts using AI» предоставляет настройку «Max Post Tokens» (Максимальное количество токенов поста), которая позволяет установить ограничение на объем содержимого поста, включаемого в запрос.

:bug: Если к посту прикреплены изображения, огромный объем данных изображения всегда включается в запрос, даже если это приводит к превышению лимита токенов поста, установленного для автоматизации через настройку «Max Post Tokens».

Это происходит даже тогда, когда опция «Vision enabled» (Включено зрение) отключена в конфигурации персоны ИИ, используемой автоматизацией.

Это приводит к неконтролируемым расходам токенов.

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

Шаги для воспроизведения:

  1. Если у вас еще нет подходящей пользовательской персоны ИИ, создайте её.
  2. Отключите опцию «Vision enabled» (Включено зрение) в настройках персоны.
  3. Если он еще не включен, активируйте встроенный плагин «Automation».
  4. Перейдите на страницу «Automations» (Автоматизации) плагина (/admin/plugins/automation/automation).
  5. Нажмите кнопку «+ Add automation» (+ Добавить автоматизацию).
    Откроется страница «Select a script» (Выбрать скрипт).
  6. Выберите скрипт «Triage posts using AI» (Сортировка постов с помощью ИИ).
    Откроется страница конфигурации автоматизации.
  7. Настройте автоматизацию, как требуется для простого теста. Не обязательно, чтобы автоматизация приводила к выполнению каких-либо действий, главное, чтобы она генерировала запросы к LLM.
  8. В настройках автоматизации в меню Script options > Persona (Параметры скрипта > Персона) выберите созданную вами в шаге 1 персону ИИ.
  9. В настройках автоматизации установите значение параметра Script options > Max Post Tokens (Параметры скрипта > Максимальное количество токенов поста) равным 20.
  10. Нажмите кнопку «Update automation» (Обновить автоматизацию) в нижней части страницы конфигурации автоматизации.
    Вы вернетесь на страницу «Automations» (Автоматизации).
  11. Переключите тумблер «Enable automation» (Включить автоматизацию) для вновь созданной автоматизации в положение «вкл».
  12. Напишите пост или личное сообщение, которое запустит автоматизацию. Добавьте изображение в пост.
  13. Опубликуйте пост или сообщение.
  14. Перейдите на страницу администрирования плагина «Data Explorer» (/admin/plugins/explorer).
  15. Нажмите кнопку «+» на странице.
    Появится поле «Query name…» (Название запроса…).
  16. Введите в поле «Query name…» текст Get AI Audit Logs (Получить журналы аудита ИИ).
  17. Нажмите кнопку «+ Create New» (+ Создать новый).
    Будет создан новый запрос в Data Explorer.
  18. Нажмите кнопку «Edit» (Редактировать).
    Откроется поле редактирования кода запроса.
  19. Замените содержимое шаблона запроса следующим:
    SELECT request_tokens, raw_request_payload
    FROM ai_api_audit_logs
    WHERE feature_name = 'llm_triage'
    
  20. Нажмите кнопку «Run».
    :bug: Значение поля request_tokens, отображаемое в результате запроса Data Explorer для запроса, сгенерированного автоматизацией после срабатывания на ваш пост, значительно превышает количество, которое, как ожидалось, будет использовано «Системным промптом» из конфигурации AI-персоны и максимальным лимитом в 20 токенов для контекста текста поста, установленным в конфигурации автоматизации.
  21. Нажмите кнопку ●●● справа от значения поля raw_request_payload в результате запроса Data Explorer.
    Откроется диалоговое окно, отображающее полное значение поля.

:bug: Данные изображения, прикрепленного к посту, были включены в данные запроса через ключ messages[*].image_url.

Пример:

{
  "model": "Qwen/Qwen3-VL-30B-A3B-Instruct",
  "max_tokens": 16384,
  "messages": [
    {
      "role": "system",
      "content": "Вам будет предоставлен фрагмент текста, и ваша задача — определить локаль этого текста"
1 лайк

Спасибо за отчет @per1234 :+1:

Это будет исправлено в

2 лайка

Эта тема была автоматически закрыта через 2 дня. Новые ответы больше не принимаются.