Советы по боту поддержки для технического форума (Discourse AI против Discourse Chatbot)

Я пытаюсь создать AI-бота, который мог бы дополнять нашу команду поддержки людей на техническом форуме. Цели: оказывать поддержку в нерабочее время (сейчас пользователям приходится ждать открытия) и обеспечивать более быструю поддержку в рабочее время (люди отвечают медленнее). Если бот не решает проблему, то в рабочее время к делу подключаются люди и берут её на себя.

Несколько целей проектирования:

  1. Ему нужно обучаться на наших исторических данных форума, чтобы иметь необходимые предметные знания для поддержки. Данные нашего форума гораздо актуальнее общих знаний из интернета.
  2. Он должен пытаться отвечать только на тематические вопросы. Он должен помогать пользователям устранять неполадки в наших продуктах или пользоваться нашим сервисом, но если кто-то спросит, как испечь торт, он не должен пытаться помочь. Он должен придерживаться тем, аналогичных уже имеющимся на форуме.
  3. Должна быть возможность для пользователя попросить бота прекратить ответы, чтобы он мог дождаться человека, если считает, что бот не помогает.

Я вижу, что в официальном плагине Discourse AI есть модуль AI Bot.

А также оригинальный Discourse AI Chatbot.

Какой плагин лучше подойдёт для такого применения? Я читал о каждом отдельно и эту тему, которая похожа, но был бы рад получить более конкретные советы, если у вас есть что поделиться.

Оба ли эти плагина автоматически обучаются или дообучаются на исторических данных форума? Мы можем вручную дообучать GPT-4 (я думаю), но хотелось бы по возможности использовать возможности плагина и не дублировать работу, которую уже проделали более умные люди. :slight_smile:

Позволяют ли эти плагины ограничить темы, в которых бот будет участвовать, чтобы он не вступал в общие, нетематические разговоры?

Предназначен ли оригинальный Discourse Chatbot для долгосрочной разработки и поддержки? Или планируется, что его в конечном итоге заменит AI Bot из официального плагина или он будет интегрирован в него? @merefield

4 лайка

Думаю, что режим «Агент» (Agent Mode) из статьи Discourse Chatbot 🤖 лучше всего подойдёт для ваших задач.

Этот плагин является сторонним и поддерживается как проект с открытым исходным кодом одним увлечённым разработчиком. Благодаря этому он расширяет границы возможного и обладает значительно более широким набором функций.

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

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

(P.S. здесь не принято упоминать людей через @, особенно генеральных директоров и занятых разработчиков, если в этом нет острой необходимости).

5 лайков

Да, оба используют RAG для использования данных форума в своих ответах.

Где будут проходить эти обсуждения?

  • Темы
  • Личные сообщения
  • Чат
  • Внешнее приложение
4 лайка

Я с радостью оплачу помощь в этом вопросе. Я свяжусь с ними.

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

2 лайка

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

2 лайка

Поэтому я думаю, что вам стоит попробовать функцию AIBot в плагине DiscourseAI. Начните с персонажа «Помощник форума» — он почти идеально подходит для вашего случая.

После этого вы можете перейти на Новый редактор AI-персонажей для Discourse, чтобы создать персонажа, специализированного под ваши нужды. Дайте ему возможности search и read, напишите хороший системный промпт — и вы готовы к работе.

Я предоставил вам доступ к этой функции здесь, на Meta. Обновите браузер, чтобы увидеть её и поэкспериментировать.

6 лайков

У меня запущена версия 0.0.1 на копии нашего форума. Она работает нормально, но кажется недостаточно умной. В основном она просто ищет по нашему форуму и выдает список тем, которые могут быть релевантными. Она не интерпретирует информацию и не ведет поддержку в формате диалога. Кроме того, у меня нет редактора персонажей. Версия на Meta работает лучше, поэтому я подозреваю, что у меня не последняя версия.

2 лайка

На самом деле оно работает лучше, когда я прошу его быть более конкретным и пошагово объяснить процесс.

2 лайка

Я не планирую отказываться от поддержки Chatbot в ближайшее время.

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

Бот создан для использования существующих данных вашего форума при ответах на вопросы пользователей.

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

4 лайка

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

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

Извините, что @-нул вас раньше, я не знал, что это дурной тон.

4 лайка

Хороший вопрос. Я не знаю, сколько пользователей здесь имеют практический опыт работы с упомянутыми ИИ-ботами, но могу сказать, что я использую бота Discourse AI на сайте OpenAI даже на этапе разработки. Я регулярно даю обратную связь и предложения, многие из которых перечислены на этом сайте (список). Также всё это бесплатно.

Возможно ли получить приглашение на сайт для лучшего понимания его работы?

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

К сведению

