Skip to content

Commit

Permalink
Merge pull request #18 from tudou2/master
Browse files Browse the repository at this point in the history
0516 update
  • Loading branch information
congxuma committed May 16, 2023
2 parents ea2fe6c + d29fe5b commit 02cb436
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 4 deletions.
9 changes: 7 additions & 2 deletions bot/chatgpt/chat_gpt_bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ def reply(self, query, context=None):
logger.debug("[CHATGPT] session query={}".format(session.messages))

api_key = context.get("openai_api_key")

self.args['model'] = context.get('gpt_model') or "gpt-3.5-turbo"
# if context.get('stream'):
# # reply in stream
# return self.reply_text_stream(query, new_query, session_id)
Expand Down Expand Up @@ -134,12 +134,17 @@ def reply_text(self, session: ChatGPTSession, api_key=None, retry_count=0) -> di
result["content"] = "我没有收到你的消息"
if need_retry:
time.sleep(5)
elif isinstance(e, openai.error.APIError):
logger.warn("[CHATGPT] Bad Gateway: {}".format(e))
result["content"] = "请再问我一次"
if need_retry:
time.sleep(10)
elif isinstance(e, openai.error.APIConnectionError):
logger.warn("[CHATGPT] APIConnectionError: {}".format(e))
need_retry = False
result["content"] = "我连接不到你的网络"
else:
logger.warn("[CHATGPT] Exception: {}".format(e))
logger.exception("[CHATGPT] Exception: {}".format(e))
need_retry = False
self.sessions.clear_session(session.session_id)

Expand Down
1 change: 1 addition & 0 deletions channel/chat_channel.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ def _compose_context(self, ctype: ContextType, content, **kwargs):
cmsg = context["msg"]
user_data = conf().get_user_data(cmsg.from_user_id)
context["openai_api_key"] = user_data.get("openai_api_key")
context["gpt_model"] = user_data.get("gpt_model")
if context.get("isgroup", False):
group_name = cmsg.other_user_nickname
group_id = cmsg.other_user_id
Expand Down
32 changes: 32 additions & 0 deletions plugins/godcmd/godcmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,18 @@
"alias": ["reset_openai_api_key"],
"desc": "重置为默认的api_key",
},
"set_gpt_model": {
"alias": ["set_gpt_model"],
"desc": "设置你的私有模型",
},
"reset_gpt_model": {
"alias": ["reset_gpt_model"],
"desc": "重置你的私有模型",
},
"gpt_model": {
"alias": ["gpt_model"],
"desc": "查询你使用的模型",
},
"id": {
"alias": ["id", "用户"],
"desc": "获取用户id", # wechaty和wechatmp的用户id不会变化,可用于绑定管理员
Expand Down Expand Up @@ -264,6 +276,26 @@ def on_handle_context(self, e_context: EventContext):
ok, result = True, "你的OpenAI私有api_key已清除"
except Exception as e:
ok, result = False, "你没有设置私有api_key"
elif cmd == "set_gpt_model":
if len(args) == 1:
user_data = conf().get_user_data(user)
user_data["gpt_model"] = args[0]
ok, result = True, "你的GPT模型已设置为" + args[0]
else:
ok, result = False, "请提供一个GPT模型"
elif cmd == "gpt_model":
user_data = conf().get_user_data(user)
model = conf().get('model')
if 'gpt_model' in user_data:
model = user_data['gpt_model']
ok, result = True, "你的GPT模型为" + str(model)
elif cmd == "reset_gpt_model":
try:
user_data = conf().get_user_data(user)
user_data.pop("gpt_model")
ok, result = True, "你的GPT模型已重置"
except Exception as e:
ok, result = False, "你没有设置私有GPT模型"
elif cmd == "reset":
if bottype in [const.OPEN_AI, const.CHATGPT, const.CHATGPTONAZURE]:
bot.sessions.clear_session(session_id)
Expand Down
6 changes: 4 additions & 2 deletions plugins/tool/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ $tool reset: 重置工具。

### 6. news 新闻类工具集合

> news更新:0.4版本对新闻类工具做了整合,配置文件只要加入`news`一个工具名就会自动加载所有新闻类工具
#### 6.1. news-api *
###### 从全球 80,000 多个信息源中获取当前和历史新闻文章

Expand All @@ -75,7 +77,7 @@ $tool reset: 重置工具。

> 该工具需要解决browser tool 的google-chrome依赖安装
> news更新:0.4版本对news工具做了整合,只要加入news一个工具就会自动加载所有新闻类工具


### 7. bing-search *
###### bing搜索引擎,从此你不用再烦恼搜索要用哪些关键词
Expand Down Expand Up @@ -129,7 +131,7 @@ $tool reset: 重置工具。

```
注:config.json文件非必须,未创建仍可使用本tool;带*工具需在kwargs填入对应api-key键值对
- `tools`:本插件初始化时加载的工具, 上述标题即是对应工具名称,带*工具必须在kwargs中配置相应api-key
- `tools`:本插件初始化时加载的工具, 上述一级标题即是对应工具名称,带*工具必须在kwargs中配置相应api-key
- `kwargs`:工具执行时的配置,一般在这里存放**api-key**,或环境配置
- `debug`: 输出chatgpt-tool-hub额外信息用于调试
- `request_timeout`: 访问openai接口的超时时间,默认与wechat-on-chatgpt配置一致,可单独配置
Expand Down

0 comments on commit 02cb436

Please sign in to comment.