songquanpeng / one-api

OpenAI 接口管理 & 分发系统,支持 Azure、Anthropic Claude、Google PaLM 2 & Gemini、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元,可用于二次分发管理 key,仅单可执行文件,已打包好 Docker 镜像,一键部署,开箱即用. OpenAI key management & redistribution system, using a single API for all LLMs, and features an English UI.
https://openai.justsong.cn/
MIT License
18.22k stars 4.12k forks source link

fix: ali image model cannot be found and the error with the incorrect response_format #1470

Open mlkt opened 4 months ago

mlkt commented 4 months ago

修复 #1467 https://github.com/songquanpeng/one-api/pull/1240 里提到的问题

1、发出真实请求前去除 "ali-" 的模型名称前缀; 2、ConvertImageRequest 转换请求完成后保存入上下文,用以修正返回时判断要求格式是否为 b64_json 无效的问题;

我已确认该 PR 已自测通过,相关截图如下,成功在 open-webui 里用阿里的 wanx-v1 模型生成图片并显示: image image

PS:话说我觉得 AdaptorConvertImageRequest 接口设计得有问题,为何别的方法都有 c *gin.Context 入参,就它没有?我觉得它应该也要加上

type Adaptor interface {
    Init(meta *meta.Meta)
    GetRequestURL(meta *meta.Meta) (string, error)
    SetupRequestHeader(c *gin.Context, req *http.Request, meta *meta.Meta) error
    ConvertRequest(c *gin.Context, relayMode int, request *model.GeneralOpenAIRequest) (any, error)
    ConvertImageRequest(request *model.ImageRequest) (any, error)
    DoRequest(c *gin.Context, meta *meta.Meta, requestBody io.Reader) (*http.Response, error)
    DoResponse(c *gin.Context, resp *http.Response, meta *meta.Meta) (usage *model.Usage, err *model.ErrorWithStatusCode)
    GetModelList() []string
    GetChannelName() string
}
songquanpeng commented 3 months ago

Hi,现在有一个问题是提交 PR 时用的是你的 main 分支,现在上面有其他改动,请问可以只针对 fix 单独起一个分支吗?