Если вы не знаете, что такое RAG, вот отличное краткое введение.

https://research.ibm.com/blog/retrieval-augmented-generation-RAG

3 лайка

Могу ли я спросить, как вы изначально решили, какой из двух плагинов для AI-ботов использовать? (Discourse AI или Discourse Chatbot)

1 лайк

Я не принимал этого решения. Единственный выбор касался плагина для Discourse.

Поскольку сайт OpenAI на базе Discourse немного старше, у него всё ещё есть категория «Lounge». Сэм из Discourse (не Сэм из OpenAI) предоставил пользователям с уровнем TL3 на сайте OpenAI доступ к AI-боту Discourse. Именно так я получил доступ, и этот вариант был выбран. Однако, если вы внимательно прочитаете этот пост, то, возможно, заметите, что Сэм работает с нами, чтобы получать обратную связь и привлекать пользователей, которые понимают, на что способен такой бот, через обсуждения в категории Lounge.

Когда в AI-боте Discourse вносятся изменения, мы видим их вскоре после того, как код загружается и устанавливается, и сразу же пробуем их в действии.

Я не могу ничего сказать о плагине Plugin bot и не буду строить догадки.

Надеюсь, это поможет.

1 лайк

После изучения нескольких тем я сделал следующие выводы и рекомендации.

Этот сайт предназначен для поддержки системы домашней безопасности Surety.

Цель использования ИИ с форумом Discourse (ссылка) заключается в следующем:

  • Дополнить нашу команду технической поддержки на форуме.
  • Система должна обучаться на основе исторических данных форума.
  • Обладать необходимыми знаниями в предметной области для предоставления поддержки.
  • Должна пытаться отвечать только на тематические вопросы.
  • Должна предоставлять пользователю возможность попросить бота прекратить ответы, чтобы дождаться помощи человека, если бот, по мнению пользователя, не помогает.

А вот некоторые вопросы от Райана:

  • Обучаются ли они автоматически или дообучаются на исторических данных форума?
  • Не дублировать работу, которая уже выполнена более умными людьми.
  • Ограничить темы, в которых бот будет участвовать, чтобы он не вел общих разговоров не по теме?
  • Предназначен ли оригинальный чат-бот Discourse для долгосрочной разработки и поддержки?
  • Или планируется, что в конечном итоге он будет заменен ботом ИИ в официальном плагине или интегрирован в него?

Ниже приведен вопрос, который я задал боту Discourse AI, включенному в версии сайта, которую я тестировал, и ответ от ChatGPT.

Вопрос:

У меня есть IQP4 с модулем PowerG для проводного подключения. Проводные датчики работают. Я хотел протестировать звонок/сирену, но не мог найти эту опцию на IQP4. Я могу протестировать сирену на панели, и она звучит вместе с IQ Remote, но проводной звонок нет. Чтобы заставить звучать проводную сирену, мне нужно сработать сигнализации.

Есть ли способ протестировать звонок на модуле PowerG для проводного подключения с помощью IQP4?


Вот ответ с использованием бота Discourse AI с GPT-4

Я нашел на нашем форуме соответствующую тему, которая может помочь вам с вашей проблемой.

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

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


Вот ответ с использованием бота Discourse AI с GPT-3.5

Я нашел тему на форуме поддержки Surety, в которой обсуждается тестирование проводного звонка на соединении PowerG для проводного подключения с панелью IQ Panel 4 (IQP4). Вы можете найти эту тему здесь.

В теме пользователь упоминает, что не мог найти опцию для тестирования звонка/сирены непосредственно на IQP4. Однако он смог протестировать сирену на панели, и она звучала вместе с IQ Remote. Проводной звонок, с другой стороны, не звучал, пока не срабатывала сигнализация.

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


И бот Discourse AI с GPT-4, и бот с GPT-3.5 нашли одну и ту же тему.



Вот ответ от ChatGPT

