Резюме темы Discourse AI 🤖

Наша команда использует форум на платформе Discourse, размещённый на хостинге Discourse. В настоящее время мы подписаны на тарифный план «Business», поэтому мой вопрос: можем ли мы использовать плагин «Discourse AI Topic Summary»? Не уверен, включён ли он в наш текущий план или нам нужно перейти на тариф «Enterprise».

Заранее спасибо

1 лайк

Привет и добро пожаловать @acorrea :slight_smile:

К сожалению, на тарифе Business нет возможности использовать неофициальные плагины. Все доступные можно посмотреть на странице плагинов.

В настоящее время мы работаем над несколькими официальными плагинами для ИИ, и, надеемся, скоро сможем поделиться более подробной информацией. :crossed_fingers:

5 лайков

Надоело вручную добавлять теги к темам? Пусть это сделает ИИ! (Относительно разумно!)

Я добавил ЭКСПЕРИМЕНТАЛЬную поддержку автоматического добавления тегов, которая будет присваивать теги вашей теме на основе её содержания.

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

Для этого вы можете быстро создать пользователя без прав администратора через консоль Rails, используя команду:

rake admin:create (не давайте этому пользователю права администратора!)

(Это немного хакерское решение, поскольку текущий «внутренний API» Discourse для тегирования не позволяет указать «не создавать новые теги». На данный момент единственный простой способ предотвратить это — создать пользователя, у которого нет такой привилегии (то есть уровень доверия ниже min_trust_to_create_tag)).

4 лайка

Джеймс, вам (и другим) может быть интересно это:

Сейчас я провожу эксперименты с ним и скоро объединю его:

  • ФУНКЦИЯ: Добавлена возможность использования ChatGPT (быстрее и дешевле), включая GPT-4.
  • ФУНКЦИЯ: Добавлена возможность указания имени модели, чтобы вы могли задать собственное имя модели, если оно существует в пространстве имён OpenAI.
  • ФУНКЦИЯ: Добавлены настройки для влияния на стиль ответа.

(Пока только для суммаризации, не для определения тегов)

Это было в основном спровоцировано следующим сообщением:

Теперь вы можете указать новую модель ChatGPT (“gpt-3.5-turbo-16k”) в качестве имени пользовательской модели и сможете суммировать примерно… :drum: :drum: :drum:

=== > Темы из 160 постов! (увеличение в 4 раза!!) < ===

:tada:

4 лайка

Отлично, этот PR слит после проверки в продакшене. Дайте знать, если у кого-то возникнут проблемы.

2 лайка

Привет @merefield,

Спасибо за обновление. Я изучу изменения.

Новая функциональность функции — это тоже то, на что мы обращаем внимание. Идея получать согласованные структурированные данные в ответ на вызов API звучит очень захватывающе! И кто может быть против более длинного контекста?

3 лайка

Однако, касательно вашего первоначального тезиса: использование gpt-3.5-16k обходится почти в 7 раз дешевле, чем использование Davinci для этой цели, несмотря на огромный рост контекста.

За последние 24 часа я уже заметил «выравнивание» своей кривой расходов.

2 лайка

Если у меня установлен чат-бот AIBot, могу ли я указать пользователя на него и повторно использовать токен из этого плагина?

2 лайка

Да, вы можете повторно использовать токен, это не проблема.

Пользователь в этом плагине используется только для ограничения выбора тегов… если вы будете повторно использовать одного и того же пользователя AIBot, у него, скорее всего, будут права на создание новых тегов, поскольку он, вероятно, обладает высокими привилегиями для публикации везде. Я не пробовал, но, возможно, вы можете установить для AIBot низкий уровень TL.

Если вам не возражаете создание новых тегов, то это нормально, но результаты обычно лучше, если предотвратить это.

1 лайк

Мой AIBot имеет уровень 4

И, похоже, права администратора…

Будет ли плагин работать со старыми постами или только с новыми?

1 лайк

Да, я бы создал или взял в пользование другого пользователя с уровнем доверия 2 и использовал его. Заблокировать его уровень доверия. И ограничить создание новых тегов для пользователей с уровнем доверия 3.

Это будет работать со старыми темами, но срабатывает при создании новых сообщений.

1 лайк

Это работает, но не учитывает язык форума — резюме на английском.

1 лайк

Скорее всего, вам нужно обновить промпты и попросить его делать резюме на выбранном вами языке.

Это можно изменить в разделе Настройки → Текст

1 лайк

Ах, сам краткий обзор на английском.

Кажется, у меня тоже проблема с ошибкой тегов :S

1 лайк

Это не удивительно, если вы не ограничили создание тегов, как рекомендуется.

У меня это работает уже несколько месяцев, и это может быть удивительно умно :).

1 лайк

Приношу извинения, @frold, вы были правы.

И простите, что так долго потребовалось для воспроизведения, анализа и исправления, но теперь с моделью Chat всё должно работать:

Проблема заключалась в том, что я не использовал модель Chat для тегирования до недавнего времени… а потом у меня ушло некоторое время, чтобы заметить эту проблему.

