重要的是:乌克兰的战争仍在进行中。每天,俄罗斯士兵强奸,谋杀,酷刑和驱逐乌克兰平民。访问此页面,以了解您今天如何支持乌克兰。
Horace允许您选择一个LLM和一组Chatgpt插件的自定义聊天机器人。它以WebSocket服务器的形式运行,使您可以轻松地在Web或移动应用程序中添加一个LLM供电的聊天机器人。
特征:
none , user_http , service_httpHorace建立并扩展了我原始的LLM驱动聊天机器人Grace。这是通过Klarna Chatgpt插件在调试模式下运行的Horace,该插件通过Web客户端访问:
cd horacepython3 -m venv ./venvsource ./venv/bin/activatepip3 install -r requirements.txtapp程序目录: cd appOPENAI_API_KEY=openai-api-key python3 main.py (用OpenAi API键替换openai-api-key将其获取 - 在此处获取) cd horace
source ./venv/bin/activate
python3 app/horace-cli.py
client-demo/index.html以在浏览器中打开它。 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以在浏览器中打开它。 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
目前,仅支持OpenAI API后端。 (我不知道目前有足够的指令遵循的非欧洲LLM,现在可以使用插件调用。)但是,在Horace中添加自定义LLM后端非常简单:很简单:
backends/backend.py中的Backend基础继承一个新的后端类complete()backends目录中main.pyBACKENDS映射在main.py中以包括您的新后端别名和班级名称config.yaml中的新后端: backend:
name: my_llm_backend
作为示例,请参见OpenAI API后端( backends/openai_backend.py )。
OpenAI API后端使您可以在以下模型之间切换:
有关在OpenAI API模型之间切换config.yaml 。
Horace开箱即用的Chatgpt插件。要启用插件,请在config.yaml中的plugins部分添加其主机名:
router:
plugins:
# For https://github.com/artmatsak/chatgpt-todo-plugin/
# - localhost:5002
- www.klarna.com
启动后,服务器请求http://[hostname]/.well-known/ai-plugin.json for for每个插件,并从那里拿起它来加载它们。
Horace当前支持none , user_http和server_http auth方法用于chatgpt插件。如果插件需要验证令牌,则Horace在服务器启动期间要求您提供一个。目前,在.plugin_auth.json中未加密验证令牌。
Horace的默认LLM提示旨在使机器人中性。该机器人既不限于插入插件的用户请求(例如,例如餐厅预订机器人),也不会主动将启用插件的功能推向用户。换句话说,您可以像往常一样与chatgpt聊天。如果机器人认为需要调用插件方法,它将这样做。
在现实世界中,您可能需要将机器人限制在特定范围中,例如预订桌子(请参阅Grace的提示灵感),或者为其提供独特的声音/个性。为此,您可以使用config.yaml中的extra_instructions属性将指令添加到LLM提示符:
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块,以了解聊天机器人的声音如何相应地变化。 (不要忘记对配置进行任何更改后重新启动服务器。)
自从Grace分叉以来,测试尚未进行更新。要固定。