Важно: война в Украине все еще продолжается. Каждый день российские солдаты изнасилования, убийства, пыток и депортации украинских гражданских лиц. Посетите эту страницу, чтобы увидеть, как вы можете поддержать Украину сегодня.
Гораций позволяет реализовать пользовательский чат -бот с вашим выбором LLM и набора плагинов CHATGPT. Он работает как сервер WebSocket, позволяя легко добавить чат-бот на основе LLM в ваше веб-приложение или мобильное приложение.
Функции:
none , user_http , service_httpГораций опирается и расширяет Грейс, мой оригинальный чат-бот с LLM. Вот Гораций, работающий в режиме отладки с плагином Klarna Chatgpt, доступ к веб -клиенту:
cd horacepython3 -m venv ./venvsource ./venv/bin/activatepip3 install -r requirements.txtapp : cd appOPENAI_API_KEY=openai-api-key python3 main.py (замените openai-api-key с вашим ключом API Openai-получите его здесь) cd horace
source ./venv/bin/activate
python3 app/horace-cli.py
client-demo/index.html в Explorer/Finder и т. Д., Чтобы открыть его в браузере. cd horacedocker build -t horace:latest . docker run --rm
-e OPENAI_API_KEY=openai-api-key
-p 8001:8001
--name horace
horace:latest
docker exec -it horace python3 /app/horace-cli.pyclient-demo/index.html в Explorer/Finder и т. Д., Чтобы открыть его в браузере. main.py и horace-cli.py поддерживает несколько аргументов командной строки:
python3 main.py --help
usage: main.py [-h] [--host HOST] [--port PORT] [--debug]
optional arguments:
-h, --help show this help message and exit
--host HOST bind host name
--port PORT bind port number
--debug enable debug mode
python3 app/horace-cli.py --help
usage: horace-cli.py [-h] [--host HOST] [--port PORT]
optional arguments:
-h, --help show this help message and exit
--host HOST server host name
--port PORT server port number
На данный момент поддерживается только бэкэнд API OpenAI. (Мне не известно о неопенайских LLM с уровнем подход к инструкции, достаточным для вызова плагина прямо сейчас.) Однако добавление пользовательской бэкэнд LLM с Горация довольно проста:
Backend -базы, расположенной в backends/backend.py и реализуйте метод complete()backendsmain.pyBACKENDS в main.py чтобы включить псевдоним вашего нового бэкэнда и название классаconfig.yaml : backend:
name: my_llm_backend
Обратитесь к бэкэнд API OpenAI ( backends/openai_backend.py ) в качестве примера.
Бэкэнд API OpenAI позволяет переключаться между следующими моделями:
См config.yaml для переключения между моделями API OpenAI.
Гораций работает с плагинами Chatgpt из коробки. Чтобы включить плагин, добавьте его имя хоста с дополнительным номером порта в раздел plugins в config.yaml :
router:
plugins:
# For https://github.com/artmatsak/chatgpt-todo-plugin/
# - localhost:5002
- www.klarna.com
После начала сервер запрашивает http://[hostname]/.well-known/ai-plugin.json для каждого плагина и берет его оттуда, чтобы загрузить их.
В настоящее время Гораций поддерживает методы none , user_http и server_http AUTH для плагинов CHATGPT. Если для плагина требуется токен Auth, Гораций просит вас за один во время запуска сервера. На данный момент токены автоэ. сохраняются незашифрованными в .plugin_auth.json .
Подсказка LLM по умолчанию для Горация предназначена для того, чтобы сделать бот нейтральным. BOT не ограничивается плагинами, основанными на плагине запросов пользователей (например, бот бронирования в ресторане), и при этом он не нажимает на функциональность с поддержкой плагина на пользователя. Другими словами, вы можете пообщаться с ботом, как обычно, с Chatgpt; Если бот чувствует, что требуется метод плагина, он сделает это.
В реальных сценариях вы можете ограничить бот определенным возможностями, таким как бронирование стола (см. Приглашение Грейс для вдохновения), или, возможно, предоставить ему уникальный голос/личность. Для этого вы можете добавить инструкции в подсказку LLM, используя свойство extra_instructions в config.yaml :
horace:
# Any extra instructions to prepend the prompt with
extra_instructions: >-
You are a helpful and polite AI assistant.
# extra_instructions: >-
# In your speech, you impersonate Jedi Master Yoda and crack jokes in response
# to mentions of other Star Wars characters.
Попробуйте расстроить блок Yoda выше, чтобы увидеть, как голос чат -бота соответственно. (Не забудьте перезапустить сервер после внесения каких -либо изменений в конфигурации.)
Тесты еще не были обновлены с момента разрыва от благодати. Быть исправленным.