Mirai Console 下的OpenAI Chat Bot 插件
Be based on https://chat.openai.com/
OpenAI 目前對註冊有一定要求,請先閱讀註冊, 然後創建Secret Key
注意,不是Cookie Token
, 是api-key
另外,可以直連,不需要代理,只是註冊帳號的時候需要代理api.openai.com
已列入黑名單,你需要配置代理如果沒有配置,本插件會嘗試做一些特殊處理,一般情況下也能正常使用api.openai.com
IP位址變更,套了一層cloudflare
, 特殊處理失效, 表現為403
- text/html
回應
開啟聊天預設使用chat
(chat_prefix) 觸發, 基於/v1/chat/completions
預設模型gpt-3.5-turbo
開啟問答預設使用Q&A
(question_prefix) 觸發, 基於/v1/completions
預設模型text-davinci-003
開啟圖片產生預設使用?
(image_prefix) 觸發停止聊天或問答預設使用stop
觸發重載配置預設使用openai-reload
(reload_prefix) 觸發,使用後將重新載入配置,無需重新啟動Mirai Console
/v1/chat/completions
消耗tokens
比/v1/completions
小,但是聊天特化,請自行注意兩者的區別如果需要使用GPT4
,請參考Model endpoint compatibility 替換模型
預設权限检查
是關閉的, 需要在基本配置中配置開啟(開啟後會在日誌中給出權限ID)
預置prompt
(又稱語境或人格)
用法範例chat #猫娘
自訂設定請閱讀預設語境預設的載入優先權開始指令時指定( chat #xxx
) > 使用者綁定的預設> 群綁定的預設
Since 1.1.0新增@
觸發聊天設定(手機端回覆訊息時會附帶@, 請注意不要誤觸)
Since 1.2.0將chat
功能對接至https://platform.openai.com/docs/api-reference/chat, 節省Usage
Since 1.2.2 Fake SSLSocket
Since 1.3.0添加經濟體系對接與預置語境
Since 1.3.1添加一些可能會帶來BUG的配置立刻开始聊天
,保持前缀检查
Since 1.4.0修改經濟檢查邏輯,僅在聊天開始前檢查是否餘額
Since 1.4.1新增綁定預設的引用~
Since 1.5.0新增控制cname
功能的配置,用法:在Java
啟動參數中新增-Dxyz.cssxsh.openai.cname=false
聊天
問答
圖片
預置語境
openai.yml
基本配置
proxy
代理協定支援socks
和http
, 例如socks://127.0.0.1:7890
completion_prefix
自訂模型觸發前綴, 用來測試模型及消耗, 預設>
image_prefix
圖片產生觸發前綴, 預設?
chat_prefix
聊天模型觸發前綴, 預設chat
question_prefix
問答模型觸發前綴, 預設Q&A
reload_prefix
重載配置觸發前綴, 預設openai-reload
economy_set_prefix
經濟設定觸發前綴, 預設tokens
bind_set_prefix
綁定設定觸發前綴, 預設bind
stop
停止聊天或問答, 預設stop
token
Secret Key, 插件第一次啟動時會要求輸入,不用再編輯文件error_reply
發生錯誤時回覆用戶,預設true
end_reply
停止聊天時回覆用戶,預設false
chat_limit
聊天服務數量限制chat_by_at
聊天模型觸發於@
,預設false
has_permission
權限檢查, 為true
時開啟at_once
立刻開始聊天/問答(即不會發送聊天/问答将开始
, 而是直接接著指令開始聊天) 預設false
keep_prefix_check
保持前綴檢查(即一定要附帶前綴/ @
才會觸發對話),預設false
has_economy
經濟系統, 為true
時開啟@see https://github.com/cssxsh/mirai-economy-core completion.yml
自訂模型詳細配置
model
模型max_tokens
回答長度temperature
逆天程度,取值0.0~2.0
image.yml
圖片產生模型詳細配置
number
圖片張數size
可選的範圍是固定的,請不要更改format
下載方式,請不要更改chat.yml
聊天模型詳細配置
gpt_model
模型timeout
等待停止時間max_tokens
回答長度temperature
逆天程度,取值0.0~2.0
question.yml
問答模型詳細配置
model
模型timeout
等待停止時間max_tokens
回答長度temperature
逆天程度,取值0.0~2.0
economy.yml
經濟相關
sign_plus_assign
簽到增加的tokens數量,預設1024
https://juejin.cn/post/7175153557941780541
線上測試
https://platform.openai.com/playground
官方例子
https://platform.openai.com/examples
@see https://github.com/cssxsh/mirai-economy-core
openai.com
透過tokens
, 分詞數量(一般來說句子越長,分詞越長)來計算費用。
為了防止某些使用者過度消耗tokens
, 導致額度耗盡。
對接後,經濟系統將為每個用戶計算tokens
額度,個人的可用tokens
為0
時,聊天功能將拒絕回應並提示。
管理员(未开启权限检查)
或持有经济权限的用户(已开启权限检查)
可用為使用者設定tokens
額度
用法為tokens 114514 @12345
為使用者12345
分配114514
個tokens
或tokens 12345
為全部群成員分配114514
個tokens
有些人也將其形容為人格
, 實際上這個功能是告訴機器人你需要扮演什麼角色或提供什麼功能
設定方法, 在插件資料目錄data/xyz.cssxsh.mirai.plugin.mirai-openai-plugin/prompts
下新建XXX.txt
然後填入你需要預置的內容
Since 1.5將會從https://chathub.gg/api/community-prompts 載入第三方情境, 同時以#<充当Linux 终端>
的格式相容空格
使用方法,在chat
後面附加#XXX
, 例如chat #猫娘
或使用bind
為目前使用者綁定一個預設prompt
, 例如bind 猫娘
當訊息為群組訊息,且目前使用者為管理員/群組時所綁定的物件將是群
,即為群
設定預設
由於chat
會在有附加的內容時(附加的內容會被當作預設處理),不啟用綁定預設所以添加一個新功能, 使用~
或.
來引用綁定預設, 例如chat ~ ...
請確認mcl.jar 的版本是2.1.0+
./mcl --update-package xyz.cssxsh.mirai:mirai-openai-plugin --channel maven-stable --type plugins
mirai2.jar
plugins
資料夾中