shuakami / amyalmond_bot

👋 QQ机器人,AmyAlmond 是一个基于 Chatgpt 的智能聊天机器人,专为 QQ 群聊设计,支持多语言、上下文感知、长期记忆管理和高级自动化任务。
18 stars 2 forks source link

[BUG] 可能存在的api请求问题 #24

Open xiaoyueyoqwq opened 1 month ago

xiaoyueyoqwq commented 1 month ago

日志详细看图,我现在暂时拿不到电脑,只能拿手机ssh凑合着看一下了

Screenshot_20240827-132116.png

之前我貌似反馈过这个问题,不过这个问题之前只在部分HappyApi提供商的部分模型API中出现,所以也就没怎么注意,这次HappyAPI不知道是不是更新了什么新请求格式之类的,在早上有一次服务中断,我反馈之后他们也修复了中断问题(500 Server error),但是自从修复之后我这里就无法正常进行对话了,我也联系过HappyAPI那边的客服,他检查之后告诉我API没问题,建议我检查一下代码请求方式,如果方便的话您可以看看具体是什么情况(模型是Meta-Llama-3.1-8B-Instruct)

github-actions[bot] commented 1 month ago

@shuakami 您好,关于API请求的问题,用户在使用HappyApi时遇到了一些困难。由于目前用户无法使用电脑,可能需要您帮忙检查一下请求方式和相关代码。感谢您的支持!

shuakami commented 1 month ago

Image Image Image

您好,初步原因是因为第三方提供商提供的该模型延时较高,导致机器人请求超时。 稍后将会专门对此模型的超时时间单独定制,也推荐您更换更加稳定的模型或服务提供商使用~

<3

xiaoyueyoqwq commented 1 month ago

Image Image Image

您好,初步原因是因为第三方提供商提供的该模型延时较高,导致机器人请求超时。 稍后将会专门对此模型的超时时间单独定制,也推荐您更换更加稳定的模型或服务提供商使用~

<3

了解,感谢帮助

shuakami commented 1 month ago

您好。最新开发版更新 Version: 1.2.0 (Pre_827001)已推送

xiaoyueyoqwq commented 1 month ago

您好。最新开发版更新 Version: 1.2.0 (Pre_827001)已推送

嗨,我刚才测试了一下并且收到了503错误,请问这是api问题吗 image

shuakami commented 1 month ago

Image

您好,应该是api的问题。您可以更换服务提供商再试

xiaoyueyoqwq commented 1 month ago

Image

您好,似乎是api的问题。您可以更换服务提供商再试

嗨,再次打扰,我感觉可能是本次更新代码存在问题,我更换了很多api之后还是会出现回答异常的情况,要不您再看看?感谢您的耐心帮助

Screenshot_20240827-163331.png

Screenshot_20240827-163415.png

shuakami commented 1 month ago

首先,我很抱歉给您带来非常不好的体验。

我接下来会查看一下代码中是否有导致对话异常的问题。

shuakami commented 1 month ago

您好。我这边也成功复现了此问题。再次为代码中有错误给您带来不好的体验道歉。

稍后将会修复后再次推送

shuakami commented 1 month ago

您好。最新代码已修复,您可以尝试更新一下 <3

Image

再次为代码中有错误给您带来不好的体验道歉。

xiaoyueyoqwq commented 1 month ago

您好。最新代码已修复,您可以尝试更新一下 <3

Image

再次为代码中有错误给您带来不好的体验道歉。

没事,稍候我会同步更新 辛苦咯 :P

xiaoyueyoqwq commented 1 month ago

您好。最新代码已修复,您可以尝试更新一下 <3

Image

再次为代码中有错误给您带来不好的体验道歉。

反馈:问题已经解决,但部分情况下依旧会出现超时的情况,我切换了好几个gpt模型都会出现这种情况,目前所测试的部分免费gpt模型也会出现这个情况,我觉得我们还是可以继续放宽一下Timeout阈值 完整日志:https://paste.ubuntu.com/p/7dQTv2nhdr/

附录:Meta-Llama-3.1-8B-Instruct模型api依旧会出现503报错,我和api提供商都测试过一遍没有发现是api的问题,如果您有空的话可以看看,不过无所谓了我已经切换到gpt-4o-mini了🤗 日志:https://paste.ubuntu.com/p/g9d5pVHd3K/

shuakami commented 1 month ago

反馈:问题已经解决,但部分情况下依旧会出现超时的情况...

您好,将在正式版上线前做出最后调整,Timeout阈值将会由您的配置文件调整,且调整默认为7s。

附录:Meta-Llama-3.1-8B-Instruct模型api依旧会出现503报错......

您好,我这边也是503。


最新的是,Happyapi似乎在默认用户分组中删除了该模型

Image


但Meta-Llama-3.1-70B-Instruct正常:

Image

并且我检查了我们的Python请求脚本,没有任何问题。

api返回的请求格式是这样的:

{
    "id": "chatcmpl-8Tos2WZQfPdBaccpgMkasGxtQfJtq",
    "object": "chat.completion",
    "created": 1724756933,
    "model": "Meta-Llama-3.1-70B-Instruct",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "作为大型语言模型,我没有记忆。每次对话对我来说都是全新的开始。如果你想让我记住你说过的话,请告诉我,我会尽力配合。  \n"
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 63,
        "completion_tokens": 124,
        "total_tokens": 187
    },
    "system_fingerprint": null
}

这与我们Python代码中预期的响应结构完全一致。我们的代码逻辑也是支持捕获这种格式的:

reply = response_data['choices'][0]['message']['content'] if 'choices' in response_data and \
                                                                response_data['choices'][0]['message'][
                                                                    'content'] else None

如果是代码问题,您应该会看到KeyError这样的错误抛出

xiaoyueyoqwq commented 1 month ago

反馈:问题已经解决,但部分情况下依旧会出现超时的情况...

您好,将在正式版上线前做出最后调整,Timeout阈值将会由您的配置文件调整,且调整默认为7s。

附录:Meta-Llama-3.1-8B-Instruct模型api依旧会出现503报错......

您好,我这边也是503。


最新的是,Happyapi似乎在默认用户分组中删除了该模型

Image


但Meta-Llama-3.1-70B-Instruct正常:

Image

并且我检查了我们的Python请求脚本,没有任何问题。

api返回的请求格式是这样的:

{
    "id": "chatcmpl-8Tos2WZQfPdBaccpgMkasGxtQfJtq",
    "object": "chat.completion",
    "created": 1724756933,
    "model": "Meta-Llama-3.1-70B-Instruct",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "作为大型语言模型,我没有记忆。每次对话对我来说都是全新的开始。如果你想让我记住你说过的话,请告诉我,我会尽力配合。  \n"
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 63,
        "completion_tokens": 124,
        "total_tokens": 187
    },
    "system_fingerprint": null
}

这与我们Python代码中预期的响应结构完全一致。我们的代码逻辑也是支持捕获这种格式的:

reply = response_data['choices'][0]['message']['content'] if 'choices' in response_data and \
                                                                response_data['choices'][0]['message'][
                                                                    'content'] else None

如果是代码问题,您应该会看到KeyError这样的错误抛出

了解,感谢回复 辛苦了!