🐞 反馈问题:Azure OpenAI 翻译不可用
Be1ch opened this issue · comments
请先确认以下事项:
- 请务必查看 常见问题
- 已仔细阅读了 README
- 在 issues 页面搜索过问题(包括已关闭的 issue),但未能找到解决方法
- Easydict 已升级到 最新版本
- 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 issue 可能会被无视或直接关闭
问题描述
从v2.6.1升级v2.7.1以后,open AI翻译不可用(配置无误且验证成功),具体表现见录屏。尝试过重装应用、重启应用、重启系统,始终重现。
该问题是否可以稳定重现?
可重现
重现步骤
打开悬浮窗口,输入任意文字并回车
截图
operation.mp4
configuration.mp4
期望结果
OpenAI section显示翻译结果
解决方案(可选)
No response
设备型号 && 系统版本
Apple M1 Pro, macOS 14.4.1
是否愿意提交 PR 解决该问题?
- 我愿意提交 PR
Hello leenux9527, Thank you for your first issue contribution 🎉
原因可能是 UI 问题, 升级新版本之后 OpenAI 的翻译显示卡顿明显, 我的要等很久才能完全显示
感谢二位反馈,我这边用同样的配置和模型,Easydict v2.7.1 无法复现
@Be1ch 你的模型显示 gpt-35-turbo-16k,我这边是 gpt-3.5-..... 才可以,不知道可不可能是这个问题
这里代码有点问题,因此服务验证成功,不一定代表配置正确,它只是表示请求没报错,但返回内容可能为空,就像你视频中显示的那样。这个问题稍后我们会尝试修复一下。
你先使用 curl 或 postman 等工具发请求试试,确认你这个 OpenAI 服务模型配置是否正确,能否获取到 stream 结果。
13-inch, 2020, Four Thunderbolt 3 ports
2 GHz 四核Intel Core i5
macOS 14.4.1 (23E224)
使用 2.6.1 和 2.7.1 差别还是挺大的, 感觉 2.7.1 能让电脑都卡顿; 当我输入这些文字的时候, 开启的是 2.7.1 比较卡, 退出之后输入文字就不卡了; 两个版本效果看视频
2.6.1 效果
https://github.com/tisfeng/Easydict/assets/9958811/d275a41a-f0e6-4d3d-a062-79cc684fba9e
2.7.1 效果
https://github.com/tisfeng/Easydict/assets/9958811/06db5807-4806-4d06-8d92-7202fa9afd5d
使用 2.6.1 和 2.7.1 差别还是挺大的, 感觉 2.7.1 能让电脑都卡顿; 当我输入这些文字的时候, 开启的是 2.7.1 比较卡, 退出之后输入文字就不卡了; 两个版本效果看视频
这个确实挺明显的
CC @wangbiye 可以麻烦你新开一个 issue 吗?这个看起来和这个 issue 不是一个问题
这里代码有点问题,因此服务验证成功,不一定代表配置正确,它只是表示请求没报错,但返回内容可能为空,就像你视频中显示的那样。这个问题稍后我们会尝试修复一下。
你先使用 curl 或 postman 等工具发请求试试,确认你这个 OpenAI 服务模型配置是否正确,能否获取到 stream 结果。
你这个是 Azure OpenAI 接口? 它的格式似乎有点不一样,不确定是不是数据解析有问题 😓
你把这个 curl 完整请求邮箱发给我 tisfeng@gmail.com ,我本地测一下。
这里代码有点问题,因此服务验证成功,不一定代表配置正确,它只是表示请求没报错,但返回内容可能为空,就像你视频中显示的那样。这个问题稍后我们会尝试修复一下。
你先使用 curl 或 postman 等工具发请求试试,确认你这个 OpenAI 服务模型配置是否正确,能否获取到 stream 结果。你这个是 Azure OpenAI 接口? 它的格式似乎有点不一样,不确定是不是数据解析有问题 😓
你把这个 curl 完整请求邮箱发给我 tisfeng@gmail.com ,我本地测一下。
@tisfeng 没错,确实是Azure OpenAI 接口,请求内容已发送,请查收
目前代码中 OpenAI stream 数据解析使用了一个第三方库,它的解析比较严格,一些不规范的 OpenAI 数据格式可能无法处理 😑
如果有用户遇到这种情况,请将 Easydict 中 OpenAI 服务的配置截图使用邮件发给我,或者完整的 curl 请求也行,总之要能让我在本地运行调试这个接口。
(为安全起见,可以生成一个临时的 key,待我调试完就销毁)
Important
注意,这里的完整接口地址应该是 https://api.openai.com/v1/chat/completions 类似格式,而不是 https://api.openai.com
如果你只填写了 https://api.openai.com ,就会出现验证成功,但接口返回没有数据问题 😑
2.7.2 版本已发布,优化了 OpenAI 服务验证逻辑,确保如果验证成功,则一定有翻译结果。
如果是假验证成功问题,那应该已经解决了。
如果没有后续反馈,稍后我会关闭 issue。
更新到2.7.2后,API验证提示验证失败 💔
💥 失败: Incorrect Content-Type: application/json, acceptable type is text/event-stream. This may be caused by a wrong endpoint: https://azureoai-aegis-1.openai.azure.com/openai/deployments/GPT35-Turbo-16K/chat/completions?api-version=2023-07-01-preview
然而当我将版本回退至2.6.1(配置不变,没做任何修改),则一切正常——验证成功,且OpenAI翻译正常输出😂
看起来 Azure OpenAI 接口确实比较怪,前面提到返回内容为空,说明数据格式一开始解析就报错了。
2.7.2 版本验证失败,Azure 返回的 Content-Type 居然是 application/json,正常应该是 text/event-stream 😑
我建议你用 one-api 套一层,Azure 妖蛾子太多了。
看起来 Azure OpenAI 接口确实比较怪,前面提到返回内容为空,说明数据格式一开始解析就报错了。
2.7.2 版本验证失败,Azure 返回的 Content-Type 居然是 application/json,正常应该是 text/event-stream 😑
我建议你用 one-api 套一层,Azure 妖蛾子太多了。
既然需要用到one-api,那又是另一个话题了,这个issue还是先关了吧。过一阵子我再试试,暂时用2.6.1版本养老😂
稍后我们优化一下代码,尝试兼容来 Azure OpenAI 吧 😥
稍后我们优化一下代码,尝试兼容来 Azure OpenAI 吧 😥
我不太明白的是,为什么同样的azure api配置,在2.6.1上是表现正常,但是在2.7.1及2.7.2就是不正常的🤔
不一样,2.6.1 版本 OpenAI 接口数据解析是我们手动用 objc 解析的,2.7.x 版本后改用了一个 Swift 第三方库来解析,它比较严格,对于不符合 OpenAI 标准接口的数据可能会报错,例如你使用的 Azure OpenAI。
不一样,2.6.1 版本 OpenAI 接口数据解析是我们手动用 objc 解析的,2.7.x 版本后改用了一个 Swift 第三方库来解析,它比较严格,对于不符合 OpenAI 标准接口的数据可能会报错,例如你使用的 Azure OpenAI。
明白了,后续辛苦你们再优化一下哈,谢谢
@lswang6 方便的话,请把 API key 和 Endpoint 邮件发我,稍后我检查一下。 tisfeng@gmail.com
ok,收到,明天我看一下。