Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

强烈希望增加实用功能,谢谢 #1347

Open
serenalee87 opened this issue Apr 22, 2024 · 7 comments
Open

强烈希望增加实用功能,谢谢 #1347

serenalee87 opened this issue Apr 22, 2024 · 7 comments
Labels
enhancement New feature or request

Comments

@serenalee87
Copy link

如果渠道多的话,要批量修改模型真的很困难,要一个一个调整,如果要是能批量选择渠道或者批量渠道修改更改模型就好了。

@serenalee87 serenalee87 added the enhancement New feature or request label Apr 22, 2024
@RexWzh
Copy link

RexWzh commented Apr 23, 2024

+1 我也想问这个问题。。。

@songquanpeng 这个功能还蛮有用,麻烦大佬留意下~ ❤️

动机场景

现在模型列表更新很快,比如

  • OpenAI 新增了 gpt-4-turbo,且每隔一段时间更新一版模型
  • Ollama 支持的模型越来越多,且和用户定制有关,用户拉取不同模型,模型列表也不同

希望支持的功能

新增导入渠道默认模型的按钮:

  1. OpenAI/vllm/chatanywhere 等渠道,能通过 v1 接口获取支持的模型列表,可以的话,加上对这个接口的调用。

  2. ollama 用了 /api/tags 接口,可以考虑将其转化:

# curl http://localhost:11434/api/tags
{
    "models": [
        {
        "name": "llama3:8b-instruct-q8_0",
        "model": "llama3:8b-instruct-q8_0",
        "modified_at": "2024-04-23T20:24:46.839698832+08:00",
        "size": 8540783746,
        "digest": "5a511385d20f9c4c0608fb157ad7a591bbc6a3958fbcceb1e3ffda50606245bf",
        "details": {
            "parent_model": "",
            "format": "gguf",
            "family": "llama",
            "families": [
            "llama"
            ],
            "parameter_size": "8B",
            "quantization_level": "Q8_0"
        }
        },
        {
        "name": "qwen:0.5b",
        "model": "qwen:0.5b",
        "modified_at": "2024-04-23T23:50:46.956194293+08:00",
        "size": 394998579,
        "digest": "b5dc5e784f2a3ee1582373093acf69a2f4e2ac1710b253a001712b86a61f88bb",
        "details": {
            "parent_model": "",
            "format": "gguf",
            "family": "qwen2",
            "families": [
            "qwen2"
            ],
            "parameter_size": "620M",
            "quantization_level": "Q4_0"
        }
        }
    ]
    }

@RexWzh
Copy link

RexWzh commented Apr 23, 2024

关联 Issue:#1304

填入相关模型 的内容可能不够及时,且 OneAPI 需要持续维护渠道的这个列表,比较不便。我的想法是,在此基础上,新增对渠道自带的接口的支持。

image

@scylamb
Copy link

scylamb commented May 8, 2024

我也有一个idea给大佬参考,比如说在前端添加/修改渠道时,自定义输入的模型时,可批量输入,比如说原本那个输入自定义模型名称的框框可以判断输入是否带逗号,,如果存在逗号则将输入进行分割批量写入模型中,如model-1,model-2,model-3
或者说api可以实现?

@RexWzh
Copy link

RexWzh commented May 8, 2024

更灵活的策略还是这里提到的,用 API 来维护渠道:

https://github.com/songquanpeng/one-api/blob/main/docs/API.md

又或者你想自定义渠道管理策略,也可以通过 API 来实现渠道的禁用与启用。

看文档,应该还没有完成,需要大家的 PR~

@fqx
Copy link

fqx commented May 14, 2024

可以维护一个在线的xml,各自部署的one-api可以定时更新或者一键手动更新,不用更新整个one-api。

@RexWzh
Copy link

RexWzh commented May 14, 2024

可以维护一个在线的xml,各自部署的one-api可以定时更新或者一键手动更新,不用更新整个one-api。

这主意不错,维护一个返回 xml 的在线接口,OneAPI 部署后,在设置里更新渠道的支持信息。
不过不支持 ollama/vllm 这类模型经常变动的渠道。


汇总下目前 Issue 里的几个建议:

方案 优点 缺点
批量写入模型,用逗号分开 model-1,model-2, 代码工作量应该较少 灵活性稍差
支持从渠道自带接口导入模型 支持 openai/litellm/ollama 等渠道 覆盖不全面
维护一个 xml 的接口 更新方便 覆盖不全面,代码工作量?
通过 API 编辑渠道 灵活性非常高 代码工作量?

个人比较支持最后一个,不知道大佬 @songquanpeng 有什么计划 ;)

@scylamb
Copy link

scylamb commented May 20, 2024

API是写好的,我抓包看了,发现可以自己写个脚本去管理,比如get获取渠道信息,然后PUT,我觉得可以在用户设置base_url和key时就多一个按钮去调用 /v1/models获取支持的model自动填入

PUT /api/channel/ HTTP/2
Host: one-api.xxxx.xyz
Authorization: 10af3a99a1dsfgdsfgdf12aecf81ea118 
Content-Length: 222
Accept: */*
Content-Type: application/json
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0

{"id":85,"type":1,"key":"sk-test","status":1,"name":"Test-API","base_url":"https://test-url","models":"gpt-3.5-turbo,Test-model","group":"default,vip,svip","model_mapping":"{\"a\":\"b\"}","groups":["default","vip","svip"]}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants