Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] new Bing 提示Authentication failed #412

Closed
d4renk opened this issue Mar 23, 2023 · 14 comments
Closed

[BUG] new Bing 提示Authentication failed #412

d4renk opened this issue Mar 23, 2023 · 14 comments
Labels
bug Something isn't working

Comments

@d4renk
Copy link

d4renk commented Mar 23, 2023

提交 issue 前,请先确认:

  • 我已看过 FAQ,此问题不在列表中
  • 我已看过其他 issue,他们不能解决我的问题
  • 我认为这不是 Mirai 或者 OpenAI 的 BUG

表现
给机器人发送消息报错

运行环境:

  • 操作系统:debian11
  • Docker: 源码运行
  • 项目版本:0a32cff7eafb473cc439036ebeb3d2ec18b57b08

复现步骤
描述你是如何触发这个 BUG 的

2023-03-23 17:57:43.488 | ERROR    | graia.ariadne.util:loguru_exc_callback:76 - Exception:
Traceback (most recent call last):

  File "/home/app/app/chatgpt-mirai-qq-bot/bot.py", line 18, in <module>
    import ariadne_bot

  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed

  File "/home/app/app/chatgpt-mirai-qq-bot/ariadne_bot.py", line 245, in <module>
    app.launch_blocking()
    │   └ <classmethod object at 0x7f20e2ea3ac0>
    └ <graia.ariadne.app.Ariadne object at 0x7f20e329e820>

  File "/home/app/.local/lib/python3.9/site-packages/graia/ariadne/app.py", line 312, in launch_blocking
    cls.launch_manager.launch_blocking(loop=cls.service.loop, stop_signal=stop_signals)
    │   │              │                    │   │       │                 └ (<Signals.SIGINT: 2>,)
    │   │              │                    │   │       └ <property object at 0x7f20e2eaa180>
    │   │              │                    │   └ <graia.ariadne.service.ElizabethService object at 0x7f20e329e850>
    │   │              │                    └ <class 'graia.ariadne.app.Ariadne'>
    │   │              └ <function Launart.launch_blocking at 0x7f20e322c4c0>
    │   └ <launart.manager.Launart object at 0x7f20e1e6eaf0>
    └ <class 'graia.ariadne.app.Ariadne'>
  File "/home/app/.local/lib/python3.9/site-packages/launart/manager.py", line 494, in launch_blocking
    loop.run_until_complete(launch_task)
    │    │                  └ <Task pending name='amnesia-launch' coro=<Launart.launch() running at /home/app/.local/lib/python3.9/site-packages/launart/ma...
    │    └ <function BaseEventLoop.run_until_complete at 0x7f20ea8cfa60>
    └ <_UnixSelectorEventLoop running=True closed=False debug=False>
  File "/usr/local/lib/python3.9/asyncio/base_events.py", line 629, in run_until_complete
    self.run_forever()
    │    └ <function BaseEventLoop.run_forever at 0x7f20ea8cf9d0>
    └ <_UnixSelectorEventLoop running=True closed=False debug=False>
  File "/usr/local/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
    self._run_once()
    │    └ <function BaseEventLoop._run_once at 0x7f20ea8d2550>
    └ <_UnixSelectorEventLoop running=True closed=False debug=False>
  File "/usr/local/lib/python3.9/asyncio/base_events.py", line 1890, in _run_once
    handle._run()
    │      └ <function Handle._run at 0x7f20ea9171f0>
    └ <Handle <TaskStepMethWrapper object at 0x7f20e0ce2cd0>()>
  File "/usr/local/lib/python3.9/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
    │    │            │    │           │    └ <member '_args' of 'Handle' objects>
    │    │            │    │           └ <Handle <TaskStepMethWrapper object at 0x7f20e0ce2cd0>()>
    │    │            │    └ <member '_callback' of 'Handle' objects>
    │    │            └ <Handle <TaskStepMethWrapper object at 0x7f20e0ce2cd0>()>
    │    └ <member '_context' of 'Handle' objects>
    └ <Handle <TaskStepMethWrapper object at 0x7f20e0ce2cd0>()>
