Может, кто-нибудь объяснит правила регенерации сводок? Обсуждалось, что сотрудники могут регенерировать сводки через час, но я наблюдаю совсем другое. (Не уверен, что именно вижу — всё кажется непоследовательным.) Если появляется новый пост, должна ли предлагаться возможность регенерации? И для всех пользователей или только для сотрудников?
После экспериментов я вижу следующее:
- Для тем с < 100 сообщениями кнопка «Перегенерировать» становится активной сразу, но только для сотрудников.
- Для тем с > 100 сообщениями кнопка «Перегенерировать» не активируется, даже если ждать час.
Даже если кнопка «Перегенерировать» станет активной, такой рабочий процесс не подходит для наших сотрудников, так как им придётся постоянно нажимать на неё. Поэтому я пока планирую реализовать вебхук, который будет отслеживать новые сообщения и автоматически перегенерировать сводку, используя URL https://forum.example.com/discourse-ai/summarization/t/12345. Грубый расчёт показывает, что это обойдётся примерно в 500 долларов в год для нашего форума. Я понимаю, что Discourse пытается защитить от неожиданных крупных расходов.
Привет, @markschmucker,
Мы сейчас работаем над стратегией заполнения пропущенных данных для кратких сводок тем в DiscourseAI. Планируем выпустить её на следующей неделе, и я сообщу вам здесь, когда она будет готова.
У нас теперь есть эта функция, @markschmucker. Вы можете настроить её через параметр сайта ai summary backfill maximum topics per hour.
Я установил это значение на 12, и в панели управления Anthropic я вижу событие каждые 5 минут, как и ожидалось. Однако я не вижу полезную нагрузку в этой панели. Как я могу увидеть, какое резюме Discourse перегенерирует?
Вся эта информация хранится в таблице ai_api_audit_logs. Если у вас установлен плагин Data Explorer, вы можете использовать следующий запрос:
SELECT
*
FROM
ai_api_audit_logs
ORDER BY
id DESC
LIMIT
100
После тестирования кажется, что при заполнении пропущенных данных генерируются сводки для некоторых последних тем (похоже, это около 100 тем или тем, которые обновлялись в последние несколько недель?).
Во время или после цикла заполнения пропущенных данных, если в теме со сводкой появляется новый пост, её сводка не обновляется автоматически. (Если в теме менее 100 постов, у сотрудников есть кнопка «Пересоздать», которую можно нажать вручную.)
Когда должна обновляться сводка темы с новым постом?
Она должна обновляться в течение 5 минут после публикации ответа, по крайней мере, для обычных тем с менее чем 50 ответами.
Ваше сообщество больше ориентировано на мега-темы?
cc @Roman
Теперь я вижу, что в задаче SummariesBackfill произошла ошибка — я достиг дневного лимита запросов в Anthropic. Возможно, именно поэтому процесс остановился примерно после 100 последних тем, а также почему обновлённая тема не получила новую сводку.
Так, если бы я не достиг лимита запросов, суммировала бы задача SummariesBackfill все 60 000 наших тем? Даже те, которые неактивны уже много лет?
Большинство тем содержат более 100 ответов. У нас есть 8 тем с более чем 1000 ответов.
Да, процесс запускается каждые 5 минут для обработки партии тем, отдавая приоритет наиболее свежим активным и пропуская те, у которых уже есть актуальная сводка.
Если вы установите максимальный лимит в час выше, чем среднее количество тем с новой активностью в час, то в итоге будут обработаны все ваши темы.
Запрос на новую функцию: что-то вроде ai summary backfill maximum age, чтобы мы не несли большие расходы на суммирование старых тем, по которым не было активности, скажем, за последние шесть месяцев. Я оцениваю, что суммирование всех 60 000 тем обойдется нам в 3 000 долларов, хотя большинство из них нам не интересны.
cc @Roman
Просто уточняю: вы используете Haiku 3.5? Она должна генерировать хорошие сводки.
Я использую Sonnet 3.5, и на то нет веских причин. Haiku 3.5 должен значительно снизить затраты. Тем не менее, считаю, что предложение по функционалу всё ещё стоит рассмотреть.
Да, конечно.
Мне кажется, мы могли бы создать продвинутый алгоритм обратной подгрузки в автоматизации, так как есть множество параметров, которые можно настраивать помимо возраста:
- Только эти категории
- Материалы с количеством просмотров больше X
- Материалы с количеством лайков больше N
- Материалы с принятыми ответами
- Материалы новее X
Добавление 10 настроек сайта для этого может перегрузить пользователей.
Я согласен с Марком. Если мы собираемся внедрить это для нашего форума, нам не нужно, чтобы старые посты без новой активности переформатировались заново. В настоящее время ИИ слишком дорог, учитывая, что сводки — это лишь небольшая часть всех инструментов ИИ.
Сейчас существует параметр ai summary backfill topic max age days, и по умолчанию он установлен на 30 дней.
Старые темы не пересуммируются, если в них нет новой активности.
Я очистил все сводки через rails c AiSummaries.destroy_all и запустил новый процесс с другой LLM, установив ai summary backfill topic max age days = 60. Сначала я слишком высоко установил ai summary backfill maximum topics per hour, из-за чего многие новые темы не прошли из-за ограничений скорости (rate limits). Это моя ошибка, но я ожидал, что после заполнения данных за 60 дней процесс начнёт новый цикл и заполнит пропущенные темы. Однако этого не происходит — процесс заполнил данные за 60 дней и остановился.
Задача успешно выполняется каждые 5 минут, но занимает лишь миллисекунды, поэтому очевидно, что она ничего не находит для заполнения.
Я отслеживаю прогресс (или его отсутствие) через Data Explorer, используя таблицы ai_summaries и ai_api_audit_logs.
Если я вручную нажимаю кнопку «Создать сводку» для темы, которая не была заполнена, новая сводка генерируется успешно. Это означает, что подключение к провайдеру ИИ работает корректно, и темы действительно «подлежат суммаризации».
В логах (/logs) ошибок нет.
Есть какие-то идеи?
Найдена проблема. Сравнивается ai summary backfill topic max age days с topic.created_at, а не с updated_at. Думаю, это нужно изменить на updated_at. У меня есть много очень активных тем, созданных два года назад, в которые новые посты добавляются каждую неделю, но если использовать максимальный возраст 90 дней или даже год, эти темы не будут суммироваться.
Пожалуйста, рассмотрите возможность изменения этого.
.where("topics.created_at > current_timestamp - INTERVAL '#{max_age_days.to_i} DAY'")
У меня есть много тем одиночных постов, которые часто редактируются (документация). Можно ли обновлять эти сводки, если тема будет изменена?
Предлагаю, если возможно, изменить интервал для задачи обратной загрузки с 5 минут до 1 минуты. У большинства (если не всех) провайдеров ИИ есть ограничения по количеству запросов в минуту, поэтому, если задача будет выполняться каждую минуту, можно будет получить в 5 раз больше сводок, не превышая лимиты в минуту.