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

调用“v1/embeddings”接口,报错:404

Open madlbx opened this issue 9 months ago • 4 comments

例行检查

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

问题描述 使用Docker部署了OneAPI,使用下方命令(“sk-xxxxxxxxxxx”为示意,测试时为有效token)测试向量模型报错:

命令:

curl --location --request POST 'http://10.10.10.42:3000/v1/embeddings' \
--header 'Authorization: Bearer sk-xxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
  "model": "mxbai-embed-large",
  "input": ["laf是什么"]
}'

命令返回:

{"error" :{"message":" (request id: 2024058311024022153831529384557)","type":"upstream_error","param":"404","code":"bad response status code"}}

docker 后台报错误如下:

[INFO] 2024/05/03 - 11:02:40 | 2024050311024022153831529384557 | user 1 has enough quota 499999999948850, trusted and no need to pre-consume 
[GIN] 2024/05/03 - 11:02:40 | 2024050311024022153831529384557 | 404 |   12.716381ms |    10.10.10.42 |    POST /v1/embeddings
[ERR] 2024/05/03 - 11:02:40 | 2024050311024022153831529384557 | relay error (channel #3):  (request id: 2024050311024022153831529384557) 

复现步骤

  • 版本:v0.6.6-alpha.14
  1. OneAPI和Ollama部署在同局域网的两台机器上
  2. OneAPI使用"自定义渠道"接入Ollama(主要是因为Ollama和OneAPI不在一台服务器上且Ollama类型渠道没有输入BaseURL的地方,所以不能使用Ollama渠道接入)
  3. Ollama pull mxbai-embed-large模型
  4. 生成OneAPI的令牌
  5. 配置令牌中的可用模型
  6. 配置模型倍率
  7. 使用curl模型和生成的令牌测试向量模型
  8. 此时docker后台报错。

预期结果 期待返回向量结果(使用curl测试过ollama的API,向量化接口正常返回)

相关截图

madlbx avatar May 03 '24 11:05 madlbx

同遇到这个问题,应该是自定义渠道的问题,我的解决方法是将ollama和oneapi安装到同一台机器上(并且不能使用oneapi的镜像,必须本地部署……)。

Ollama不支持输入BaseURL这个还是比较致命的,除非Ollama和oneapi在同一台服务器(或镜像中)上才可用,同一台机器上使用docker启动也必须使用 http://host.docker.internal:11434 来配置,建议开放出来baseUrl的配置

TroiiF avatar May 05 '24 06:05 TroiiF

解决了,参考https://github.com/songquanpeng/one-api/issues/1357

TroiiF avatar May 06 '24 07:05 TroiiF

同遇到这个问题,应该是自定义渠道的问题,我的解决方法是将ollama和oneapi安装到同一台机器上(并且不能使用oneapi的镜像,必须本地部署……)。

Ollama不支持输入BaseURL这个还是比较致命的,除非Ollama和oneapi在同一台服务器(或镜像中)上才可用,同一台机器上使用docker启动也必须使用 http://host.docker.internal:11434 来配置,建议开放出来baseUrl的配置

它的问题应该是调用 ollama 的 embedding 模型吧,当前还不支持。

ollama 的 embedding 模型只支持对单个字符串,而不是列表,当前也还没有兼容 v1/embeddings 的调用。


ADD:ollama 的更新进展

https://github.com/ollama/ollama/pull/2925

RexWzh avatar May 07 '24 04:05 RexWzh

解决了,参考#1357

稍后我整整,感谢感谢

madlbx avatar May 07 '24 10:05 madlbx

还没进展吗?

Robin021 avatar Jun 21 '24 12:06 Robin021