| Сводка | Оригинальный ИИ-чатбот для Discourse | |
| Ссылка на репозиторий | GitHub - merefield/discourse-chatbot: An AI bot with RAG capability for Topics, Chat & Customer Support in Discourse, currently powered by OpenAI · GitHub | |
| Руководство по установке | Как установить плагины в Discourse | |
| Спонсорство | Пожалуйста, рассмотрите возможность стать постоянным спонсором моей работы с открытым исходным кодом на уровне, который соответствует ресурсам и потребностям вас или вашей организации, чтобы обеспечить этому плагину должное техническое обслуживание и гарантировать его работу на вашем сайте в будущем. |
Вам нравится этот плагин? Пожалуйста, поставьте ему
на GitHub! ![]()
Поскольку это плагин, созданный независимым разработчиком, пожалуйста, обращайтесь с запросами поддержки, сообщениями об ошибках, предложениями по UX и новыми функциями в этой теме. ВНИМАНИЕ: Этот плагин не доступен на хостинге Discourse.org. Вы можете установить его, если используете собственный хостинг (self-hosted), и возможно, если вы находитесь на стороннем хостинге (но уточните у вашего провайдера).
Что это такое?
- Оригинальный ИИ-чатбот для Discourse!
- Вы можете использовать этого бота для некоторых задач по поддержке клиентов (см. это руководство Building a technical support chatbot)
- Общайтесь с ботом в любой теме или чат-канале, один на один или с другими! Поддерживает ветки (Threads).
- Настройте характер вашего бота в соответствии с вашим форумом!
- хотите, чтобы он говорил как Уильям Шекспир или Уинстон Черчилль? можно!
- Бот в режиме “RAG” может:
- Искать ответы на вашем форуме, чтобы бот стал экспертом в теме вашего форума.
- Пересортировывать результаты поиска, отдавая предпочтение определенным группам авторов или тегам тем
- не только знать информацию из текущей темы или канала.
- Запрашивать у пользователей частным образом незаполненные необязательные поля профиля (User Fields).
- Создавать и редактировать изображения с помощью ИИ
- Искать в Википедии
- Искать последние новости*
- Искать в Google*
- Индексировать удаленные сайты*
- Возвращать текущие данные о рынке ценных бумаг на конец дня.*
- Точно выполнять “сложные” математические вычисления (без выдуманных или “галлюцинированных” ответов!)
- Эти “инструменты” можно расширить с помощью плагина, см. ниже.
- Искать ответы на вашем форуме, чтобы бот стал экспертом в теме вашего форума.
- Поддержка зрения — бот может видеть ваши изображения и отвечать на вопросы по ним!
- Автоматически отвечать на новые темы в определенных категориях
- Использует передовой API Open AI и функциональные возможности их отличных, ведущих в отрасли больших языковых моделей (LLM).
- Включает специальную систему квот для управления доступом к боту: более доверенные и/или платные пользователи могут иметь больший доступ к боту!
- Учет использования по запросам или по токенам.
- Также поддерживает подключения к Azure и прокси-серверам.
- Используйте сторонние прокси-процессы для перевода вызовов для поддержки альтернативных LLM, таких как Gemini, например, этот
*требуется регистрация в внешних (не аффилированных) API-сервисах. Ссылки в настройках.
Режим RAG очень умный и знает факты, опубликованные на вашем форуме:
Базовый режим бота иногда может допускать ошибки, но он дешевле в эксплуатации, так как делает меньше вызовов к большой языковой модели:
(Извините, Китай!
**“Зрение” бота — что он может видеть (потенциально делиться) и конфиденциальность 
Этот бот можно использовать в публичных местах на вашем форуме. Чтобы сделать бота особенно полезным, есть режим RAG (одна настройка для каждого уровня доверия бота). По умолчанию он не включен.
В этом режиме бот по умолчанию имеет доступ ко всему контенту, который видит пользователь с уровнем доверия 1 (Trust Level 1), исходя из этой настройки:
Таким образом, если вы взаимодействуете с ним в публичной теме, существует возможность того, что бот может “утечь” информация, если вы ограничиваете доступ к контенту на уровне доверия 0 или 1 через разрешения категорий. Этот уровень был выбран потому, что по опыту большинство сайтов обычно не ограничивают конфиденциальный контент на низких уровнях доверия, но это зависит от ваших конкретных потребностей.
Для этого режима убедитесь, что у вас есть хотя бы один пользователь с уровнем доверия 1 и без дополнительной принадлежности к группам, кроме автоматических. (имейте в виду, что бот будет знать все, что знает пользователь TL1, и может этим поделиться). Вы можете выбрать снижение chatbot embeddings benchmark user trust level, если у вас есть пользователь с уровнем доверия 0 без дополнительной принадлежности к группам, кроме автоматических.
В качестве альтернативы:
- Переключите
chatbot embeddings strategyнаcategoryи заполнитеchatbot embeddings categoriesкатегориями, о которых вы хотите, чтобы бот знал. (Имейте в виду, что если вы добавите какие-либо частные категории, он должен будет знать о них, и все, что бот скажет публично, где угодно, может утечь менее привилегированным пользователям, поэтому будьте осторожны с тем, что вы добавляете). - используйте бота только в обычном режиме (но тогда бот не будет видеть никаких постов)
- смягчайте последствия с помощью модерации
Кроме того, имейте в виду, что все, что он может “видеть”, передается в Open AI.
Вы можете видеть, что эта настройка является компромиссом. Чтобы сделать бота полезным, он должен быть осведомлен о контенте на вашем сайте. В настоящее время бот не может избирательно читать контент, доступный только членам, и делиться им только с членами, что некоторые администраторы могут найти ограничивающим, но нет простого способа решить эту проблему, пока бот может общаться публично. Свяжитесь со мной, если у вас есть особые потребности и вы хотели бы спонсировать работу в этой области. Управление разрешениями бота с семантическим поиском — нетривиальная задача. Система в настоящее время оптимизирована для скорости. ВНИМАНИЕ: Личные сообщения никогда не читаются ботом.
Информация
- Может не работать на установках с несколькими сайтами (не было явно протестировано), но PR приветствуются для улучшения поддержки

- Ответ API Open AI может быть медленным в периоды высокой нагрузки на более продвинутых моделях. Однако Чатбот поддерживает GPT 3.5, который быстр и отзывчив и вполне способен.
- Расширяем и планируем поддержку других облачных ботов (отсюда и общее название плагина), но в настоящее время “только” поддерживает взаимодействие с большими языковыми моделями (LLM) Open AI, такими как GPT-4, из коробки. Пожалуйста, свяжитесь со мной, если вы хотите добавить дополнительные типы ботов или хотите поддержать меня в добавлении большего количества. PR приветствуются. Уже можно использовать прокси-серверы для доступа к другим сервисам без изменения кода!
- Расширяем для поддержки поиска другого контента, помимо текущего набора.
Настройка
Предварительные требования
Помимо обычных изменений в app.yml, вы должны знать следующее:
Для сборки с Chatbot или AI Topic Summary вам нужна как минимум версия 0.5.1 расширения postgres pgvector.
У большинства людей уже есть как минимум эта версия. Однако иногда некоторые установки имеют более старую версию. Это помешает вам собрать проект с ошибкой, похожей на: PG::UndefinedObject: ERROR: access method "hnsw" does not exist
Сначала убедитесь, что ваш контейнер запущен:
./launcher restart app
затем войдите в свой контейнер
./launcher enter app
затем перейдите в базу данных и обновите версию pgvector:
:/var/www/discourse# su postgres -c 'psql discourse'
\dx
ALTER EXTENSION vector UPDATE;
\dx
exit
теперь выйдите из контейнера с помощью exit
Теперь вы должны сможете пересобрать.
Создание эмбеддингов
Если вы хотите, чтобы Chatbot знал о контенте на вашем сайте, включите эту настройку:
chatbot_embeddings_enabled
Необходимо только, если вы хотите использовать бот типа RAG и убедиться, что он знает о контенте на вашем форуме, а не только о текущей теме.
Изначально нам нужно создать эмбеддинги для всех постов в области видимости, чтобы бот мог находить информацию на форуме. Теперь это происходит в фоновом режиме после включения этой настройки, и вам не нужно ничего делать.
Эта задача по заполнению может занять несколько дней для очень больших сайтов.
Область эмбеддингов
Это определяется несколькими настройками:
chatbot_embeddings_strategy, которая может быть либо “benchmark_user”, либо “category”chatbot_embeddings_benchmark_user_trust_levelустанавливает соответствующий уровень доверия для первого вариантаchatbot_embeddings_categories, если установлена стратегияcategory, дает боту доступ к рассмотрению всех постов в указанной категории.
Если вы измените эти настройки, со временем набор эмбеддингов изменится.
Чтобы ускорить заполнение
Войдите в контейнер:
./launcher enter app
и выполните следующую команду rake:
rake chatbot:refresh_embeddings[1]
которая в настоящее время будет выполняться дважды по неизвестной причине (извините! не стесняйтесь отправлять PR), но [1] гарантирует, что во второй раз она добавит только отсутствующие эмбеддинги (т.е. ничего сразу после первого запуска), поэтому это несколько бессмысленно.
В маловероятном случае, если вы получите ограничение скорости от OpenAI (маловероятно!), вы можете завершить создание эмбеддингов, сделав следующее:
rake chatbot:refresh_embeddings[1,1]
которая заполнит отсутствующие (так что ничего не потеряется из-за ошибки), но будет продолжать более осторожно, делая задержку в 1 секунду между каждым вызовом Open AI.
По сравнению с взаимодействиями с ботом, создание эмбеддингов не требует больших затрат, но все же следите за вашим использованием на панели управления Open AI.
ВНИМАНИЕ: Эмбеддинги создаются только для постов и только для тех постов, к которым имеет доступ пользователь с уровнем доверия 1. Это казалось разумным компромиссом. Он не будет создавать эмбеддинги для постов из контента, доступного только для уровня доверия 2+.
Полезный запрос Data Explorer для мониторинга заполнения эмбеддингов
@37Rb пишет: “Вот SQL-запрос, который я использую с плагином Data Explorer для мониторинга и проверки эмбеддингов… на случай, если это поможет кому-то еще.”
SELECT e.id, e.post_id AS post, p.topic_id AS topic, p.post_number,
p.topic_id, e.created_at, e.updated_at, p.deleted_at AS post_deleted
FROM chatbot_post_embeddings e LEFT JOIN posts p ON e.post_id = p.id
Ошибка при попытке получить эмбеддинг для слишком большого количества символов.
Вы можете получить ошибку, похожую на эту:
OpenAI HTTP Error (spotted in ruby-openai 6.3.1): {"error"=>{"message"=>"This model's maximum context length is 8192 tokens, however you requested 8528 tokens (8528 in your prompt; 0 for the completion). Please reduce your prompt; or completion length.", "type"=>"invalid_request_error", "param"=>nil, "code"=>nil}}
Вот как это исправить …
Согласно сообщению об ошибке, у модели эмбеддинга есть лимит:
8192 токенов
однако вы запросили 8528
Вам нужно снизить текущее значение этой настройки:
chatbot_open_ai_embeddings_char_limit:
примерно на 4 x разницу и посмотреть, сработает ли это (токен примерно равен 4 символам).
Итак, в этом примере 4 x (8528 - 8192) = 1344
Итак, снизьте текущее значение chatbot_open_ai_embeddings_char_limit на 1500, чтобы быть в безопасности. Однако значение по умолчанию было установлено в результате множества тестов для постов на английском языке, но для других языков его может потребоваться снизить.
Это затем отсечет больше текста и запросит токены, и, надеюсь, эмбеддинг пройдет. Если нет, вам нужно будет подтвердить разницу и снизить ее еще больше. В конце концов, она станет достаточно низкой, и вам не придется больше об этом беспокоиться.
Как переключить модель эмбеддингов
Вам не нужно ничего делать, кроме как изменить настройку: фоновая задача позаботится о вещах, хотя и постепенно.
Если вы действительно хотите ускорить процесс, сделайте следующее:
- Измените настройку
chatbot_open_ai_embeddings_modelна вашу новую предпочтительную модель - Лучше всего сначала удалить все ваши текущие эмбеддинги:
- войдите в контейнер
./launcher enter app - войдите в консоль rails
rails c - выполните
::DiscourseChatbot::PostEmbedding.delete_all exit(чтобы вернуться к root внутри контейнера)
- войдите в контейнер
- выполните
rake chatbot:refresh_embeddings[1] - если по какой-либо причине со стороны Open AI это прервется на полпути, выполните его снова, пока не достигнете 100%
- известно, что новая модель более точна, поэтому вам, возможно, придется снизить
chatbot_forum_search_function_similarity_threshold, или вы можете не получить никаких результатов :). Я снизил мое значение по умолчанию с0.8до0.6, но ваш опыт может отличаться.
Тип бота
Потратьте минуту, чтобы прочитать весь набор настроек плагина. Настройка chatbot bot type является ключевой, и есть одна для каждого “Уровня доверия” чатбота:
Режим RAG превосходит, но будет делать больше вызовов к API, потенциально увеличивая стоимость. Тем не менее, снижение его склонности в конечном итоге выдавать “галлюцинации” может позволить вам перейти с GPT-4 на GPT-3.5, и вы можете в итоге потратить меньше, несмотря на значительное увеличение полезности и надежности вывода. GPT 3.5 также лучше подходит для типа “Агент” с точки зрения времени отклика. Потенциальный win-win! Экспериментируйте!
Чтобы Чатбот работал в Чате, у вас должен быть включен Чат.
Как заставить бота ответить
Базовые правила
- Если разрешено в настройках плагина, бот будет Отвечать на каждый пост или сообщение, если он вызван в теме или чат-канале с единственным пользователем, пока не присоединятся другие.
- бот всегда будет вызван, если вы упомянете его через @
Специальный автоответчик для каждой категории
- Для каждой категории вы можете заставить Чатбота Отвечать на каждую новую тему, и вы можете дать ему специальные инструкции, что делать, управляемые специфичным для категории промптом, который вы настроите в настройках категории.
Должно начинаться примерно так:
“Приветствуй меня, сказав привет, и представься. Поделись со мной 5 постами на форуме, используя локальный поиск форума, относящимися к моему первому посту, включи ссылки”
т.е. вам нужно написать это от первого лица, как будто пользователь просит помощи. Это не системный промпт. Это не описание того, как должен вести себя бот (это для системного промпта, который все равно отправляется). Это пользователь, запрашивающий конкретную помощь (хоть и скрыто). По сути, вы пишете это как пост пользователя, не упоминая бота.
Скорость ответа бота
Это в основном регулируется настройкой: chatbot_reply_job_time_delay, по которой у вас есть дискреция.
Цель наличия этой настройки:
- защитить вас от достижения лимитов скорости Open AI
- защитить ваш сайт от пользователей, которые хотели бы спамить бота и стоить вам денег.
- дать Discourse достаточно времени, чтобы загрузить hotlinked изображения, чтобы бот мог их видеть.
Теперь по умолчанию “2” секунды, и теперь можно снизить до нуля
, но имейте в виду вышеупомянутые риски. Зрение бота (если вы его используете) особенно чувствительно к этой настройке. Если вы обнаружите, что бот не видит ваши изображения, попробуйте увеличить это значение.
Установка этого в ноль делает бота, даже в режиме “агент”, гораздо более “резким”.
Очевидно, это может быть немного искусственным, и ни один реальный человек не печатал бы так быстро … но установите по своему вкусу и размеру кошелька.
ВНИМАНИЕ: Я не могу напрямую контролировать скорость ответа API Open AI - и общее правило было таким: чем более сложная модель вы установите, тем медленнее обычно будет этот ответ. Что более характерно сейчас, так это то, что модели “mini” склонны быть быстрее.
Сбор полей пользователей с помощью ИИ (экспериментально)
Если у пользователя есть некоторые необязательные поля профиля (User Fields), которые в настоящее время пусты, включение этой настройки заставит бота начать запрашивать у пользователя эту информацию. Он будет проходить через оставшиеся поля профиля, пока они не будут заполнены, а затем вернется к нормальному поведению.

