chatbot_support_vision
)*Необходима регистрация для использования внешних (не аффилированных) сервисов API. Ссылки в настройках.
Есть два режима:
Режим RAG очень умен и знает факты, опубликованные на вашем форуме.
Базовый режим бота иногда может допускать ошибки, но его дешевле использовать, поскольку он выполняет меньше вызовов большой языковой модели:
Этого бота можно использовать в публичных местах на вашем форуме. Чтобы сделать бот особенно полезным, существует режим RAG (одна настройка на каждый уровень доверия бота). Это не установлено по умолчанию.
В режиме RAG бот по умолчанию управляется путем настройки chatbot embeddings strategy
(по умолчанию benchmark_user
), доступной ко всему контенту, который увидит пользователь с уровнем доверия 1. Таким образом, при взаимодействии с общедоступной темой существует вероятность того, что бот может «утечки» информации, если вы склонны блокировать контент на уровне доверия 0 или 1 через разрешения категории. Этот уровень был выбран потому, что, по опыту, большинство сайтов обычно не пропускают конфиденциальный контент при низких уровнях доверия, но это зависит от ваших конкретных потребностей.
Для этого режима убедитесь, что у вас есть хотя бы один пользователь с уровнем доверия 1 и нет членства в дополнительных группах, кроме автоматических групп. (имейте в виду, что тогда бот будет знать все, что знает пользователь уровня TL1, и сможет поделиться этим). Вы можете снизить chatbot embeddings benchmark user trust level
если у вас есть пользователь с уровнем доверия 0, у которого нет членства в дополнительных группах, кроме автоматических групп.
Альтернативно:
chatbot embeddings strategy
на category
и заполните chatbot embeddings categories
категориями, о которых вы хотите, чтобы бот знал. (Имейте в виду, что если вы добавляете какие-либо частные категории, он должен знать о них и обо всем, что бот говорит публично, где угодно может быть утечка информации для менее привилегированных пользователей, поэтому будьте немного осторожны с тем, что вы добавляете).basic
режиме (но тогда бот не увидит ни одного сообщения)Вы можете видеть, что эта установка является компромиссом. Чтобы сделать бот полезным, он должен хорошо разбираться в контенте вашего сайта. В настоящее время бот не может выборочно читать контент только для участников и делиться им только с участниками, что некоторые администраторы могут счесть ограничением, но нет способа легко решить эту проблему, пока бот может разговаривать публично. Свяжитесь со мной, если у вас есть особые потребности и вы хотите спонсировать какую-либо работу в этой области. Разрешение ботам семантического поиска — нетривиальная проблема. В настоящее время система оптимизирована по скорости. Обратите внимание: личные сообщения бот никогда не читает.
Если вы хотите, чтобы чат-бот знал о содержимом вашего сайта, включите этот параметр:
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]
который в настоящее время будет запускаться дважды по неизвестной причине (извините! Не стесняйтесь пиариться), но [1]
гарантирует, что во второй раз будут добавлены только отсутствующие вложения (т. е. ни одного сразу после первого запуска), так что это несколько спорно.
В том маловероятном случае, если вы получите ограничение скорости OpenAI (маловероятно!), вы можете завершить встраивание, выполнив следующие действия:
rake chatbot:refresh_embeddings[1,1]
который заполнит недостающие (так что из-за ошибки ничего не потеряется), но продолжит более осторожно устанавливать задержку в 1 секунду между каждым вызовом Open AI.
По сравнению с взаимодействием с ботами, встраивание не требует больших затрат, но в любом случае следите за его использованием на панели управления Open AI.
NB Embeddings создаются только для сообщений и только для тех сообщений, к которым у пользователя первого уровня доверия будет доступ. Это казалось разумным компромиссом. Он не будет создавать встраивания для сообщений только из доступного контента уровня доверия 2+.
@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 tokens
however you requested 8528
Вам нужно сбросить текущее значение этого параметра:
chatbot_open_ai_embeddings_char_limit:
примерно в 4 раза больше разницы и посмотрите, работает ли это (токен состоит примерно из 4 символов).
Итак, в этом примере 4 х (8528 – 8192) = 1344.
Поэтому на всякий случай уменьшите текущее значение chatbot_open_ai_embeddings_char_limit
на 1500. Тем не менее, значение по умолчанию было установлено в соответствии с многочисленными тестами для англоязычных сообщений, но для других языков может потребоваться его понижение.
Затем это отрежет больше текста и токенов запроса, и, надеюсь, встраивание пройдет успешно. В противном случае вам нужно будет подтвердить разницу и соответственно уменьшить ее. В конце концов он станет достаточно низким, и вам не придется снова на него смотреть.
Вам не нужно ничего делать, кроме изменения настроек: фоновое задание все сделает, хотя и постепенно.
Если вы действительно хотите ускорить процесс, выполните следующие действия:
chatbot_open_ai_embeddings_model
на новую предпочтительную модель../launcher enter app
rails c
::DiscourseChatbot::PostEmbedding.delete_all
exit
(чтобы вернуться в корень внутри контейнера)rake chatbot:refresh_embeddings[1]
chatbot_forum_search_function_similarity_threshold
, иначе вы не получите никаких результатов :). Я уменьшил значение по умолчанию с 0.8
до 0.6
, но ваш результат может отличаться. Найдите минутку, чтобы прочитать весь набор настроек плагина. Настройка chatbot bot type
является ключевой, и для каждого чат-бота существует свой «Уровень доверия»:
Режим RAG лучше, но в нем будет выполняться больше вызовов API, что потенциально увеличивает стоимость. Тем не менее, снижение его склонности к конечному выведению «галлюцинаций» может помочь вам перейти с GPT-4 на GPT-3,5, и вы можете в конечном итоге тратить меньше, несмотря на значительное увеличение полезности и надежности вывода. GPT 3.5 также лучше подходит для типа агента в зависимости от времени ответа. Потенциальный беспроигрышный вариант! Экспериментируйте!
Чтобы чат-бот работал в чате, у вас должен быть включен чат.
В основном это регулируется настройкой chatbot_reply_job_time_delay
, которую вы можете выбирать по своему усмотрению.
Назначение этой настройки состоит в том, чтобы:
Теперь по умолчанию это «1» секунда, и теперь ее можно уменьшить до нуля ?️ , но помните о вышеуказанных рисках.
Если установить этот ноль, бот, даже в режиме «агента», станет намного более «шустрым».
Очевидно, это может быть немного искусственно, и ни один реальный человек не будет печатать так быстро... но настройте его по своему вкусу и размеру кошелька.
Примечание. Я не могу напрямую контролировать скорость ответа API Open AI. Общее правило заключается в том, что чем более сложную модель вы устанавливаете, тем медленнее обычно будет этот ответ. Таким образом, GPT 3.5 намного быстрее, чем GPT 4… хотя это может измениться с появлением новой модели GPT 4 Turbo.
Чтобы чат-бот работал в чате, у вас должен быть включен чат.
Вы должны получить токен на https://platform.openai.com/, чтобы использовать текущего бота. Установлена языковая модель по умолчанию (одна из самых сложных), но вы можете попробовать более дешевую альтернативу, список здесь.
Существует автоматизированная часть настройки: при добавлении в Discourse плагин на данный момент настраивает пользователя AI-бота со следующими атрибутами
Вы можете редактировать имя, аватар и биографию (см. строку локали в разделе «Администратор» -> «Настроить» -> «Текст») по своему усмотрению, но сделать так, чтобы их было легко упомянуть.
Первоначально никто не будет иметь доступа к боту, даже персонал.
Вызов Open AI API не является бесплатным после истечения срока первоначального бесплатного выделения! Итак, я внедрил систему квот, чтобы держать это под контролем, снизить затраты и предотвратить злоупотребления. Стоимость таких небольших взаимодействий не является сумасшедшей, но она может вырасти, если она станет популярной. Вы можете узнать больше о ценах OpenAI на их странице цен.
Чтобы взаимодействовать с ботом, вы должны принадлежать к группе, которая была добавлена в один из трех уровней доверенных наборов групп: наборы групп с низким, средним и высоким уровнем доверия. Вы можете изменить количество разрешенных взаимодействий в неделю для каждой доверенной группы в соответствующих настройках.
Вы также должны заполнить группы. Эта конфигурация полностью зависит от вас. Вначале они пустые, поэтому изначально ни у кого не будет доступа к боту. Соответствующие квоты имеются в трех дополнительных настройках.
Обратите внимание, что пользователь получает квоту в зависимости от группы с самым высоким уровнем доверия, членом которой он является.
Существует несколько «настроек» языкового текста, которые влияют на то, что получает бот и как он реагирует.
Самое важное, что вам следует изменить, — это system
подсказка бота. Оно отправляется каждый раз, когда вы разговариваете с ботом.
Для базового бота вы можете попробовать системную подсказку, например:
«Вы ярый фанат Формулы-1, вам нравится все, что связано с автоспортом и его высоким октановым числом волнения», а не стандартным.
(Для бота-агента вы должны сохранить все после «Вы полезный помощник». В противном случае вы можете нарушить поведение агента. Сбросьте его, если у вас возникнут проблемы. Опять экспериментируйте!)
Попробуйте тот, который наиболее соответствует тематике вашего форума. Будьте изобретательны!
Изменение этих строк локали может привести к тому, что бот будет вести себя совсем по-другому, но его нельзя изменить на лету. Я бы рекомендовал изменить только системную подсказку, поскольку остальные играют важную роль в поведении агента или предоставляют информацию о том, кто что сказал боту.
NB. В темах первое сообщение и заголовок темы отправляются в дополнение к окну сообщений (определяется настройкой ретроспективного анализа), чтобы дать боту больше контекста.
Вы можете редактировать эти строки в разделе «Администратор» -> «Настройка» -> «Текст» в разделе chatbot.prompt.
дискурс-чат-бот/config/locales/server.en.yml
Строка 45 в 262a0a4
Бот поддерживает сообщения чата и сообщения в темах, включая личные сообщения (если настроено).
Вы можете побудить бота ответить, ответив на него или @ упомянув его. Вы можете указать, как далеко бот будет оглядываться назад, чтобы получить контекст для ответа. Чем больше значение, тем дороже будет каждый звонок.
Есть плавающая кнопка быстрого чата, которая мгновенно соединяет вас с ботом. Это можно отключить в настройках. Вы можете выбрать, загрузить ли бота в чат 1 на 1 или в Личное сообщение.
Теперь вы можете выбрать предпочитаемый значок (по умолчанию? ) или, если оставить пустым, выберет аватар пользователя бота! ?
И помните, вы также можете настроить текст, который появляется при его раскрытии, отредактировав текст локали с помощью Администратор -> Настроить -> Текстовый chatbot.
Единственный шаг, необходимый для его удаления, — это удалить оператор clone из вашего app.yml
.
Я не несу ответственности за то, что ответит бот. Предположим, что плагин находится на стадии бета-тестирования, и что-то может пойти не так. Это улучшится с обратной связью. Но не обязательно ответ ботов? Пожалуйста, поймите плюсы и минусы 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.