Создание пользовательских персонажей AI-ботов

Как вы выбираете персоны? И в чём разница между персонами и ai bot enabled chat commands?

В частности, как именно вы это делаете?

1 лайк

Персонажи — это лучший способ, который @sam нашёл, чтобы мы могли поддерживать всё больше и более качественных команд. Вместо «одного бота», который пытается сделать всё, но в итоге забывает и терпит неудачу из-за известных ограничений LLM, выбор подходящего персонажа на старте обеспечивает вам гораздо лучший опыт.

2 лайка

Ага! Это здорово. Я сам начинал свои чаты как личные сообщения.

Это также объясняет ошибку. Если начать личное сообщение и отправить его GPT, оно перекрывает тему, так что вы не можете отправить сообщение. Никто, кто использует плагин разумно, так не поступит.

Почему я никогда не использовал значок для начала чата, объяснить не могу. Я даже сказал пользователю, что можно начать чат таким образом, но сам об этом никогда не думал!?

Мой следующий вопрос: насколько легко создавать новые персоны сейчас или в будущем? (Сначала я изучу код.)

Например, я создал шаблон (который работает с плагином AI-чата) примерно так:

@AIBot

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

и так далее.

Я бы хотел иметь возможность сделать это персоной.

РЕДАКТИРОВАНИЕ: На первый взгляд кажется, что для добавления новой персоны нужно изменить всего несколько файлов: саму персону, а затем в entry_point.rb нужно добавить требование её подключения и создать настройку для её включения. О! Или, возможно, можно сделать кастомную персону, которая будет принимать промпт как настройку сайта. Думаю, это решение на более долгую перспективу. Стоит ли мне попробовать сделать pull request для этого, или пока лучше просто форкнуть свою версию?

3 лайка

Мы планируем сделать промпты настраиваемыми в будущем, но пока для этого ещё слишком рано.

Я бы начал с форка, так как в текущем «предварительном» состоянии плагина мы много что меняем и не можем гарантировать стабильность внутренней структуры кода.

Если у вас получится решение, которое, по вашему мнению, будет в целом полезным, и вы сможете привести его к тому же уровню, что и другие персонажи, то вы можете открыть тему в канале #feature для обсуждения pull request.

6 лайков

@pfaffman мы обдумываем различные типы персонажей, которые могут быть у нашего ИИ-бота. Пока мы сузили выбор до следующих вариантов, но продолжаем экспериментировать…

  • Помощник форума: ИИ-бот общего назначения, способный выполнять различные задачи. Может искать информацию в вашем текущем экземпляре Discourse и использовать её для формирования ответов.
    • Например: Какие самые популярные посты по теме ИИ?
  • Помощник по SQL: ИИ-бот, специализирующийся на помощи в написании SQL-запросов для вашего экземпляра Discourse (знает схему вашей текущей базы данных).
    • Например: Напиши мне запрос, чтобы найти все сообщения ИИ-бота от конкретного клиента/пользователя.
  • Художник: ИИ-бот, специализирующийся на генерации изображений.
    • Например: Нарисуй мне картинку с котом.
  • Исследователь настроек: ИИ-бот, специализирующийся на помощи в изучении настроек сайта Discourse (знаком с исходным кодом Discourse).
    • Например: Как мне включить ИИ для Discourse на моём сайте?
  • Исследователь: ИИ-бот с доступом к Google для поиска информации для вас.
    • Например: Сколько ног у динозавра?

Есть ли другие персонажи, которые вы хотели бы видеть у ИИ-бота? Нашли бы вы ценность в создании собственной «кастомной» персонализации (если вам не понравятся предложенные выше варианты)?

1 лайк

Моя идея, над которой я пока не работал, заключается в создании категории для персонажей, где оригинальный пост темы будет служить промптом. Я представляю себе кастомные промпты, подобные этому, которые генерируют инструкции для AI-генераторов изображений: https://metricsmule.com/chatgpt-prompt-genius/, или промпты вроде этого с Now is the time for grimoires - by Ethan Mollick, которые начинаются так:

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

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

3 лайка

Что именно в этом персонаже строится поверх интеграции с Discourse, помимо использования интерфейса Discourse в качестве фронтенда для внешней LLM?

Для большинства наших персонажей мы рассматриваем возможность внедрения RAG, чтобы создать что-то, что стандартная LLM «из коробки» не сможет предложить.

3 лайка

Ох. Э-э…

Да. Именно этого я и хочу.

Мой сценарий использования — создание учебных заданий (по типу «полезного репетитора»), которые направляют пользователей через сгенерированную ИИ активность. Discourse — это мой основной инструмент, поэтому я хочу, чтобы всё работало внутри Discourse. (Я потратил около 12 часов в эти выходные на поиск и установку сокращателя ссылок/генератора QR-кодов — думаю, я мог бы сделать это быстрее в виде плагина для Discourse!).

Судя по тому, сколько я и мои студенты платим за вызовы API, использование Discourse как способа доступа к GPT-4 обходится намного дешевле, чем оплата $20 в месяц за использование их интерфейса.

Если кто-то ещё слушает, я думаю, он имеет в виду это: What is retrieval-augmented generation (RAG)? - IBM Research.

Ох, извините. Да, я ушёл не в ту сторону.

2 лайка

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

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

2 лайка

Мы определенно хотим добавить поддержку «пользовательских персон», где вы сможете выбирать:

  • Температуру
  • Системное сообщение
  • LLM
  • Команды

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

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

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

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

Фаза 0

  • Администраторы смогут определять пользовательские персоны и выбирать команды, температуру, системное сообщение и LLM.

Фаза 1

  • Разрешенные группы смогут создавать «личную персону». Например: «Я хочу, чтобы моя креативная персона была более креативной/более лаконичной и т. д.», как пользовательские инструкции от OpenAI, но с более широкими возможностями.

Фаза 2

  • Поддержка пользовательских команд для интеграции со сторонними системами.
8 лайков

Всё это звучит здорово.

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

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

Редактор персонажей запущен и работает!

Закрываю эту тему. Не стесняйтесь открывать новые запросы на функции для редактора персонажей.

4 лайка