3 лайка

sudo ./launcher rebuild app
Вы указываете gem tokenizers в /var/www/discourse/plugins/discourse-ai/plugin.rb, однако он не существует!

discourse-topic-voting уже находится в последней совместимой версии
discourse-translator уже находится в последней совместимой версии
discourse-user-notes уже находится в последней совместимой версии
discourse-whos-online уже находится в последней совместимой версии
discourse-yearly-review уже находится в последней совместимой версии
docker_manager уже находится в последней совместимой версии

I, [2023-09-23T12:57:22.787693 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
ОШИБКА: при выполнении gem ... (Gem::RemoteFetcher::FetchError)
    слишком много сбросов соединений (Gem::RemoteFetcher::FetchError)
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/request.rb:250:in `rescue in perform_request'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/request.rb:194:in `perform_request'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/request.rb:155:in `fetch'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/remote_fetcher.rb:310:in `request'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/remote_fetcher.rb:210:in `fetch_http'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/remote_fetcher.rb:249:in `fetch_path'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/remote_fetcher.rb:286:in `cache_update_path'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/remote_fetcher.rb:157:in `rescue in download'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/remote_fetcher.rb:142:in `download'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/source.rb:208:in `download'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/resolver/specification.rb:113:in `download'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/resolver/specification.rb:99:in `install'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/request_set.rb:280:in `block in install_into'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/request_set.rb:272:in `each'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/request_set.rb:272:in `install_into'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/request_set.rb:148:in `install'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/commands/install_command.rb:215:in `install_gem'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/commands/install_command.rb:231:in `block in install_gems'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/commands/install_command.rb:224:in `each'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/commands/install_command.rb:224:in `install_gems'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/commands/install_command.rb:170:in `execute'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/command.rb:328:in `invoke_with_build_args'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/command_manager.rb:253:in `invoke_command'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/command_manager.rb:193:in `process_args'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/command_manager.rb:151:in `run'
        /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/gem_runner.rb:52:in `run'
        /usr/local/bin/gem:12:in `<main>'
I, [2023-09-23T13:23:20.135088 #1]  INFO -- : gem install tokenizers -v 0.3.3 -i /var/www/discourse/plugins/discourse-ai/gems/3.2.2 --no-document --ignore-dependencies --no-user-install

Вы указываете gem tokenizers в /var/www/discourse/plugins/discourse-ai/plugin.rb, однако он не существует!
Искалось:
- /var/www/discourse/plugins/discourse-ai/gems/3.2.2/specifications/tokenizers-0.3.3.gemspec
- /var/www/discourse/plugins/discourse-ai/gems/3.2.2/specifications/tokenizers-0.3.3-x86_64-linux.gemspec
- /var/www/discourse/plugins/discourse-ai/gems/3.2.2/specifications/tokenizers-0.3.3-x86_64-linux.gemspec

I, [2023-09-23T13:23:20.135292 #1]  INFO -- : Завершение асинхронных процессов
I, [2023-09-23T13:23:20.135305 #1]  INFO -- : Отправка INT для HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 41
I, [2023-09-23T13:23:20.135317 #1]  INFO -- : Отправка TERM для exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 110
110:signal-handler (1695475400) Получен SIGTERM, планирование завершения...
2023-09-23 13:23:20.135 UTC [41] LOG:  получен запрос быстрого завершения
2023-09-23 13:23:20.152 UTC [41] LOG:  прерывание всех активных транзакций
2023-09-23 13:23:20.154 UTC [41] LOG:  фоновый рабочий "logical replication launcher" (PID 50) завершился с кодом выхода 1
2023-09-23 13:23:20.155 UTC [45] LOG:  завершение работы
2023-09-23 13:23:20.198 UTC [41] LOG:  система баз данных завершена
110:M 23 Sep 2023 13:23:20.223 # Пользователь запросил завершение...
110:M 23 Sep 2023 13:23:20.223 * Сохранение финального снимка RDB перед выходом.
110:M 23 Sep 2023 13:23:20.286 * База данных сохранена на диск
110:M 23 Sep 2023 13:23:20.286 # Redis готов к выходу, до свидания...


ОШИБКА
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' завершилась с кодом возврата #<Process::Status: pid 1163 exit 255>
Место возникновения ошибки: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
Выполнение не удалось с параметрами {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
Загрузка не удалась с кодом выхода 255
** НЕ УДАЛОСЬ ЗАПУСТИТЬ ** пожалуйста, прокрутите вверх и поищите более ранние сообщения об ошибках, их может быть больше одной.
./discourse-doctor может помочь диагностировать проблему.
d793fa4559a2f3b78d3bc76c74387dbbaf131de653790d71915713b4a6529f05
1 лайк

Это не относится к этому плагину.

Этот плагин устанавливается без проблем. Я собирал его с ним только сегодня утром.

1 лайк

https://meta.discourse.org/t/discourse-ai/259214/92?u=sober

Не могли бы вы помочь мне с правильным способом внесения изменений? Я не нашёл ничего связанного с ИИ и ключевым словом «язык».

1 лайк