> File "/home/app/.local/lib/python3.9/site-packages/graia/broadcast/__init__.py", line 191, in Executor
    result = await run_always_await(target_callable, **parameter_compile_result)
                   │                │                  └ {'app': <graia.ariadne.app.Ariadne object at 0x7f20e329e820>, 'target': Friend(id=***, nickname='~', remark='~'), 'sou...
                   │                └ <function friend_message_listener at 0x7f20e1e9e430>
                   └ <function run_always_await at 0x7f20e324a280>
  File "/home/app/.local/lib/python3.9/site-packages/graia/broadcast/utilles.py", line 34, in run_always_await
    obj = await obj
                └ <coroutine object friend_message_listener at 0x7f20e0c9b840>

  File "/home/app/app/chatgpt-mirai-qq-bot/ariadne_bot.py", line 87, in friend_message_listener
    await handle_message(
          └ <function handle_message at 0x7f20e32d0040>

  File "/home/app/app/chatgpt-mirai-qq-bot/universal.py", line 51, in handle_message
    conversation_handler.current_conversation = await conversation_handler.create(
    │                    │                            │                    └ <function ConversationHandler.create at 0x7f20e1f40ca0>
    │                    │                            └ <conversation.ConversationHandler object at 0x7f20e1e0e490>
    │                    └ None
    └ <conversation.ConversationHandler object at 0x7f20e1e0e490>

  File "/home/app/app/chatgpt-mirai-qq-bot/conversation.py", line 172, in create
    conversation = ConversationContext(_type, self.session_id)
                   │                   │      │    └ 'friend-***'
                   │                   │      └ <conversation.ConversationHandler object at 0x7f20e1e0e490>
                   │                   └ 'bing-c'
                   └ <class 'conversation.ConversationContext'>

  File "/home/app/app/chatgpt-mirai-qq-bot/conversation.py", line 60, in __init__
    self.adapter = BingAdapter(self.session_id, ConversationStyle.creative)
    │              │           │    │           │                 └ <ConversationStyle.creative: 'h3imaginative'>
    │              │           │    │           └ <enum 'ConversationStyle'>
    │              │           │    └ 'friend-***'
    │              │           └ <conversation.ConversationContext object at 0x7f20e0cf9370>
    │              └ <class 'adapter.ms.bing.BingAdapter'>
    └ <conversation.ConversationContext object at 0x7f20e0cf9370>

  File "/home/app/app/chatgpt-mirai-qq-bot/adapter/ms/bing.py", line 32, in __init__
    self.bot = EdgeChatbot(cookies=self.cookieData, proxy=account.proxy)
    │          │                   │    │                 │       └ 'http://127.0.0.1:7890'
    │          │                   │    │                 └ BingCookiePath(cookie_content='SRCHD=AF=NOFORM; SRCHUID=V=2&GUID=***&dmnchg=1; _UR=QS=0&TQS=0; M...
    │          │                   │    └ [{'name': 'SRCHD', 'value': 'AF=NOFORM'}, {'name': 'SRCHUID', 'value': 'V=2&GUID=***&dmnchg=1'},...
    │          │                   └ <adapter.ms.bing.BingAdapter object at 0x7f20e0cf9790>
    │          └ <class 'EdgeGPT.Chatbot'>
    └ <adapter.ms.bing.BingAdapter object at 0x7f20e0cf9790>

  File "/home/app/.local/lib/python3.9/site-packages/EdgeGPT.py", line 317, in __init__
    Conversation(self.cookiePath, self.cookies, proxy)
    │            │    │           │    │        └ 'http://127.0.0.1:7890'
    │            │    │           │    └ [{'name': 'SRCHD', 'value': 'AF=NOFORM'}, {'name': 'SRCHUID', 'value': 'V=2&GUID=***&dmnchg=1'},...
    │            │    │           └ <EdgeGPT.Chatbot object at 0x7f20e1e0e8e0>
    │            │    └ ''
    │            └ <EdgeGPT.Chatbot object at 0x7f20e1e0e8e0>
    └ <class 'EdgeGPT.Conversation'>
  File "/home/app/.local/lib/python3.9/site-packages/EdgeGPT.py", line 219, in __init__
    raise Exception("Authentication failed")

Exception: Authentication failed

预期行为
描述你认为正常情况下应该看见的情况

截图
相关日志、聊天记录的截图,没有可跳过

其他内容
此处填写其他内容,没有可跳过
new bing 账号正常

@d4renk d4renk added the bug Something isn't working label Mar 23, 2023
@d4renk
Copy link
Author

d4renk commented Mar 23, 2023

config

# 这里是 ChatGPT for QQ 的所有配置文件
# 请注意:以 "#" 开头的文本均为注释
# 不会被程序读取
# 如果你想要使用某个设置,请确保前面没有 "#" 号
[mirai]
# Mirai 相关设置

qq =  ***

manager_qq = ***

# 以下设置如果不懂 无需理会

api_key = "yirimirai" 
# mirai-http-api 中的 verifyKey
# mirai api http 反向连接模式
# 使用此模式可以将本项目与 mirai 分离在两个不同服务器部署
#reverse_ws_host = "localhost"
#reverse_ws_port = 8554
# mirai api http 正向连接模式
# 使用此模式时需注释上面的反向连接模式
http_url = "http://localhost:8080"
ws_url = "http://localhost:8080"
# ==== OpenAI 账号部分开始
[openai]
# OpenAI 相关设置
# 自 3月9日 开始,不设置此项将无法正常使用 browserless 模式下的网页版 ChatGPT
# browserless_endpoint = "https://bypass.duti.tech/"

# 你可以用多种不同的方式登录 OpenAI
# 你也可以登录很多个不同的账号(无限多个)
# 下面的例子会向你演示使用不同方式登录时
# 配置文件的写法

# 第 1 个 OpenAI 账号
# 使用 access_token 登录
# 优点:
# 1. 适用于在国内网络环境
# 2. 适用于通过 Google / 微软 注册的 OpenAI 账号
# 3. 登录过程较快
# 缺点:
# 1. 有效期为 30 天,到期后需更换
#!!!!!!!
# [[openai.accounts]]
# mode = "browserless"

# # # 你的 access_token,登录 OpenAI 后访问`https://chat.openai.com/api/auth/session`获取

# auto_remove_old_conversations = true
# paid = false
# proxy="http://127.0.0.1:7890"
# title_pattern="qq-{session_id}"
# 下面是所有的 OpenAI 账号都可以有的设置
# ========= 开始 ========

# # 如果你在国内,需要配置代理
# proxy="http://127.0.0.1:7890"

# # 使用 ChatGPT Plus(plus 用户此项设置为 true 使用 legacy 模型)
# paid = false

# 是否开启标题自动重命名
# 若为空或保持注释即不开启
# 支持的变量: {session_id} - 此对话对应的上下文 ID,若产生在好友中,则为好友 QQ 号,若产生在群聊中,则为群号
# 具体见 README 中的介绍
# title_pattern="qq-{session_id}"

# 是否自动删除旧的对话,开启后用户发送重置对话时会自动删除以前的会话内容
# auto_remove_old_conversations = true

# ===== 结束 =====

# 第 2 个 OpenAI 账号
# 使用 session_token 登录
# 此方法已很少人使用
# 优点:
# 1. 适用于通过 Google / 微软 注册的 OpenAI 账号
# 缺点:
# 1. 有效期较短,具体时间未知
# 2. 登录过程需要几秒钟时间
# [[openai.accounts]]
# mode = "browserless"

# # 你的 session_token,使用方法见 README
# session_token = "一串 ey 开头的东西"

# # 如果你在国内,需要配置代理
# proxy="http://127.0.0.1:7890"

# # 使用 ChatGPT Plus(plus 用户此项设置为 true 使用 legacy 模型)
# paid = false

# # 是否开启标题自动重命名
# title_pattern="qq-{session_id}"

# # 是否自动删除旧的对话
# auto_remove_old_conversations = true

# 第 3 个 OpenAI 账号
# 使用 邮箱+密码 登录
# 优点:
# 1. 自动刷新 access_token 和 session_token,无需人工操作
# 缺点:
# 1. 需要国外网络环境
# 2. 如果使用代理,需要确保你的代理未被 OpenAI 封禁
# [[openai.accounts]]
# mode = "browserless"

# 你的 OpenAI 邮箱
# email = "xxxx" 
# 你的 OpenAI 密码
# password = "xxx"



# 第 4 个 OpenAI 账号
# 使用 api key 登录
# 当你设置了 API Key 之后
# 你就可以使用 OpenAI 中收费的 ChatGPT API、AI 画图等功能
# 优点:
# 1. 响应快
# 缺点:
# 1. 烧钱
# [[openai.accounts]]
# # 你的 API key,可以在这里看: https://platform.openai.com/account/api-keys
# api_key="sk-***"
# # 如果你在国内,需要配置代理
# proxy="http://127.0.0.1:7890"
# paid = false


# # 是否开启标题自动重命名
# title_pattern="qq-{session_id}"

# # 是否自动删除旧的对话
# auto_remove_old_conversations = true

# === OpenAI 账号部分结束


# === Bing 设置部分开始
# 如果你没有 Bing 账号,可以直接删除这部分
[bing]

# 第 1 个 Bing 账号
# 理论上,你可以添加无限多个 Bing 账号。  
# 多账号的配置方法和 OpenAI 的一样。
[[bing.accounts]]
# 你的账号 Cookie,获取方法见 README
cookie_content = '***'
proxy= "http://127.0.0.1:7890"
#show_suggestions = false
#show_references = false
# === Bing 设置部分结束

[text_to_image]
# 文字转图片

# 是否强制开启,设置后所有的消息强制以图片发送,减小风控概率  
always = false

# 是否默认开启,设置后所有的消息默认以图片发送,减小风控概率  
default = false

# 字体大小
font_size = 30

# 图片宽度
width = 700

# 字体
font_path = "fonts/sarasa-mono-sc-regular.ttf" 

# [备用模式]起始点 X
offset_x = 50 

# [备用模式]起始点 Y
offset_y = 50 

[trigger]
# 配置机器人要如何响应,下面所有项均可选 (也就是可以直接删掉那一行)

# 全局聊天前缀,在群聊和私聊中,符合下面的前缀才会响应,可以自己增减
prefix = [ "",]

# 私聊聊天前缀,在私聊中,符合下面的前缀也会响应,可以自己增减
prefix_friend = [ "",]

# 群聊聊天前缀,在群聊中,符合下面的前缀也会响应,可以自己增减
prefix_group = [ "",]

# 直接和指定的 AI 对话(不切换AI)
# 此处的前缀是在上面的前缀之后的
# 例: 
# prefix = [ "ask" ]
# prefix_ai = { "bing-c" = ["bing"] }
# 则用户发送: ask bing 你好
# 则会直接把 “你好” 两个字发给 New Bing AI
prefix_ai = { "chatgpt-web" = ["gpt"], "bing-c" = ["bing"] }

# AI 画图的前缀
# 需要有 OpenAI 的 api_key 才能使用
prefix_image = ["画", "看"]
# 配置群里如何让机器人响应,"at" 表示需要群里 @ 机器人,"mention" 表示 @ 或者以机器人名字开头都可以,"none" 表示不需要
require_mention = "at"

# 重置会话的命令
reset_command = [ "重置会话",]

# 回滚会话的命令
rollback_command = [ "回滚会话",]

[response]
# 默认使用的 AI 类型,不填写时自动推测
# 目前支持的类型:
# chatgpt-web: 网页版 ChatGPT
# chatgpt-api: API 版 ChatGPT (GPT3.5-turbo)
# bing-c: New Bing (新必应对话风格-创造力)
# bing-p: New Bing (新必应对话风格-精确)
# bing-b: New Bing (新必应对话风格-平衡)
default_ai = "bing-c"
# 匹配指令成功但没有对话内容时发送的消息
placeholder = "您好!我是 Assistant,一个由 OpenAI 训练的大型语言模型。我不是真正的人,而是一个计算机程序,可以通过文本聊天来帮助您解决问题。如果您有任何问题,请随时告诉我,我将尽力回答。\n如果您需要重置我们的会话,请回复`重置会话`。"

# 发生错误时要发送的消息
error_format = "出现故障!如果这个问题持续出现,请和我说“重置会话” 来开启一段新的会话,或者发送 “回滚会话” 来回溯到上一条对话,你上一条说的我就当作没看见。\n{exc}"

# 发生网络错误时发送的消息,请注意可以插入 {exc} 作为异常占位符
error_network_failure = "网络故障!连接 OpenAI 服务器失败,我需要更好的网络才能服务!\n{exc}"

# OpenAI 账号登录失效时的提示
error_session_authenciate_failed = "身份验证失败!无法登录至 ChatGPT 服务器,请检查账号信息是否正确!\n{exc}"

# OpenAI 提示 Too many requests(太多请求) 时的提示
error_request_too_many = "糟糕!当前收到的请求太多了,我需要一段时间冷静冷静。你可以选择“重置会话”,或者过一会儿再来找我!\n{exc}"

# 服务器提示 Server overloaded(过载) 时的提示
error_server_overloaded = "抱歉,当前服务器压力有点大,请稍后再找我吧!"

# 是否要回复触发指令的消息
quote = true

# 发送下面那个提醒之前的等待时间
timeout = 60.0

# 超过响应时间时要发送的提醒
timeout_format = "我还在思考中,请再等一下~"
#timeout_format = none

# 重置会话时发送的消息
reset = "会话已重置。"

# 回滚成功时发送的消息
rollback_success = "已回滚至上一条对话,你刚刚发的我就忘记啦!"

# 回滚失败时发送的消息
rollback_fail = "回滚失败,没有更早的记录了!"

# 等待处理的消息的最大数量,如果要关闭此功能,设置为 0
max_queue_size = 10

# 队列满时的提示
queue_full = "抱歉!我现在要回复的人有点多,暂时没有办法接收新的消息了,请过会儿再给我发吧!"

# 新消息加入队列会发送通知的长度最小值
queued_notice_size = 3

# 新消息进入队列时,发送的通知。 queue_size 是当前排队的消息数
queued_notice = "消息已收到!当前我还有{queue_size}条消息要回复,请您稍等。"

[baiducloud]
# 是否启动百度云内容安全审核
# 注册地址: http://console.bce.baidu.com/ai/#/ai/antiporn/overview/index
check = false

# 百度云API_KEY 24位英文数字字符串
baidu_api_key = ""

# 百度云SECRET_KEY 32位的英文数字字符串
baidu_secret_key =""

# 不合规消息自定义返回
illgalmessage = "[百度云]请珍惜机器人,当前返回内容不合规"

[system]
# 是否自动同意进群邀请
accept_group_invite = true

# 是否自动同意好友请求
accept_friend_request = true

[presets]
# 切换预设的命令: 加载预设 猫娘
command = "加载预设 (\\w+)"

loaded_successful = "预设加载成功!"

[presets.keywords]
# 预设关键词 <-> 实际文件
"正常" = "presets/default.txt"
"猫娘" = "presets/catgirl.txt"

[ratelimit]
# 额度限制功能,可以在 wiki 中了解此功能的用法

# 额度使用达到此比例时进行警告
warning_rate = 0.8

# 警告消息
warning_msg = "\n\n警告:额度即将耗尽!\n目前已发送:{usage}条消息,最大限制为{limit}条消息/小时,请调整您的节奏。\n额度限制整点重置,当前服务器时间:{current_time}"

# 超额消息
exceed = "已达到额度限制,请等待下一小时继续和我对话。"

@d4renk d4renk changed the title [BUG] new Bing 报错 [BUG] new Bing Authentication failed Mar 23, 2023
@d4renk d4renk changed the title [BUG] new Bing Authentication failed [BUG] new Bing 提示Authentication failed Mar 23, 2023
@AriesOxO
Copy link

这个问题今天刚出现的,昨天还是好的,早上起来发现异常了,和你一样是这个“Authentication failed"问题

@d4renk
Copy link
Author

d4renk commented Mar 23, 2023

这个问题今天刚出现的,昨天还是好的,早上起来发现异常了,和你一样是这个“Authentication failed"问题

我其他项目中也看到了这个问题 应该是上游依赖出了问题

@Ifycyu
Copy link

Ifycyu commented Mar 23, 2023

早上我也遇到了,在bing里面加上代理就好了

@d4renk
Copy link
Author

d4renk commented Mar 23, 2023

早上我也遇到了,在bing里面加上代理就好了

加了 一样报错

@Garonix
Copy link

Garonix commented Mar 23, 2023

docker部署出现同样的错误。使用代理无效

@K2Lin-Daniel
Copy link
Contributor

Microsoft has denied all IPs from China to visit New Bing. It will need to export the proxy address as an environment variable to solve the problem

@d4renk
Copy link
Author

d4renk commented Mar 24, 2023

Microsoft has denied all IPs from China to visit New Bing. It will need to export the proxy address as an environment variable to solve the problem

我往环境变量写了代理 在浏览器中可以正常使用new bing 但在chatgpt-mirai-qq-bot中提示Authentication failed

@K2Lin-Daniel
Copy link
Contributor

Microsoft has denied all IPs from China to visit New Bing. It will need to export the proxy address as an environment variable to solve the problem

我往环境变量写了代理 在浏览器中可以正常使用new bing 但在chatgpt-mirai-qq-bot中提示Authentication failed

Maybe try update EdgeGPT package?
Its locked to ==0.0.58.2 in requirements.txt

@d4renk
Copy link
Author

d4renk commented Mar 24, 2023

Microsoft has denied all IPs from China to visit New Bing. It will need to export the proxy address as an environment variable to solve the problem

我往环境变量写了代理 在浏览器中可以正常使用new bing 但在chatgpt-mirai-qq-bot中提示Authentication failed

Maybe try update EdgeGPT package?
Its locked to ==0.0.58.2 in requirements.txt

python3.9 -m pip install EdgeGPT --upgrade -i https://pypi.python.org/pypi
EdgeGPT更新至0.1.7 报错一样

@d4renk
Copy link
Author

d4renk commented Mar 24, 2023

https://edgeservices.bing.com/edgesvc/turing/conversation/create 设置分流即可 实测 coudflare workers 反代也行

acheong08/EdgeGPT#178

@d4renk d4renk closed this as completed Mar 24, 2023
@RamSong
Copy link

RamSong commented Mar 24, 2023

我反代了https://edgeservices.bing.com/edgesvc/turing/conversation/create
但具体要在哪里更改它呢?

@d4renk
Copy link
Author

d4renk commented Mar 24, 2023

@ZS629
Copy link

ZS629 commented Apr 1, 2023

image
这个什么问题

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

7 participants