У меня нет конкретной информации о последней версии программного обеспечения панели IQ Panel 4 или ее функциях, так как мои данные обучения включают знания только до января 2022 года. Однако, основываясь на общих принципах тестирования систем сигнализации, вот несколько предложений, которые могут помочь вам протестировать вашу проводную сирену, подключенную к модулю PowerG:

  1. Режим системного теста:

    • Проверьте, есть ли на вашей панели сигнализации режим «Системный тест» или «Тестирование по зонам». Этот режим обычно предназначен для тестирования датчиков и сигнализаций без запуска реального события тревоги. Если ваша панель имеет эту функцию, она должна позволять тестировать сирену без срабатывания полной тревоги.
  2. Управление выходами:

    • Ищите опцию «Управление выходами» или «Дополнительный выход» в настройках вашей панели сигнализации. Эта функция может позволять вручную активировать выходы, такие как сирена, для целей тестирования.
  3. Обход зон:

    • Некоторые системы позволяют обходить определенные зоны во время тестирования. Если ваша проводная сирена связана с конкретной зоной, вы, возможно, сможете обойти эту зону для тестирования.
  4. Руководство пользователя:

    • Обратитесь к руководству пользователя или документации, которая шла в комплекте с вашей панелью IQ Panel 4. В ней должны быть приведены конкретные инструкции по тестированию и управлению различными компонентами вашей системы сигнализации.
  5. Техническая поддержка:

    • Если вы не можете найти решение самостоятельно, рассмотрите возможность обращения в техническую поддержку производителя. Они могут предоставить рекомендации на основе конкретных функций и возможностей вашей системы.
  6. Обновление программного обеспечения панели:

    • Проверьте наличие доступных обновлений программного обеспечения для вашей панели IQ Panel 4. Производители часто выпускают обновления для добавления новых функций или устранения проблем, и обновление может включать специальный режим тестирования для сирены.

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

Очевидно, что ChatGPT дает более подробный ответ. Я рассмотрю возможные причины позже в этой теме.


Примечание: У меня нет доступа к плагину Discourse AI от Merefield (Карточка) (GitHub), было бы неплохо увидеть ответ на тот же вопрос, опубликованный здесь, для сравнения. :slightly_smiling_face:




Вот мои отзывы.

ИИ этих ботов основан на LLM (больших языковых моделях), знания ограничены набором данных для обучения. Боты также используют RAG (поиск с генерацией ответов) для расширения своих знаний путем доступа к темам на форуме.

Боты обычно используют системный промпт (системную инструкцию), который представляет собой не пользовательский запрос, а инструкцию для API LLM.

Я позволю ChatGPT объяснить разницу.

ChatGPT

Что такое системный промпт? Чем он отличается от пользовательского промпта?

Ответ

Системный промпт и пользовательский промпт — это термины, часто используемые в контексте языковых моделей и разговорных ИИ-систем, таких как GPT-3.5. Позвольте мне прояснить разницу между ними:

  1. Пользовательский промпт:

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

    • Системный промпт, с другой стороны, — это начальный ввод или инструкция, данная ИИ-модели для установки контекста или направления ее поведения в разговоре.
    • Он используется для предоставления ИИ отправной точки или контекста для генерации ответов.
    • Системный промпт помогает формировать тон, стиль или содержание ответов ИИ и служит своего рода инструкцией для направления поведения модели.
    • В то время как пользовательские промпты специфичны для запросов или утверждений пользователя, системные промпты больше касаются предоставления общего контекста или инструкции для всего разговора.

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


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

В качестве начального шага следует использовать RAG для расширения знаний ИИ максимально возможного объема, даже если это только текст из документации. Хотя бот Discourse AI может использовать RAG для всех тем на форуме, я не знаю, разрешают ли они добавление внешней информации. Если нет, одной из идей было бы импортировать все документы в формате PDF в категорию, возможно, скрытую, а затем код Discourse мог бы легче получить к ним доступ, так как они находятся на форуме, и затем использовать Langchain для доступа к PDF-файлам (ссылка)

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

Для улучшения качества ответов приходят на ум три идеи.

  1. Использование HyDE (Hypothetical Document Embeddings — встраивания гипотетических документов)

«Точное плотное извлечение без меток релевантности в нулевом выстреле» Лунь Гао, Сюэгуань Ма, Джимми Лина и Джейми Каллана (pdf)

Я узнал о HyDE от Discourse (ссылка) и знаю, что они его используют.

  1. RLHF (Обучение с подкреплением на основе обратной связи от человека). Я не думаю, что ни один из ботов способен на это, но Discourse, возможно, рассматривает это; хотел бы услышать их обратную связь, если они захотят поделиться.

  2. Синтетические данные с RLHF. Это действительно передовой край технологий, и я не ожидаю, что какой-либо из ботов это реализует.

Один из самых продемонстрированных и успешных способов обучения LLM — заставить их обучаться самим, но вам нужна какая-то метрика, чтобы они знали, лучше или хуже результат. Для вашего сайта единственный способ, который я сейчас понимаю, узнать, лучше или хуже решение, — это когда человек оценивает решение от ИИ. Чтобы получить больше возможных раундов вопросов и решений, вопросы генерируются одним ИИ, а другое ИИ генерирует решение, затем решение оценивается и используется для улучшения ИИ, генерирующего решение.


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

Другой вариант — посмотреть на аналогичные технологии, доступные через ИИ-бота, такие как Microsoft Copilot.

