Интеграция ботов, похожих на GPT3?

Всем,

Я заметил несколько интересных тем об интеграции ботов на разных уровнях в Discourse, но не нашёл ни одной темы о подключении крупных ИИ-ботов с большим объёмом памяти, таких как GPT-3, BlenderBot и им подобных. Кто-нибудь задумывался об этом? Или, возможно, уже добился каких-то успехов в реализации этой идеи?

Я думаю о том, чтобы развернуть ещё один экземпляр Discourse, где один из таких крупных ИИ-ботов будет работать как обычный пользователь системы, участвуя в обсуждениях наравне с людьми, — но, возможно, отвечать только тогда, когда пост адресован ему напрямую или когда его ник упоминается в сообщении.

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

Спасибо за любые разъяснения…

Да, это было бы интересным экспериментом.
Я также думал о возможности подключить что-то вроде DialogFlow к плагину чата.

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

Отлично! Моя текущая идея заключается в том, чтобы со временем добавлять множество различных AI-приложений к центральному объекту — примерно так же, как млекопитающий/человеческий мозг эволюционировал через дублирование и специализацию…

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

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

@RGJ,

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

Да, конечно. Я буду в отъезде около недели, а после этого смогу уделить время тому, чтобы немного поэкспериментировать. Хотя я не большой поклонник Node, я бы предпочел реализовать это на Python, Ruby или PHP. Но сначала давайте наберемся опыта в этом.

Мой выбор — Ruby!

Отлично! — Я тоже буду в поездке некоторое время, но внимательно изучу всё перед возвращением . .

Спасибо!

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

Я экспериментирую с идеей создания бота-«помощника персонала» с использованием OpenAI. Пока что я тестирую его с моделью text-davinci-003. Я думаю, что базовая схема будет следующей: вебхук события поста Discourse, указывающий на сервер, на котором установлена библиотека Python OpenAI.

Первая задача, над которой я работаю, — заставить бота возвращать запросы из Data Explorer на основе простых текстовых описаний. Я ещё не пробовал дообучать модель, но если в промпте запроса предоставляется информация о структуре базы данных Discourse, результаты получаются удивительно хорошими.

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

Я занимаюсь этим просто для удовольствия. Ещё одна очевидная идея — обучить бота поддержки клиентов на основе существующих ответов на форуме Discourse. Это кажется более сложной задачей (как с точки зрения затрат, так и точности), чем просто настройка бота для сотрудников.

У меня другой сценарий использования (бот ОБЯЗАН помнить предыдущие разговоры с участниками наших некоммерческих организаций). За последнюю неделю я добился некоторого прогресса с различными версиями BlenderBot — я опубликую больше информации здесь, где мы специально создали Discourse для проекта:

https://forum.phirho.org

— не стесняйтесь присоединяться!

Регистрация отключена, нам нужно приглашение.

Ах! — извините! — вы всего лишь третий человек… Напишите мне в ЛС свой адрес электронной почты?

На самом деле, если подумать, нет причин, почему мы не могли бы запустить там более одного бота…

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

Очень умно, удивительно и интересно! — но это не может сделать то, что нужно мне (память между сессиями):

Запоминает ли ChatGPT, что происходило ранее в разговоре? | Справочный центр OpenAI | https://help.openai.com/en/articles/6787051-does-chatgpt-remember-what-happened-earlier-in-the-conversation

Я был бы рад ошибаться, но, насколько я понимаю, ChatGPT «помнит» только текст последнего отправленного вами запроса. Вы можете проверить это в OpenAI Playground: начните чат, а затем после отправки текста нажмите кнопку «View code» (Посмотреть код). Вы увидите, что каждый раз при отправке нового текста он добавляется к запросу:

prompt="Ниже приведён разговор с ИИ-ассистентом. Ассистент помогает, креативен, умен и очень дружелюбен.\n\nЧеловек: Просто проверяю, как устанавливается промпт.\nИИ: Привет! Похоже, вы хотите узнать о настройке промптов. Чем ещё я могу помочь вам сегодня?\nЧеловек: Если я использую функционал чата OpenAI в своём приложении, нужно ли мне обновлять промпт каждый раз, когда пользователь задаёт новый вопрос? Определённо, стоит держать промпты в актуальном состоянии, так как это поможет обеспечить получение пользователями наиболее релевантной информации для каждого их вопроса. В зависимости от размера вашего приложения и сложности разговоров, вам может потребоваться регулярно обновлять промпты или разработать более сложную систему для определения моментов, когда обновления необходимы. Дайте знать, если я могу помочь чем-то ещё."

Это может продолжаться до достижения лимита в 4000 токенов (~3000 слов), упомянутого в документации, на которую вы сослались. Обратите внимание, что отправка больших промптов может стать дорогой. На данный момент, насколько я знаю, это стоит $0,02 за 1000 токенов с моделью Davinci.

Если моё понимание верно, то приложение или плагин для Discourse, работающий с ChatGPT, должно добавлять каждый новый вопрос и ответ к промпту. Это можно делать до достижения лимита в 4000 токенов (~3000 слов). Если этот лимит превышен, похоже, OpenAI возвращает ошибку. Обработку этой ошибки должно обеспечивать приложение, отправляющее запросы к OpenAI.

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

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

Более точные ответы на этот вопрос вы получите здесь: https://community.openai.com/. Отлично видеть, что они используют Discourse для своего сообщества!

Думаю, вы правы, но ссылка, которую я привёл, указывает на то, что у ChatGPT НЕТ памяти между сессиями… а это мне необходимо для моего случая…

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

Так что, возможно, контекст шире, чем просто промпт. :thinking:

Это довольно просто проверить.

Вот о чём я говорил (и это критически важно для моего сценария использования):

https://help.openai.com/en/articles/6787051-does-chatgpt-remember-what-happened-earlier-in-the-conversation

Извините, я неправильно понял ваши слова.