zhayujie / chatgpt-on-wechat

基于大模型搭建的聊天机器人,同时支持 微信公众号、企业微信应用、飞书、钉钉 等接入,可选择GPT3.5/GPT-4o/GPT-o1/ Claude/文心一言/讯飞星火/通义千问/ Gemini/GLM-4/Claude/Kimi/LinkAI,能处理文本、语音和图片,访问操作系统和互联网,支持基于自有知识库进行定制企业智能客服。
https://docs.link-ai.tech/cow
MIT License
30.31k stars 7.97k forks source link

部署了 azure,配置 azure 相关参数后,提示 endpoint 或 key 有误 #1285

Open alisx opened 1 year ago

alisx commented 1 year ago

前置确认

⚠️ 搜索issues中是否已存在类似问题

操作系统类型?

Linux

运行的python版本是?

python 3.10

使用的chatgpt-on-wechat版本是?

Master (branch)

运行的channel类型是?

wx(个人微信, itchat)

复现步骤 🕹

  1. 部署了 azure openai service,从 配置中获得:endpoint,key,部署名,模型名:gpt-35-turbo-16k
  2. 在 config.json 中,配置了
    • open_ai_api_key 值为 key
    • open_ai_api_base 值为 endpoint
    • model 值为 部署名
    • azure_deployment_id 值为 部署名
    • use_azure_chatgpt 值为 true

      我不能区分config.json 配置中的 modeluse_azure_chatgpt,在 azure 中,他们的值是否相同?

  3. 在本地启动程序 python app.py, 成功后扫描二维码登录
  4. 在微信聊天中输入机器人前缀,以及问题
  5. 获得的反馈是 [ERROR] 我现在有点类了,等会再来吧

问题描述 😯

我做了单步调试,发现在 :

  1. chatgpt-on-wechat/bot/chatgpt/chat_gpt_bot.py 109行,reply_text 方法中,参数 api_key为空
  2. 122 行,self.args 中, open_ai_api_key 也是空的

经过查找,暂时没有找到如何让 self.args 获得 config.json 配置中的 open_ai_api_key 的位置。

终端日志 📒

下面是错误栈信息:

[ERROR][2023-07-02 11:23:02][chat_gpt_bot.py:154] - [CHATGPT] Exception: Access denied due to invalid subscription key or wrong API endpoint. Make sure to provide a valid key for an active subscription and use a correct regional API endpoint for your resource. Traceback (most recent call last): File "/home/alisx/Project/python/chatbot/chatgpt-on-wechat/bot/chatgpt/chat_gpt_bot.py", line 123, in reply_text response = openai.ChatCompletion.create(api_key=api_key, messages=session.messages, *args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/alisx/miniconda3/envs/ChatBot/lib/python3.11/site-packages/openai/api_resources/chat_completion.py", line 25, in create return super().create(args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/alisx/miniconda3/envs/ChatBot/lib/python3.11/site-packages/openai/api_resources/abstract/engine_apiresource.py", line 153, in create response, , api_key = requestor.request( ^^^^^^^^^^^^^^^^^^ File "/home/alisx/miniconda3/envs/ChatBot/lib/python3.11/site-packages/openai/api_requestor.py", line 298, in request resp, got_stream = self._interpret_response(result, stream) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/alisx/miniconda3/envs/ChatBot/lib/python3.11/site-packages/openai/api_requestor.py", line 700, in _interpret_response self._interpret_response_line( File "/home/alisx/miniconda3/envs/ChatBot/lib/python3.11/site-packages/openai/api_requestor.py", line 763, in _interpret_response_line raise self.handle_error_response( openai.error.AuthenticationError: Access denied due to invalid subscription key or wrong API endpoint. Make sure to provide a valid key for an active subscription and use a correct regional API endpoint for your resource.

alisx commented 1 year ago

问题发现了,原因是我在调试过程中,在chatGPT bot 里写死了 key,导致后面配置的新key 如法生效。 关闭问题。