(извините за медленный ответ - это было записано в dev)
ВНИМАНИЕ: Эта функция поддерживает только:
- Текст
- Выпадающие списки
- Подтверждения
Множественный выбор пока не поддерживается.
Поля должны быть необязательными
Порядок полей профиля определяет приоритет.
Поддержка Ollama & llama3
Поддержка Ollama для (абсолютно ВЕЛИКОЛЕПНОЙ!) llama3 теперь поставляется:
Это для случая, когда бот запускается локально в dev или в облаке с сервером ollama … и в базовом режиме:
- убедитесь, что модель
llama3:
- пользовательский URL должен быть установлен
http://localhost:11434:

Если у вас достаточно мощный сервер, вы можете обслуживать ollama в облаке там.
Гайп вокруг DeepSeek 
Присоединяйтесь к действию с Chatbot ![]()
Вы можете использовать бота как минимум в режиме Basic для доступа к V3 и R1
Я использовал:
(не аффилированный)
который размещает их модели.
Настройте следующим образом:
Убедитесь, что установлен базовый режим бота и замените ваш ключ.
Но вы можете использовать DeepSeek AI напрямую, если сможете получить доступ к их сайту для регистрации ![]()
Базовый URL будет “https://api.deepseek.com”.
OpenAI
Вы должны получить токен на https://platform.openai.com/, чтобы использовать текущего бота. Установлена языковая модель по умолчанию (одна из самых сложных), но вы можете попробовать более дешевую альтернативу, список здесь
Есть автоматическая часть настройки: при добавлении в Discourse плагин в настоящее время настраивает пользователя ИИ-бота со следующими атрибутами
- Имя: ‘Chatbot’
- ID пользователя: -4
- Био: “Привет, я не настоящий человек. Я бот, который может обсуждать с вами вещи. Не воспринимайте меня слишком серьезно. Иногда я даже прав в вещах!”
- Имя группы: “ai_bot_group”
- Полное имя группы: “AI Bots”
Вы можете редактировать имя, аватар и био (см. строку локализации в admin → customize → text) по своему усмотрению, но сделайте его удобным для упоминания.
Это не бесплатно, поэтому есть система квот, и вам нужно это настроить
Изначально никто не будет иметь доступа к боту, даже сотрудники.
Вызов API Open AI не бесплатен после истечения начального бесплатного лимита! Поэтому я реализовал систему квот, чтобы держать это под контролем, снижать затраты и предотвращать злоупотребления. Стоимость не безумна при таких небольших взаимодействиях, но она может накопиться, если станет популярной. Вы можете прочитать больше о ценообразовании OpenAI на их странице цен.
Чтобы взаимодействовать с ботом, вы должны принадлежать к группе, которая была добавлена к одному из трех уровней доверенных наборов групп: низкий, средний и высокий. Вы можете изменить количество разрешенных взаимодействий в неделю для каждого доверенного набора групп в соответствующих настройках.
Вы также должны заполнить группы. Эта конфигурация полностью зависит от вас. Они начинаются пустыми, поэтому изначально никто не будет иметь доступа к боту:
В этом примере я сделал так, чтобы staff имел доступ с высоким доверием, в то время как trust_level_0 имеет низкое доверие. Они получают соответствующие квоты в трех дополнительных настройках.
Обратите внимание, что пользователь получает квоту на основе наиболее доверенной группы, членом которой он является.
“Промпт-инжиниринг”
Существует несколько настроек текста локализации, которые влияют на то, что получает бот и как бот отвечает.
Самая важная настройка, которую вы должны рассмотреть к изменению, — это системный промпт бота. Он отправляется каждый раз, когда вы разговариваете с ботом.
Для базового бота вы можете попробовать системный промпт, такой как:
‘Вы фанат Формулы-1, вы любите все, что связано с автоспортом и его высоким уровнем адреналина’, вместо значения по умолчанию.
(Для бота RAG вы должны оставить все после “You are a helpful assistant.” или вы можете сломать поведение агента. Сбросьте его, если столкнетесь с проблемами. Снова экспериментируйте!)
Попробуйте тот, который наиболее подходит для тематики вашего форума. Будьте креативны!
Обратите внимание, что теперь есть два системных промпта для каждого типа бота. Один .open используется при разговоре с ботом “публично”. Другой .private применяется при разговоре с ботом в личных сообщениях или чате личных сообщений. Это позволяет вам настроить частное поведение, например, для бота поддержки.
Изменение этих строк локализации может заставить бота вести себя совершенно по-другому, но их нельзя изменить на лету. Я бы рекомендовал изменять только системный промпт, так как другие играют важную роль в поведении агента или предоставляют информацию о том, что сказал кто-то боту.
ВНИМАНИЕ: В темах первый пост и заголовок темы отправляются дополнительно к окну постов (определяемому настройкой lookback), чтобы дать боту больше контекста.
Вы можете редактировать эти строки в Admin → Customize → Text под chatbot.prompt., самые важные из которых — системные промпты, которые находятся в: chatbot.prompt.system.
Поддерживает как посты, так и сообщения в чате!
Бот поддерживает сообщения в чате и посты в темах, включая личные сообщения (если настроены).
Вы можете побудить бота ответить, ответив ему, или упомянув его через @. Вы можете настроить, насколько далеко бот смотрит назад, чтобы получить контекст для ответа. Чем больше значение, тем дороже будет каждый вызов.
Есть плавающая кнопка быстрого чата, которая сразу соединяет вас с ботом. Ее стиль немного экспериментальный (модифицирует некоторые значения z-index вашего базового форума на мобильных устройствах) и может конфликтовать на некоторых страницах. Это можно отключить в настройках. Вы можете выбрать, загружать ли бота в чат один на один или в личное сообщение.
Теперь вы можете выбрать предпочитаемую иконку (по умолчанию
) или, если настройка оставлена пустой, будет использоваться аватар пользователя бота! ![]()
аватар:
ИЛИ иконка:И помните, вы также можете настроить текст, который появляется при его раскрытии:

