Модули ИИ внезапно перестали работать

Я установил плагин Discourse AI, настроил Gemini и включил несколько модулей: суммаризация, анализ тональности, связанные темы, AI-поиск и обнаружение токсичности.

Сначала всё работало отлично: кнопка «Суммаризация» появлялась и генерировала контент.

Как только я включил опции «Анализ тональности» и «Обнаружение токсичности», суммаризация перестала работать: кнопка «Суммаризация» исчезла из всех тем. На вкладке «Анализ тональности» в панели управления данные не отображаются.

При просмотре логов Discourse я вижу следующие ошибки:

Сообщение

Исключение в задании: ERROR:  must be owner of database discourse



Стек вызовов

rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:110:in `exec' 
rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:110:in `async_exec' 
mini_sql-1.5.0/lib/mini_sql/postgres/connection.rb:202:in `run' 
mini_sql-1.5.0/lib/mini_sql/active_record_postgres/connection.rb:38:in `block in run' 
mini_sql-1.5.0/lib/mini_sql/active_record_postgres/connection.rb:34:in `block in with_lock' 
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt' 
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize' 
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt' 
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize' 
mini_sql-1.5.0/lib/mini_sql/active_record_postgres/connection.rb:34:in `with_lock' 
mini_sql-1.5.0/lib/mini_sql/active_record_postgres/connection.rb:38:in `run' 
mini_sql-1.5.0/lib/mini_sql/postgres/connection.rb:181:in `exec' 
/var/www/discourse/plugins/discourse-ai/lib/embeddings/vector_representations/base.rb:154:in `create_index!' 
/var/www/discourse/plugins/discourse-ai/lib/embeddings/vector_representations/base.rb:71:in `block in consider_indexing' 
/var/www/discourse/plugins/discourse-ai/lib/embeddings/vector_representations/base.rb:49:in `each' 
/var/www/discourse/plugins/discourse-ai/lib/embeddings/vector_representations/base.rb:49:in `consider_indexing' 
/var/www/discourse/plugins/discourse-ai/app/jobs/scheduled/embeddings_backfill.rb:38:in `execute' 
/var/www/discourse/app/jobs/base.rb:297:in `block (2 levels) in perform' 
rails_multisite-5.0.0/lib/rails_multisite/connection_management.rb:82:in `with_connection'
/var/www/discourse/app/jobs/base.rb:284:in `block in perform' 
/var/www/discourse/app/jobs/base.rb:280:in `each' 
/var/www/discourse/app/jobs/base.rb:280:in `perform' 
/var/www/discourse/app/jobs/base.rb:351:in `perform' 
mini_scheduler-0.16.0/lib/mini_scheduler/manager.rb:122:in `process_queue' 
mini_scheduler-0.16.0/lib/mini_scheduler/manager.rb:70:in `worker_loop' 
mini_scheduler-0.16.0/lib/mini_scheduler/manager.rb:59:in `block (2 levels) in ensure_worker_threads' 

4 сообщения были перенесены в новую тему: Discourse AI не может установить ivfflat.probes на самохостинговых установках

Это означает, что пользователь вашей базы данных не может выполнить

https://github.com/discourse/discourse-ai/blob/main/lib/embeddings/vector_representations/base.rb#L154

в базе данных Discourse. Рекомендуется проверить ваши права доступа.

Извините, но в этот раз я не могу дать ответ. Я просто следовал инструкциям в этой теме (и в других темах про модули ИИ), установил плагин, пересобрал Discourse и настроил его со страницы администратора.

Я не видел ни одного шага, касающегося настройки прав пользователей. Я упустил какой-то шаг или это исключительный случай, который не обрабатывается в скрипте установки/сборки?

  • Как это сделать?
  • Разве это не должно быть установлено автоматически при установке плагина и пересборке?

@Falco, есть какие-то мысли по этому поводу?

Похоже, у пользователя базы данных на самодостаточных установках отсутствуют права для настройки этого параметра. Более корректный способ настройки отслеживается в upstream-репозитории; давайте пока подождём исправления там, прежде чем пытаться решать проблему самостоятельно.

1 лайк

Спасибо за обновление, Фалько. Не могли бы вы уточнить, какие функции затронуты или каково влияние этого обновления, и связано ли это с ошибками в логах или с каким-либо функционалом ИИ, который перестанет работать? Это поможет мне понять, чего ожидать, какие функции могут не работать, и нужно ли мне временно отключить их, чтобы избежать других проблем, которые могут возникнуть из-за этой ошибки.

РЕДАКТИРОВАНИЕ: Похоже, что количество пробок рассчитывается на основе количества элементов в базе данных. Интересно, можно ли это настроить во время перестроения (так что, хотя база данных может расти со временем, при каждом обновлении Discourse будет оптимизировать её до тех пор, пока не будет внесено исправление во время выполнения). Временно, во время выполнения, проверяйте наличие прав SUPERUSER перед попыткой изменения этого параметра.

1 лайк

Это было исправлено в рамках новой функции быстрого поиска с использованием ИИ

2 лайка

Отлично. Обновляюсь прямо сейчас. Нужно ли что-то сделать, чтобы возобновить предыдущий процесс?

1 лайк

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