Один пункт, который вы не запросили и не отметили, но который имеет ценность, — это ссылки на источник. Причина, по которой это важно, — проверить, является ли вывод ИИ галлюцинацией или нет. Если включена ссылка, и это реальная ссылка, а не галлюцинация, то по ссылке можно проверить, является ли она авторитетным источником, например, руководством, и тогда будет известно, что это не галлюцинация. Добавление ссылок легко сделать с помощью RAG, и это должно быть ожидаемым.


Теперь о ваших конкретных целях.

Дополнить нашу команду технической поддержки на форуме.

Это скорее утверждение, чем вопрос, поэтому я не буду отвечать на него как на вопрос.

Система должна обучаться на основе исторических данных форума.

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

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

Это можно достичь путем настройки системного промпта. Для этого также потребуются некоторые технологии из Discourse AI Post Classifier - Automation rule.

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

Это можно достичь путем настройки системного промпта.

Обучаются ли они автоматически или дообучаются на исторических данных форума?

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

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

Я буду понимать это так, что LLM не должна отклоняться от того, что она знает. Это зависит от того, как модель обучается новым знаниям. Можно сделать модель хуже, и даже сложнее заставить модель «разучиться». Насколько мне известно, ни один из ботов Discourse AI не имеет возможности обучаться, то есть изменять веса в LLM, но они имеют возможность использовать RAG с постами тем. Так что плохой пост на тему, мусор на входе, может создать мусор на выходе.

Ограничить темы, в которых бот будет участвовать, чтобы он не вел общих разговоров не по теме?

Это было бы похоже на Discourse AI Post Classifier - Automation rule.

Предназначен ли оригинальный чат-бот Discourse для долгосрочной разработки и поддержки?

Оставлю этот вопрос сотрудникам Discourse.

Или планируется, что в конечном итоге он будет заменен ботом ИИ в официальном плагине или интегрирован в него?

Оставлю этот вопрос сотрудникам Discourse.

6 лайков

Спасибо за вашу помощь и такой подробный пост!

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

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

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

Это круто!

Хорошая мысль. Интересно, что должно быть указано как ссылка, если источник находится в нашей скрытой базе знаний?

Этот вопрос был сформулирован неудачно из-за моего непонимания работы LLM. RAG должно быть достаточно на данный момент.

Я имел в виду, что не хочу разрабатывать собственный код для функций, которые уже реализованы в плагинах Merefield или командой разработчиков Discourse. Я хочу использовать то, что уже доступно, и улучшать только при необходимости.

Ещё раз спасибо, Эрик!

2 лайка

Отличная мысль. Рад, что вы это отметили, мне следовало указать на это в своём ответе.

Кажется, это отлично перетекает в очередь проверки. Это решение команды Discourse.

Да.

RAG — лишь одна из многих технологий, необходимых для достижения вашей цели. В случае оценки ответа ИИ речь идёт о чём-то ином, чем цель RAG. Человеческая обратная связь по сгенерированному ответу является частью технологии RLHF.

Да, это так!

Большая часть этих технологий настолько нова и развивается так быстро, что стоит быть открытым к идеям от кого угодно и откуда угодно.

То же самое, что и если бы вы были человеком и указывали это в ответе реальному человеку. Я бы назвал название руководства, дату публикации, раздел и параграф.

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

Это было забавно, хотя многие даже не поймут, почему. Технологии развиваются так быстро, что я уверен: многие пишут код один месяц, а затем понимают, что эта функция уже встроена в технологию, и то, что они создали, стало избыточным и даже устаревшим. Если вы потратите время на изучение Langchain, то, возможно, увидите, как пользователи отмечают, что выбросили почти весь код своего приложения и просто начали использовать Langchain.

Ещё один источник для обучения — короткие курсы DeepLearning.AI (в настоящее время бесплатные).

Пожалуйста.

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

3 лайка

Эрик, я уже отвечал на это выше.

Мой ответ был недостаточно ясен?

При всём уважении, не совсем понятно, какое отношение эти вопросы имеют к «сотрудникам Discourse»?

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

Если в какой-то момент чат-бот перейдёт в другую организацию GitHub, то, скорее всего, это будет Pavillion.

1 лайк

Прочитав это, я подумал о боте, которого вы видите при первом входе в Discourse. @discobot
Если бы в утверждении использовалось слово plugin, я бы подумал о вашем плагине и не ответил бы так, как ответил.

1 лайк

Я не совсем уверен, что вы имеете в виду под «скрытой», но полагаю, что и чат-бот, и плагин ИИ будут использовать RAG только для контента из общедоступных категорий.

Точно. Поэтому, вместо загрузки в категорию с последующим извлечением, сегодня лучшим подходом для этого было бы загрузить эти PDF-документы как файлы и использовать их в ассистенте? Это можно было бы сочетать с RAG в реальном времени на основе содержимого форума.

2 лайка

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

3 лайка