重要的是:烏克蘭的戰爭仍在進行中。每天,俄羅斯士兵強姦,謀殺,酷刑和驅逐烏克蘭平民。訪問此頁面,以了解您今天如何支持烏克蘭。
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
Upon starting, the server requests http://[hostname]/.well-known/ai-plugin.json for each plugin and takes it from there to load them.
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分叉以來,測試尚未進行更新。要固定。