mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-04 12:56:02 +00:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8164f4b506 | ||
|
|
9617be0ca4 | ||
|
|
f079d7b9fa | ||
|
|
00afda452f | ||
|
|
70386abadd | ||
|
|
aba9d945b5 | ||
|
|
ced38490e1 | ||
|
|
ad28b69198 |
@@ -47,6 +47,9 @@
|
|||||||
|
|
||||||
## ✅功能
|
## ✅功能
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>点击此处展开概述</summary>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>✅支持敏感词过滤,避免账号风险</summary>
|
<summary>✅支持敏感词过滤,避免账号风险</summary>
|
||||||
|
|
||||||
@@ -124,6 +127,7 @@
|
|||||||
- 目前已支持正向代理访问接口
|
- 目前已支持正向代理访问接口
|
||||||
- 详细请查看config.py中的`openai_config`的说明
|
- 详细请查看config.py中的`openai_config`的说明
|
||||||
</details>
|
</details>
|
||||||
|
</details>
|
||||||
|
|
||||||
详情请查看[Wiki功能使用页](https://github.com/RockChinQ/QChatGPT/wiki/%E5%8A%9F%E8%83%BD%E4%BD%BF%E7%94%A8#%E5%8A%9F%E8%83%BD%E7%82%B9%E5%88%97%E4%B8%BE)
|
详情请查看[Wiki功能使用页](https://github.com/RockChinQ/QChatGPT/wiki/%E5%8A%9F%E8%83%BD%E4%BD%BF%E7%94%A8#%E5%8A%9F%E8%83%BD%E7%82%B9%E5%88%97%E4%B8%BE)
|
||||||
|
|
||||||
@@ -245,7 +249,8 @@ python3 main.py
|
|||||||
- [dominoar/QCP-NovelAi](https://github.com/dominoar/QCP-NovelAi) - NovelAI 故事叙述与绘画
|
- [dominoar/QCP-NovelAi](https://github.com/dominoar/QCP-NovelAi) - NovelAI 故事叙述与绘画
|
||||||
- [oliverkirk-sudo/chat_voice](https://github.com/oliverkirk-sudo/chat_voice) - 文字转语音输出,使用HuggingFace上的[VITS-Umamusume-voice-synthesizer模型](https://huggingface.co/spaces/Plachta/VITS-Umamusume-voice-synthesizer)
|
- [oliverkirk-sudo/chat_voice](https://github.com/oliverkirk-sudo/chat_voice) - 文字转语音输出,使用HuggingFace上的[VITS-Umamusume-voice-synthesizer模型](https://huggingface.co/spaces/Plachta/VITS-Umamusume-voice-synthesizer)
|
||||||
- [RockChinQ/WaitYiYan](https://github.com/RockChinQ/WaitYiYan) - 实时获取百度`文心一言`等待列表人数
|
- [RockChinQ/WaitYiYan](https://github.com/RockChinQ/WaitYiYan) - 实时获取百度`文心一言`等待列表人数
|
||||||
- [QChartGPT_Emoticon_Plugin](https://github.com/chordfish-k/QChartGPT_Emoticon_Plugin) - 使机器人根据回复内容发送表情包
|
- [chordfish-k/QChartGPT_Emoticon_Plugin](https://github.com/chordfish-k/QChartGPT_Emoticon_Plugin) - 使机器人根据回复内容发送表情包
|
||||||
|
- [oliverkirk-sudo/ChatPoeBot](https://github.com/oliverkirk-sudo/ChatPoeBot) - 接入[Poe](https://poe.com/)上的机器人
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## 😘致谢
|
## 😘致谢
|
||||||
|
|||||||
@@ -33,9 +33,9 @@ mirai_http_api_config = {
|
|||||||
# },
|
# },
|
||||||
# "http_proxy": "http://127.0.0.1:12345"
|
# "http_proxy": "http://127.0.0.1:12345"
|
||||||
# }
|
# }
|
||||||
#
|
#
|
||||||
# 现已支持反向代理,可以添加reverse_proxy字段以使用反向代理
|
# 现已支持反向代理,可以添加reverse_proxy字段以使用反向代理
|
||||||
# 使用反向代理可以在国内使用OpenAI的API,反向代理的配置请参考
|
# 使用反向代理可以在国内使用OpenAI的API,反向代理的配置请参考
|
||||||
# https://github.com/Ice-Hazymoon/openai-scf-proxy
|
# https://github.com/Ice-Hazymoon/openai-scf-proxy
|
||||||
#
|
#
|
||||||
# 反向代理填写示例:
|
# 反向代理填写示例:
|
||||||
@@ -63,7 +63,7 @@ admin_qq = 0
|
|||||||
# 情景预设(机器人人格)
|
# 情景预设(机器人人格)
|
||||||
# 每个会话的预设信息,影响所有会话,无视指令重置
|
# 每个会话的预设信息,影响所有会话,无视指令重置
|
||||||
# 可以通过这个字段指定某些情况的回复,可直接用自然语言描述指令
|
# 可以通过这个字段指定某些情况的回复,可直接用自然语言描述指令
|
||||||
# 例如:
|
# 例如:
|
||||||
# default_prompt = "如果我之后想获取帮助,请你说“输入!help获取帮助”"
|
# default_prompt = "如果我之后想获取帮助,请你说“输入!help获取帮助”"
|
||||||
# 这样用户在不知所措的时候机器人就会提示其输入!help获取帮助
|
# 这样用户在不知所措的时候机器人就会提示其输入!help获取帮助
|
||||||
# 可参考 https://github.com/PlexPt/awesome-chatgpt-prompts-zh
|
# 可参考 https://github.com/PlexPt/awesome-chatgpt-prompts-zh
|
||||||
@@ -81,14 +81,14 @@ admin_qq = 0
|
|||||||
# 例如:
|
# 例如:
|
||||||
# !reset linux-terminal
|
# !reset linux-terminal
|
||||||
# 若不指定名称,则使用默认情景预设
|
# 若不指定名称,则使用默认情景预设
|
||||||
#
|
#
|
||||||
# 也可以使用指令:
|
# 也可以使用指令:
|
||||||
# !default <名称>
|
# !default <名称>
|
||||||
# 将指定的情景预设设置为默认情景预设
|
# 将指定的情景预设设置为默认情景预设
|
||||||
# 例如:
|
# 例如:
|
||||||
# !default linux-terminal
|
# !default linux-terminal
|
||||||
# 之后的会话重置时若不指定名称,则使用linux-terminal情景预设
|
# 之后的会话重置时若不指定名称,则使用linux-terminal情景预设
|
||||||
#
|
#
|
||||||
# 还可以加载文件中的预设文字,使用方法请查看:https://github.com/RockChinQ/QChatGPT/wiki/%E5%8A%9F%E8%83%BD%E4%BD%BF%E7%94%A8#%E9%A2%84%E8%AE%BE%E6%96%87%E5%AD%97
|
# 还可以加载文件中的预设文字,使用方法请查看:https://github.com/RockChinQ/QChatGPT/wiki/%E5%8A%9F%E8%83%BD%E4%BD%BF%E7%94%A8#%E9%A2%84%E8%AE%BE%E6%96%87%E5%AD%97
|
||||||
default_prompt = {
|
default_prompt = {
|
||||||
"default": "如果我之后想获取帮助,请你说“输入!help获取帮助”",
|
"default": "如果我之后想获取帮助,请你说“输入!help获取帮助”",
|
||||||
@@ -160,7 +160,7 @@ prompt_submit_length = 2048
|
|||||||
# OpenAI补全API的参数
|
# OpenAI补全API的参数
|
||||||
# 请在下方填写模型,程序自动选择接口
|
# 请在下方填写模型,程序自动选择接口
|
||||||
# 现已支持的模型有:
|
# 现已支持的模型有:
|
||||||
#
|
#
|
||||||
# 'gpt-4'
|
# 'gpt-4'
|
||||||
# 'gpt-4-0314'
|
# 'gpt-4-0314'
|
||||||
# 'gpt-4-32k'
|
# 'gpt-4-32k'
|
||||||
|
|||||||
@@ -48,8 +48,8 @@ class OpenAIInteract:
|
|||||||
|
|
||||||
# 根据模型选择使用的接口
|
# 根据模型选择使用的接口
|
||||||
ai: ModelRequest = create_openai_model_request(
|
ai: ModelRequest = create_openai_model_request(
|
||||||
config.completion_api_params['model'],
|
config.completion_api_params['model'],
|
||||||
'user',
|
'user',
|
||||||
config.openai_config["http_proxy"] if "http_proxy" in config.openai_config else None
|
config.openai_config["http_proxy"] if "http_proxy" in config.openai_config else None
|
||||||
)
|
)
|
||||||
ai.request(
|
ai.request(
|
||||||
|
|||||||
@@ -315,12 +315,16 @@ def register_all():
|
|||||||
|
|
||||||
def apply_privileges():
|
def apply_privileges():
|
||||||
"""读取cmdpriv.json并应用指令权限"""
|
"""读取cmdpriv.json并应用指令权限"""
|
||||||
with open('cmdpriv.json', 'r') as f:
|
# 读取内容
|
||||||
data = json.load(f)
|
json_str = ""
|
||||||
for path, priv in data.items():
|
with open('cmdpriv.json', 'r', encoding="utf-8") as f:
|
||||||
if path == 'comment':
|
json_str = f.read()
|
||||||
continue
|
|
||||||
if __command_list__[path]['privilege'] != priv:
|
|
||||||
logging.debug('应用权限: {} -> {}(default: {})'.format(path, priv, __command_list__[path]['privilege']))
|
|
||||||
|
|
||||||
__command_list__[path]['privilege'] = priv
|
data = json.loads(json_str)
|
||||||
|
for path, priv in data.items():
|
||||||
|
if path == 'comment':
|
||||||
|
continue
|
||||||
|
if __command_list__[path]['privilege'] != priv:
|
||||||
|
logging.debug('应用权限: {} -> {}(default: {})'.format(path, priv, __command_list__[path]['privilege']))
|
||||||
|
|
||||||
|
__command_list__[path]['privilege'] = priv
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ def process_command(session_name: str, text_message: str, mgr, config,
|
|||||||
|
|
||||||
params = text_message[1:].strip().split(' ')[1:]
|
params = text_message[1:].strip().split(' ')[1:]
|
||||||
|
|
||||||
# 把!~开头的转换成!cfg
|
# 把!~开头的转换成!cfg
|
||||||
if cmd.startswith('~'):
|
if cmd.startswith('~'):
|
||||||
params = [cmd[1:]] + params
|
params = [cmd[1:]] + params
|
||||||
cmd = 'cfg'
|
cmd = 'cfg'
|
||||||
|
|||||||
@@ -50,8 +50,8 @@ class ReplyFilter:
|
|||||||
|
|
||||||
# 百度云审核URL
|
# 百度云审核URL
|
||||||
baidu_url = "https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined?access_token=" + \
|
baidu_url = "https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined?access_token=" + \
|
||||||
str(requests.post("https://aip.baidubce.com/oauth/2.0/token",
|
str(requests.post("https://aip.baidubce.com/oauth/2.0/token",
|
||||||
params={"grant_type": "client_credentials",
|
params={"grant_type": "client_credentials",
|
||||||
"client_id": self.baidu_api_key,
|
"client_id": self.baidu_api_key,
|
||||||
"client_secret": self.baidu_secret_key}).json().get("access_token"))
|
"client_secret": self.baidu_secret_key}).json().get("access_token"))
|
||||||
|
|
||||||
|
|||||||
@@ -22,10 +22,10 @@ def read_saved() -> str:
|
|||||||
# 已保存的在res/announcement_saved
|
# 已保存的在res/announcement_saved
|
||||||
# 检查是否存在
|
# 检查是否存在
|
||||||
if not os.path.exists("res/announcement_saved"):
|
if not os.path.exists("res/announcement_saved"):
|
||||||
with open("res/announcement_saved", "w") as f:
|
with open("res/announcement_saved", "w", encoding="utf-8") as f:
|
||||||
f.write("")
|
f.write("")
|
||||||
|
|
||||||
with open("res/announcement_saved", "r") as f:
|
with open("res/announcement_saved", "r", encoding="utf-8") as f:
|
||||||
content = f.read()
|
content = f.read()
|
||||||
|
|
||||||
return content
|
return content
|
||||||
@@ -33,7 +33,7 @@ def read_saved() -> str:
|
|||||||
|
|
||||||
def write_saved(content: str):
|
def write_saved(content: str):
|
||||||
# 已保存的在res/announcement_saved
|
# 已保存的在res/announcement_saved
|
||||||
with open("res/announcement_saved", "w") as f:
|
with open("res/announcement_saved", "w", encoding="utf-8") as f:
|
||||||
f.write(content)
|
f.write(content)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
|||||||
|
2023/3/31 21:35 【插件兼容性问题】若您使用了revLibs插件,并将主程序升级到了v2.3.0,请立即使用管理员账号向机器人账号发送!plugin update命令更新逆向库插件,以解决由于情景预设重构引起的兼容性问题。
|
||||||
|
|||||||
Reference in New Issue
Block a user