Discourse Chatbot 🤖

В плагине не было изменений.

Что-то изменилось в модели?

Нет, если только OpenAI что-то не изменили. Но я в это не верю, так как DAI использует ту же модель и работает отлично. Я склоняюсь к тому, что это какой-то конфликт или изменения в самом Discourse, но до Рождества я не смогу углубиться в исследование. В праздничные дни у меня полно времени, а посетителей практически нет.

Проверьте логи для точного запроса.

Убедитесь, что промпт для автоматического ответа составлен от первого лица с точки зрения пользователя.

Всё выглядит в порядке. «Jagster says…» находится на нужном месте, как и системный промпт. Его задача:

  • поздороваться и представиться
  • предложить 5 возможных релевантных тем, дать по два предложения объяснения, почему эти темы могут подойти, и предоставить ссылки

Однако сейчас оно не здоровается и не представляет себя. Оно предлагает пять тем и описывает, о чём они, но не даёт ссылок.

Похоже, что между промптами могут быть конфликты. Или оно просто грубит :smirking_face:

Что ж, мне придётся посмотреть, как DAI ведёт себя в подобных ситуациях. Это будет не совсем то же самое из-за ограничений и иной архитектуры DAI, но это может дать подсказку, исходит ли вся эта «я сам решаю, что делать» от OpenAI.

Но прямо сейчас я не могу выявить реальную проблему, только симптомы.

«as to whether» — так ли действительно говорят носители языка? :flushed_face:

Должно начинаться примерно так:

«Приветствуйте меня, сказав „Здравствуйте“, и представьтесь. Поделитесь со мной 5 постами с форума, используя локальный поиск по форуму, релевантный моему первому посту, включите ссылки»

(Промпт категории, а не системный промпт.)

По сути, вы пишете это так, как если бы это был пост пользователя, без необходимости упоминать бота.

1 лайк

Извините, скриншот, но iPad в данный момент не позволяет копировать выделенный текст.

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

2 лайка

Спасибо! Это решило проблему (и пару моих предыдущих подобных головных болей).

1 лайк

Очень полезная информация! Есть ли какие-либо советы по лучшим практикам для системной подсказки?

1 лайк

Вот один из моих вариантов:

Ты — blah blah blah. Ты часто отвечаешь с юмором. У тебя есть отличные инструменты в виде функций, которые дают возможность получать свежую информацию. Используй только предоставленные тебе функции. При ответе на вопросы сначала используй функцию local_forum_search, чтобы проверить, есть ли ответ на локальном форуме. Всегда приводи ссылки на источники. Текущая дата и время: %{current_date_time}. Когда упоминаешь пользователей по имени, ставь символ @ прямо перед их именем пользователя. Отвечай только на последний вопрос, используя предыдущую информацию как контекст, если это уместно.

Очевидно, что ты можешь изменить «blah blah blah» :slight_smile:

1 лайк

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

Спасибо большое, Роберт. Очень ценю это. Моя цель также — прояснить исходный пост, возможно, расширить вопрос и сформулировать его с поддержкой сообщества. Благодарю за вашу поддержку и усилия!

1 лайк

@merefield, почему только OpenAI? Возможно ли добавить другие модели, такие как Gemini от Google, Claude AI от Anthropic и Mixtral?

Если вы понимаете, что делаете, то, вероятно, сможете использовать прокси для доступа к другим сервисам через настройки пользовательских URL-адресов. Как описано в исходном посте, этот метод также работает с локальными моделями или Azure.

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

Понимаю. Иногда не у всех есть доступ к API OpenAI из-за ограничений на карте. Тем не менее, спасибо за ваш вклад!

1 лайк

Всегда получаю ошибку «недостаточно токенов» (ошибка превышения квоты), когда пытаюсь использовать функцию упоминания в публичном форуме. Я пытаюсь активировать её через пользователей с высоким рейтингом, поэтому действительно не понимаю, где я ошибаюсь.

Какую настройку мне нужно изменить, чтобы у бота было достаточно токенов для ответа?

1 лайк

Попробуйте запустить задачу сброса квоты Sidekiq, описанную здесь:

Имя задачи: Jobs::ChatbotQuotaReset

(в дальнейшем это будет происходить автоматически)

Затем вы можете попросить бота в личном сообщении подтвердить, какая квота у вас осталась, например:

“какая у меня осталась квота?”

(если вы разрешили Chatbot общаться в личных сообщениях)

1 лайк

Нужно ли ждать определенное время после срабатывания лимита, прежде чем возобновлять работу? Я думал, что это так, но бот не отвечает.

Ещё один вопрос:

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

Может быть, 30 секунд?

Вы @упомянули бота или ответили на его последнее сообщение, используя кнопку «Ответить» под его постом?