tisfeng/Easydict

🐞 反馈问题:自定义服务添加千问模型无法翻译

Closed this issue · 10 comments

请先确认以下事项:

  • 请务必查看 常见问题
  • 已仔细阅读了 README
  • issues 页面搜索过问题(包括已关闭的 issue),但未能找到解决方法
  • Easydict 已升级到 最新版本
  • 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 issue 可能会被无视或直接关闭

问题描述

自定义模型那边已经设置好了,验证也通过。
设置如下:

但是在翻译时,窗口内是空白的
CleanShot 2024-05-12 at 12 17 11@2x

该问题是否可以稳定重现?

可重现

重现步骤

翻译时窗口内是空白

截图

CleanShot 2024-05-12 at 12 17 11@2x
CleanShot 2024-05-12 at 12 18 35@2x

期望结果

期待解决

解决方案(可选)

No response

设备型号 && 系统版本

Apple M2 Pro macOS14.4.1

是否愿意提交 PR 解决该问题?

  • 我愿意提交 PR

Hello AnaheimEX, Thank you for your first issue contribution 🎉

感谢反馈,这个现象看起来有点像 #538 (comment)
@Anaheim 如果可以的话你可以 build dev 分支然后看看这个问题是否还存在吗?

不不,你这个用法不对,目前 Easydict 只支持符合标准 OpenAI 接口 格式的服务,而阿里的 dashscope 接口并不兼容 OpenAI,你仔细看看。

一般来说,如果某个服务支持标准的 OpenAI 接口,它一般会在显著的地方表明这一点,因为这是一个很大优势,能够兼容众多 OpenAI 第三方服务,例如 DeepSeek零一万物 等。如果它没有写,一般就是不兼容。

标准的 OpenAI 请求格式如下,其中 URL 和 API_KEY 替换为响应的值。

curl $URL \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $API_KEY" \
  -d '{
    "model": "No models available",
    "messages": [
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "Hello!"
      }
    ]
  }'

对于一些不兼容 OpenAI 接口的服务,可通过 one-api 等第三方开源项目,将其转换为标准的 OpenAI 接口格式,这样就能在 Easydict 中使用了。

对于一些不兼容 OpenAI 接口的服务,可通过 one-api 等第三方开源项目,将其转换为标准的 OpenAI 接口格式,这样就能在 Easydict 中使用了。

感谢大大回复,关于兼容的问题,我在阿里的文档上看到有提。

为支持广大开发者使用熟悉的OpenAI接口来访问DashScope上的API服务,DashScope提供了与OpenAI兼容的接口。用户只需要配置DashScope的API key以及服务endpoint,即可通过OpenAI API以及SDK来访问DashScope上托管的模型服务。

是不是直接在OpenAI服务下填写阿里的OpenAI兼容接口的API地址和阿里模型的key就可以吧?

看了一下文档,阿里前两天也做了 OpenAI 接口兼容,这是好事。(不兼容 OpenAI 格式的 LLM 服务都是异端 🙄)

但感觉他们很仓促,明显没有经过足够测试,没有严格遵守 标准 OpenAI 接口

stream 接口的 finish_reason 字段返回数据格式不对,要么应该是 stop 或 length 等枚举,要么是 null,不应该是字符串 "null",这可能会导致解析错误。

data:{"choices":[{"delta":{"content":"我是","role":"assistant"},"finish_reason":"null","index":0,"logprobs":null}],"object":"chat.completion.chunk","created":1715562574,"system_fingerprint":"","model":"qwen-turbo","id":"chatcmpl-a1e2281f5d759fecb1557c266a62b843"}

image

目前阿里的接口直接在 Easydict 中使用,会出现格式解析错误,建议向阿里那边多多反馈,给他们上点压力。

建议大家部署 one-api ,一劳永逸。

如果 one-api 出现问题,对于开源项目,可以去提 issue 反馈,有能力还可以自己去修复顺便 PR,对于这种大厂黑盒服务,先不说他们会不会接受反馈,即使接受,修复可能也不会那么及时,一套流程走下来等几个月也是常规操作 🫠

image

目前阿里的接口直接在 Easydict 中使用,会出现格式解析错误,建议向阿里那边多多反馈,给他们上点压力。

建议大家部署 one-api ,一劳永逸。

如果 one-api 出现问题,对于开源项目,可以去提 issue 反馈,有能力还可以自己去修复顺便 PR,对于这种大厂黑盒服务,先不说他们会不会接受反馈,即使接受,修复可能也不会那么及时,一套流程走下来等几个月也是常规操作 🫠

image

感谢测试,我昨天找了一家第三方卖API的用他们的API地址然后填写我在阿里申请的key,正常用上了23333 不过为了用OpenAI Claude3之类的我也要买第三方的API。。。

其实大部份这种第三方 LLM 服务都是用 one-api 搭建的,我自己也搭了一个, Easydict 内置 AI 翻译支持各种模型,就是这样实现的。