… используя Admin → Customize → Text
(хотя вам, возможно, придется немного настроить CSS, чтобы учесть цвета и размеры, которые вы хотите).
Некоторая помощь в отладке
- убедитесь, что настройка
chatbot include inner thoughts in private messagesВКЛЮЧЕНА - убедитесь, что настройка
chatbot enable verbose rails loggingВКЛЮЧЕНА - подключитесь к вашему серверу по ssh
cd /var/discourse/shared/standalone/log/rails- параллельно спросите бота что-нибудь в ЛС
- вернитесь в консоль немедленно
- ищите сообщения такого рода:
- общий чат =
tail -n 2000 production.log | grep {\"model\":\" - вызовы зрения =
tail -n 2000 production.log | grep {\"type\":\"image_url\"
- общий чат =
- проверьте “внутренние мысли” в ЛС
Расширение набора инструментов Чатбота с помощью плагинов
Плагин Chatbot имеет возможность добавлять другие функции в отдельных плагинах, чтобы вам не приходилось поддерживать форк репозитория Chatbot.
Пример плагина функции здесь:
но, конечно, вы можете добавить это в любой плагин …
Эта функция была добавлена в этом PR
Если вам нужна помощь с расширением Chatbot, вы можете нанять меня, чтобы я помог вам.
Удаление плагина - Важно!
Из-за недавних усилий по упрощению плагина, единственные шаги, необходимые для удаления плагина, — это удалить строку клонирования.
Спасибо за ваш интерес к плагину!
Отказ от ответственности: Я не нес ответственности за то, что отвечает бот. Рассматривайте плагин как находящийся на стадии Бета, и вещи могут пойти не так. Он будет улучшаться с обратной связью. Но не обязательно ответ бота
Пожалуйста, поймите плюсы и минусы LLM и то, на что они способны и не способны, и их ограничения. Они очень хорошо создают убедительный текст, но часто могут быть фактологически неверны.
Важное примечание о конфиденциальности: все, что вы пишете на вашем форуме, может быть переслано в Open AI как часть сканирования ботом последних нескольких постов, когда ему дается команда ответить (очевидно, это ограничено текущей темой или чат-каналом). Хотя маловероятно, что это будет включено в их предварительно обученные модели, они будут использовать данные в своей аналитике и журналировании. Обязательно добавьте этот факт в условия использования и политику конфиденциальности вашего форума. Связанные ссылки: https://openai.com/policies/terms-of-use, https://openai.com/policies/privacy-policy, https://platform.openai.com/docs/data-usage-policies
Авторское право: Open AI сделала заявление об авторском праве здесь: https://help.openai.com/en/articles/5008634-will-openai-claim-copyright-over-what-outputs-i-generate-with-the-api
TODO/Пункты дорожной карты
- Добавить фронтенд и бэкенд тесты

- Добавить индикатор “бота печатает” и “потоковый вывод ответа” (@Aizada_M, @MarcP)

- забыли упомянуть бота? Заставьте бота отвечать на редактирования, которые добавляют его упоминание @ (@frold )
- Добавить значок? Вы упомянули @botname (@frold )
- Добавить настройку для включения промпта категории и закрепленных постов? (@Ed_S)
- То же самое для био в каждом промпте истории сообщений? (@Ed_S , @codergautam). Сработает ли это вообще. Давайте найдем доказательства.
- Обновить Discourse Frotz с этой лучшей кодовой базой?
Перейти на использование.pgvectorвместоpgembeddingдля векторного поиска, теперь когда前者 поддерживает быстрый поиск HNSW
Добавить семантический поиск, чтобы бот мог читать посты на вашем форуме и становиться “экспертом”

Добавить поведение агента для уменьшения галлюцинаций и использования надежной фактической информации.
Добавить дополнительную логику для преобразования подозреваемых имен пользователей в упоминания @ (@frold )
Добавить поддержку GPT-4 (когда Open AI сочтет меня достаточно достойным доступа!
)
Добавить поддержку пользовательского имени модели.
Добавить опцию для удаления цитат из постов перед передачей текста в API.
Улучшить прозрачность ошибок и обработку, когда Open AI возвращает состояние ошибки
Добавить возможность повторной попытки для запросов API, которые истекли
Добавить поддержку ChatGPT
Линтить плагин по стандартам ядра Discourse
Добавить CI workflows
Добавить настройки, влияющие на характер ответа бота (например, насколько он безумный).
включить заголовок темы и первые посты в промпт
Добавить настройку для переключения с сырых данных поста/сообщения на cooked, чтобы потенциально лучше использовать данные веб-обучения (предложение от @MarcP). ВНИМАНИЕ: Может стоить дороже и ограничивать то, что возвращается, так как входные токены считаются, а cooked намного больше.думаю, мы отказались от этой идеи
Благодарности:
- Спасибо @MarcP за его энтузиазм и подробную обратную связь по тестированию.
- Парни, которые внесли вклад в формирующийся стандарт Ruby API для Open AI, который использует этот плагин
- Дизайн плавающей кнопки в основном взят из собственного Discourse GitHub - discourse/material-design-stock-theme · GitHub (поэтому они в настоящее время несовместимы, увы!)
- Код фикстур основан на работе @vinothkannans здесь
- Если бы @P16 не нанял меня много лет назад, чтобы помочь ему с чат-ботом, этого, возможно, не существовало бы
*Он все еще использует движок чата GPT от OpenAI, но теперь может использовать локальные функции и данные из вызовов API для ограничения галлюцинаций.














