one-api icon indicating copy to clipboard operation
one-api copied to clipboard

请求增加 Together AI 渠道

Open axdlee opened this issue 2 years ago • 5 comments

例行检查

  • [ ] 我已确认目前没有类似 issue
  • [ ] 我已确认我已升级到最新版本
  • [ ] 我已完整查看过项目 README,已确定现有版本无法满足需求
  • [ ] 我理解并愿意跟进此 issue,协助测试和提供反馈
  • [ ] 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 issue 可能会被无视或直接关闭

功能描述

应用场景

axdlee avatar Apr 11 '24 07:04 axdlee

这个我看了是兼容的,直接用 OpenAI 渠道,改掉 base url 即可

songquanpeng avatar Apr 21 '24 10:04 songquanpeng

有点问题,虽然 Together AI 看起来兼容 OpenAI,但它的官方接口最后一个结束的 finish_reason 是 eos,而不是标准的 stop,这可能会导致在一些第三方应用中数据解析报错。

这是我在 Easydict 中的测试:

[BaseOpenAIService ● 89 ● ❌] translate(:from:to:completion:) ● 自定义 OpenAI 翻译-(Qwen/Qwen1.5-14B-Chat) error: 未能读取数据,因为它的格式不正确。 [BaseOpenAIService ● 90 ● ❌] translate(:from:to:completion:) ● dataCorrupted(Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "choices", intValue: nil), _JSONKey(stringValue: "Index 0", intValue: 0), CodingKeys(stringValue: "finish_reason", intValue: nil)], debugDescription: "Cannot initialize FinishReason from invalid String value eos", underlyingError: nil))

image image

tisfeng avatar Apr 27 '24 03:04 tisfeng

可以考虑单独加个 Together AI 渠道,处理一下 eos 问题。

如果认为 finish_reason 应严格遵守 OpenAI 接口,那直接修改默认 OpenAI 渠道的 finish_reason 字段也行,看如何考虑了。

tisfeng avatar Apr 27 '24 03:04 tisfeng

这个是 Together AI 接口问题,我已经向官方反馈过了,但不清楚是 feature 还是 bug,也不确定他们是否会注意到或者修复。

one-api 作为一个优秀的聚合中转服务,我觉得我们还是应该处理一下,增加容错。

tisfeng avatar Apr 27 '24 05:04 tisfeng

看了一下,新加的 Together AI 似乎没有额外处理 finish_reason 为 eos 问题 https://github.com/songquanpeng/one-api/commit/71f4403fd51d0a83cb6e8fb792fcaee562173199

tisfeng avatar May 13 '24 03:05 tisfeng