Версия больших моделей в один клик, подходящая для Gensokyo и Onebotv11
Новичок — простой доступ к роботу: просто подключите робота к 6 основным платформам, включая QQ.
Учебное пособие по промежуточной стыковке one-api: визуальное управление API большой модели
Пример конфигурации API средней и большой модели — большая модель для внутреннего использования
Пример конфигурации API средней и большой модели — Международная глава
Готово к использованию — быстрое развертывание в Telegram
Готов к использованию — быстрое развертывание в Discord
Готов к использованию — быстрое развертывание в Kook
Просто-ГлупаяТаверна-Хуньюань
Simple-SillyTavern-погремушка
Поддерживает все стандартные платформы Onebotv11. Поддерживает http-api и обратный ws, поддерживает потоковую передачу, несколько файлов конфигурации (несколько слов подсказки).
Сверхмалый размер, встроенный контекст обслуживания sqlite, поддержка прокси,
Для подключения к платформе Gensokyo одним щелчком мыши требуется только настроить обратный http-адрес для получения информации и прямой http-адрес для вызова отправляющего API.
Автоматически поддерживать контекст на основе базы данных sqlite. В режиме разговора используйте команду сброса для сброса.
Можно установить систему, ролевую карту, длину контекста,
В то же время внешнему миру предоставляется оригинальный API openai с автоматическим контекстом (3 классических параметра, идентификатор, родительский идентификатор, сообщения).
Его можно запускать как API, а также можно одним щелчком мыши подключить к открытой платформе QQ robot QQ robot.
Можно преобразовать тип sse в gpt, увеличить или только отправить новый sse.
Безопасность памяти SSE в параллельной среде поддерживает одновременную двунаправленную передачу SSE для нескольких пользователей.
Тенсент Хунюань
Тенсент Юаньци
Байду Вэньсинь
Али Тонги
Спектр мудрости Цинхуа
Байт Вулкан (погремушка)
ОпенАИ
groQ
Rwkv бегун
Один API
Преобразуйте API этих платформ в единую структуру API, предоставьте контекст и поддержите возврат SSE.
Установив токен соответствующей платформы в yml и установив AllApi=true, можно одновременно выполнять переключение вызовов.
Gensokyo framework-открытая платформа QQ
Генсокё Фреймворк-Discord
Генсокё Фреймворк-Кук
Gensokyo framework – учетная запись подписки WeChatпубличная учетная запись
Генсокё Фреймворк-Telegram
Все реализации Onebotv11
Множество комплексных мер безопасности для максимального обеспечения безопасности разработчиков и приложений llm.
Можно настроить несколько раундов имитации контроля качества для усиления ролевых подсказок, ответов на сброс, ответов на безопасные слова, а также можно настроить меры безопасности первого уровня.
Поддерживает несколько взаимосвязей gsk-llm для формирования приложений ai-agent, таких как сортировка слов подсказки одного llm для другого, проверка слов подсказки и вторичные меры безопасности.
Список векторных безопасных слов, чувствительный список слов для перехвата, основанный на сходстве векторов, выполняется перед заменой текста, третьей мерой безопасности.
Сверхэффективное правило замены текста IN-Out, реализованное алгоритмом AhoCorasick, может заменить большое количество n ключевых слов соответствующими новыми ключевыми словами. Четвертый уровень мер безопасности.
Результаты можно снова передать через Baidu-Tencent, интерфейс текстового просмотра, пятый уровень мер безопасности.
Журнал полностью записывается, а параметр командной строки -test позволяет быстро запустить сценарий самопроверки безопасности из файла test.txt.
Командная строка -mlog будет выполнять форматирование QA для всех сохраненных в настоящее время журналов, ежедневно просматривать их, извлекать новые правила безопасности из реальных сценариев и постоянно повышать безопасность. Шестой уровень мер безопасности.
Языковая фильтрация позволяет llm принимать только указанный язык, автоматически преобразовывать традиционный китайский в упрощенный китайский, применять правила безопасности и защищать те области, в которых вы хорошо разбираетесь. Седьмой уровень мер безопасности.
Ограничение длины подсказки, контроль безопасности самым оригинальным способом, предотвращение создания длинных подсказок злоумышленниками, восьмой уровень мер безопасности.
С помощью этих методов создайте максимально безопасного разговорного робота llm.
Двухслойная замена текста IN-OUT. Вы можете самостоятельно реализовать динамическую замену и модификацию внутренних слов подсказки, что более безопасно и мощно.
На основе структуры таблицы векторных данных, разработанной SQLite, можно использовать кэширование для экономии денег. Настройте скорость и точность попадания в кэш.
Специализированное приложение для сценариев, оптимизированное для сценариев с высокой эффективностью, высокой производительностью и высоким количеством запросов в секунду. Оно не имеет избыточных функций и инструкций и полностью разработано для цифровых людей.
Запустите исполняемую программу gensokyo-llm с помощью командной строки.
Настройте config.yml для запуска, а затем прослушайте порт порта, чтобы предоставить API /conversation.
Поддерживает разработку промежуточного программного обеспечения Между уровнем инфраструктуры gensokyo и http-запросом gensokyo-llm может быть разработано промежуточное программное обеспечение для реализации векторного расширения, расширения базы данных и динамического изменения пользовательских задач.
Поддержка обратного соединения ws и поддержка одновременного подключения к нескольким http-api onebotv11.
В этом документе представлены инструкции по методу вызова интерфейса API и формату файла конфигурации, которые помогут пользователям правильно его использовать и настраивать.
Конечные точки conversation
и gensokyo
этой системы поддерживают указание конкретных конфигураций с помощью параметра запроса ?prompt=xxx
.
Параметр prompt
позволяет пользователю указать YAML-файл конфигурации, расположенный в папке prompts
исполняемого файла (exe). Используйте этот параметр для динамической настройки поведения API и возврата содержимого.
В папке подсказок должен быть файл Keyboard.yml по умолчанию для создания пузырьков. Слова системных подсказок должны соответствовать правилам подсказок генератора пузырьков JSON.
Файлы конфигурации должны иметь следующий формат YAML. Здесь представлен пример файла конфигурации, который показывает, как определить содержимое диалога для различных ролей:
Prompt :
- role : " system "
content : " Welcome to the system. How can I assist you today? "
- role : " user "
content : " I need help with my account. "
- role : " assistant "
content : " I can help you with that. What seems to be the problem? "
- role : " user "
content : " aaaaaaaaaa! "
- role : " assistant "
content : " ooooooooo? "
settings :
# 以下是通用配置项 和config.yml相同
useSse : true
port : 46233
/gensokyo
Система поддерживает дополнительные параметры prompt
и параметры api
при отправке запросов к конечной точке /gensokyo
. Параметры api
позволяют указывать полные конечные точки, например /conversation_ernie
. Чтобы включить эту функцию, вам необходимо включить опцию allapi
в конфигурации.
Пример запроса:
GET /gensokyo?prompt=example&api=conversation_ernie
Список поддерживаемых конечных точек: (Требуется настройка: allApi: true)
http . HandleFunc ( "/conversation_gpt" , app . ChatHandlerChatgpt )
http . HandleFunc ( "/conversation_hunyuan" , app . ChatHandlerHunyuan )
http . HandleFunc ( "/conversation_ernie" , app . ChatHandlerErnie )
http . HandleFunc ( "/conversation_rwkv" , app . ChatHandlerRwkv )
http . HandleFunc ( "/conversation_tyqw" , app . ChatHandlerTyqw )
http . HandleFunc ( "/conversation_glm" , app . ChatHandlerGlm )
/conversation
Подобно /gensokyo
, конечная точка /conversation
поддерживает дополнительные параметры prompt
.
Пример запроса:
GET /conversation?prompt=example
prompt
анализ параметров Предоставленный параметр prompt
будет ссылаться на соответствующий файл YAML в папке /prompts
в каталоге исполняемых файлов (например, xxxx.yml
, где xxxx
— значение параметра prompt
).
Написав большое количество yml-файлов с подсказками, можно переключать карточки персонажей. С одним и тем же персонажем можно переключать сюжетные линии и разные сцены.
Формат конфигурации файла YAML указан в разделе «Формат файла конфигурации YAML» . Перечисленные ниже элементы конфигурации поддерживают динамическое переопределение в запросах:
Каждый параметр реализует охват конфигурации.
Если есть какие-либо упущения и требуется поддержка конфигурации, отправьте сообщение о проблеме.
Все значения bool должны быть указаны в yml, указанном в файле конфигурации, иначе они будут считаться ложными.
Переопределение динамической конфигурации — это функция, которую я придумал сам. Используя эту функцию, вы можете добиться рекурсии между файлами конфигурации. Например, вы можете передать Prompt=a в своем промежуточном программном обеспечении, указать Lotus для вызова самого себя в файле .yml и указать следующее. параметр подсказки в адресе лотоса: b, b указывает c, c указывает d и так далее.
В этом проекте реализован поток управления подсказками и метод построения управляемого контекста. На основе нескольких файлов конфигурации, реализованных в этом проекте, могут быть реализованы условные переходы и переключения между файлами конфигурации.
Это позволяет пользователям переключаться между несколькими наборами слов-подсказок в соответствии с некоторыми условиями, чтобы и при необходимости реализовывать текстовые любовные игры, приключенческие игры, прерывистые сюжетные линии с несколькими ответвлениями и другую систему потоковой передачи слов-подсказок.
- [x] promptMarks :
- BranchName : "去逛街路上"
Keywords : ["坐车", "走路", "触发"]
- BranchName : "在家准备"
Keywords : ["等一下", "慢慢", "准备"]
- [x] enhancedQA : true
- [x] promptChoicesQ :
- Round : 1
ReplaceText : "回家吧"
Keywords : ["我累了", "不想去了"]
- Round : 2
ReplaceText : "我们打车去"
Keywords : ["快点去", "想去", "早点"]
- Round : 3
ReplaceText : "我们走着去"
Keywords : ["不着急", "等下"]
- Round : 1
ReplaceText : "放松一下"
Keywords : [] # 相当于 enhancedChoices = false
- [x] promptChoicesA : 同上。
- [x] promptCoverQ : 只有Q没有A,格式同上,Choices是附加,cover是覆盖。
- [x] promptCoverA : # 同上
- [x] switchOnQ :
- round : 1
switch : ["故事退出分支", "下一个分支"]
keywords : ["不想", "累了", "想", "不累"]
- [x] switchOnA :
- round : 1
switch : ["晚上分支"]
keywords : ["时间不早了"]
- [x] exitOnQ :
- round : 1
keywords : ["退出", "忘了吧", "重置", "无聊"]
- [x] exitOnA :
- round : 1
keywords : ["退出", "我是一个AI", "我是一个人工", "我是一个基于"]
- [x] envType : 0 # 0=不使用场景描述, 1=在本轮llm回复前发送场景描述, 2=在本轮llm回复后发送场景描述, 场景描述支持[image:xxx][pic:xxx][图片:xxx][背景:xxx]标签, xxx为相对或绝对路径, 需在exe运行目录下
- [x] envPics : [] # 现阶段ai速度太慢,人工指定,数组代表多个,每个数组成员以1: 2: 开始代表对应第几轮.
- [x] envContents : [] # 如果要跳过某个轮次,直接指定文字是2: 图片也是2: 代表本轮文图是空的.
- [x] promptChanceQ :
- probability : 50
text : "让我们休息一下"
- probability : 30
text : "继续前进"
- probability : 70
text : "停下来看看周围"
- probability : 10
text : "尝试一些新东西"
Все вышеуказанные параметры расположены в разделе настроек файла с несколькими конфигурациями. Вы можете определить длину слов подсказки для каждой сцены и длину PromptMarksLength каждой сцены, чтобы контролировать степень детализации графика.
Метод запуска режима истории 1, управление промежуточным программным обеспечением, вызов порта /gensokyo сам по себе и присоединение различных параметров подсказки, а также отключение вручную
Установите адрес http API платформы робота ob11 в gsk-llm. Приложение-плагин ob11 не отвечает за отправку сообщений. Оно только выносит условные решения на основе содержимого сообщения. В качестве управляющего промежуточного программного обеспечения оно дает разработчикам свободу действий. контролировать условия.
Второй метод запуска сюжетного режима заключается в автоматическом переключении ветвей на основе ключевых слов путем настройки switchOnQ и switchOnA в файле конфигурации по умолчанию config.yml.
В сочетании с возможностью файла конфигурации в параметрах приглашения продвигать историю, можно реализовать базовую сюжетную линию AI, ориентированную на слова подсказки. Кроме того, также необходимо разработать соответствующий файл -keyboard.yml для каждого файла Prompt.yml. генерировать пузыри.
Ключевые слова PromptMarks — [], что означает нажатие PromptMarksLength для переключения файлов слов подсказки. PromptMarksLength представляет длину контекста, поддерживаемую этим файлом слов подсказки.
Если PromptMarksLength меньше 0, последующие ветки будут считываться из PromptMarks и переключаться между ними случайным образом. Если PromptMarkType=1,
1=Срабатывает в зависимости от условий, также срабатывает при достижении PromptMarksLength.
Подробности конфигурации см. в разделе Process control-promptmarks.md.
Эта ветка будет активирована, когда пользователь и модель произнесут знак (вам необходимо написать слово-подсказку самостоятельно, чтобы llm мог произнести его в соответствии с условиями).
Вы можете использовать системные слова-подсказки и контроль качества текущего фрагмента истории, чтобы направлять ИИ для вывода согласованных с вами слов переключения, тем самым разрабатывая несколько триггерных слов для каждой целевой ветви и позволяя большой модели определять направление развития история сама по себе.
Если для EnhanceQA установлено значение false, предопределенный QA в файле конфигурации будет добавлен в начало пользовательского QA и существовать в памяти llm (не влияя на общее направление диалога), создавая слабое воздействие.
Когда для EnhanceQA установлено значение true, я попытался переместить положение предопределенного QA в файле конфигурации сверху вниз в начало текущего разговора пользователя, но эффект был не идеальным.
В настоящее время он будет смешан и интегрирован с историческим контролем качества текущего пользователя, чтобы в определенной степени направлять пользовательский ввод, тем самым влияя на направление процесса истории.
Введен параметр «поток управления конфигурацией», который является менее гибким, чем ai-agent, но имеет более высокую управляемость участка, меньшую скорость генерации и меньшую стоимость.
PromptChoicesQ и PromptChoicesA Документация: Process Control-promptchoicesQ Process Control-promptCoverQ Process Control-promptChanceQ
SwitchOnQ означает переключение текущей ветки, когда соответствующий текст найден в Q. То же самое справедливо и для switchOnA, и его метод настройки такой же, как и PromptChoices.
Включение управления процессомQA
exitOnQ означает, что текущая ветка будет закрыта при обнаружении указанного ключевого слова. Управление процессом-exitonQA
PromptMarks, switchOnQ и switchOnA функционально одинаковы. Все они переходят к ветвям на основе ключевых слов. PromptMarks выполняется первым, независимо от раундов или QA.
Если есть фиксированные ветки, которые не нужно переключать, установите для параметра PromptMarksLength yml значение 99999.
подсказкаMarksLength: 99999
Это сделано для того, чтобы избежать ошибочного переключения на несуществующую ветку, вызывающего ошибки сеанса.
Процесс управления конфигурацией прост и интуитивно понятен. Логика диалога управляется с помощью файла конфигурации. Файл конфигурации легко обслуживать. Нетехнический персонал, например составители графиков, может напрямую изучать правила файла конфигурации и изменять его. обновить логику диалога без знаний программирования.
Высокая достоверность сюжета: при одинаковых исходных данных и конфигурации направление сюжета в целом единообразно, что очень важно для обеспечения последовательности и предсказуемости сюжета диалога.
Стоимость низкая, а контекст умело комбинируется и заменяется вместо одновременной обработки несколькими ИИ. Он потребляет почти такое же количество токенов, что и обычный разговор, что экономит деньги.
Он быстрый, генерирует результаты, как обычный контроль качества диалогов, и пишет сюжеты, как игровые сценарии.
Недорогая история искусственного интеллекта и новые решения, подходящие для отдельных разработчиков и небольших групп разработчиков. Низкая стоимость, высокая скорость и высокая управляемость. Эффект напрямую улучшится с улучшением модели и быстрым словесным эффектом.
Для сценариев чата с диалоговым графиком, если сюжет относительно фиксирован, путь диалога задан заранее, а частота обновления невелика, более подходит использование потока управления конфигурацией, поскольку он обеспечивает высокую степень управляемости и простоту управления. -понимание методов управления.
Если диалоговая система требует высокой степени интерактивности и персонализации или изменения сюжета сложны и требуют динамической корректировки на основе конкретной обратной связи и поведения пользователя, то может быть более целесообразным использовать агентное решение на основе искусственного интеллекта, которое требует более высоких технических инвестиций и затрат на техническое обслуживание.
В этом разделе описывается конкретная информация о конечной точке для связи с API.
свойство | Подробности |
---|---|
URL-адрес | http://localhost:46230/conversation |
метод | POST |
Текст запроса, который клиент должен отправить на сервер, должен быть в формате JSON. В следующей таблице указаны типы данных и описание каждого поля.
Имя поля | тип | описывать |
---|---|---|
message | Нить | Содержание сообщения, отправленного пользователем |
conversationId | Нить | Уникальный идентификатор текущего сеанса беседы |
parentMessageId | Нить | Идентификатор предыдущего сообщения, связанного с этим сообщением |
Следующий объект JSON показывает структуру тела запроса при отправке запроса в эту конечную точку API:
{
"message" : "我第一句话说的什么" ,
"conversationId" : " 07710821-ad06-408c-ba60-1a69bf3ca92a " ,
"parentMessageId" : " 73b144d2-a41f-4aeb-b3bb-8624f0e54ba6 "
}
В этом примере показано, как создать тело запроса, содержащее содержимое сообщения, уникальный идентификатор текущего сеанса беседы и идентификатор предыдущего сообщения. Этот формат гарантирует, что запрошенные данные не только соответствуют правилам обработки сервера, но также облегчает поддержание согласованности контекста диалога.
Успешный ответ вернет код состояния 200
и объект JSON со следующими полями:
Имя поля | тип | описывать |
---|---|---|
response | Нить | Содержимое ответного сообщения интерфейса |
conversationId | Нить | Уникальный идентификатор текущего разговора |
messageId | Нить | Уникальный идентификатор текущего сообщения |
details | Объект | Включите дополнительные сведения об использовании |
usage | Объект ( details ) | Подробности использования, такие как количество токенов |
{
"response" : "回答内容" ,
"conversationId" : " c9b8746d-aa8c-44b3-804a-bb5ad27f5b84 " ,
"messageId" : " 36cc9422-da58-47ec-a25e-e8b8eceb47f5 " ,
"details" : {
"usage" : {
"prompt_tokens" : 88 ,
"completion_tokens" : 2
}
}
}
Может работать на различных архитектурах (родной Android пока не поддерживается, sqlitev3 требует cgo). Поскольку компиляция cgo сложна, на платформе Arm или на других архитектурах, вы можете попробовать скомпилировать его локально под соответствующую системную архитектуру.
Метод API вызывает канал QQ для прямого доступа
Параметры запроса аудитора
Если запрос необходимо отправить другому GSK LLM в качестве аудитора, формат JSON должен быть возвращен следующим образом:
{ "result" : %s }
%s
здесь представляет собой заполнитель, который будет заменен определенным значением с плавающей запятой.
Результаты запроса на создание пузырьков
При запросе другого GSK LLM для создания пузырьков должен быть возвращен следующий формат JSON:
[ " " , " " , " " ]
Это означает, что результатом генерации пузырька является массив, содержащий три строки. Этот формат используется для указания трех разных пузырьков при возврате результатов или меньше или равно 3.
Больше нет необходимости открывать несколько gsk-llm для реализации функций, подобных агенту. Благодаря новому охвату нескольких конфигураций, параметрам подсказок и функциям Lotus вы можете самостоятельно запросить реализацию сложных функций, таких как создание пузырьков и продвижение истории.
GetAIPromptkeyboardPath может быть собственным адресом или иметь параметры подсказки.
При использовании промежуточного программного обеспечения для указания параметров подсказки конфигурация находится в папке подсказок и имеет формат xxx-keyboard.yml. Если промежуточное ПО не используется, укажите параметры подсказки в пути и поместите соответствующий xxx.yml в подсказки. папка. )
Установите адрес /conversation для совместной работы слов системных подсказок gsk-llm. Согласовано, что слова системных подсказок должны возвращать текстовый массив json (3).
Этот проект основан на идеях следующих известных проектов и реализует упрощенный формат конфигурации потока управления текстом AI.
Раса
шпагат
Инклерайтер