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

[Feature]: 允许为某个模型单独指定 endpoint 和 api_key #1763

Open
awwaawwa opened this issue May 7, 2024 · 6 comments
Open

[Feature]: 允许为某个模型单独指定 endpoint 和 api_key #1763

awwaawwa opened this issue May 7, 2024 · 6 comments

Comments

@awwaawwa
Copy link
Contributor

awwaawwa commented May 7, 2024

Class | 类型

程序主体

Feature Request | 功能请求

当通过 OpenAI 兼容 API 接入多个模型时,不同模型所需的 endpoint 可能不一致。当前程序只能给 OpenAI API 配置一个全局 endpoint,无法为某个模型配置对应的 endpoint 和 api_key。

@binaryYuki
Copy link
Contributor

binaryYuki commented May 7, 2024

似乎可以通过config.py中的redirect_url实现?

@awwaawwa
Copy link
Contributor Author

awwaawwa commented May 8, 2024

通过 OpenAI 兼容 API 同时接入多家不同的模型,此时原 URL 一致,目标 URL 不一致。redirect url应该无法实现吧

@binaryYuki
Copy link
Contributor

binaryYuki commented May 8, 2024

通过 OpenAI 兼容 API 同时接入多家不同的模型,此时原 URL 一致,目标 URL 不一致。redirect url应该无法实现吧

啊 我大概能明白您的意思

我原本想的是通过
https://github.com/Menghuan1918/gpt_academic/blob/37116577f865ae67594a434f86734d8277af4018/request_llms/bridge_all.py#L64-L71

但是这样子的话似乎跟 one-api 重复了

或者您觉得通过修改 bridge_all.py里面对模型的识别和对 bridge 的调用来实现如何?

@awwaawwa
Copy link
Contributor Author

awwaawwa commented May 8, 2024

通过您提出的方法确实可以解决 URL 重定向的问题,但是不能解决 API KEY 重定向。并且通过此方法解决 URL 重定向不是很灵活,除非我给每个模型都配置一个独立的endpoint

目前本程序的 API KEY 是在shared_utils/key_pattern_manager.py中根据 KEY 字符串内编码的信息和模型名称来自动选取的,但是很多时候 KEY 字符串内编码的信息不够区分这个 KEY 对应哪几个模型。同时代码中是在 bridge_chatgpt.py 这里选取的 API KEY,所以在 bridge_all.py 中修改也无法解决这个问题。

所以我希望能适当重构这块的架构,在config中给一个统一的地方来配置模型 endpointapi_key。当然还可以支持配置更多属性。

通过 OpenAI 兼容 API 同时接入多家不同的模型,此时原 URL 一致,目标 URL 不一致。redirect url 应该无法实现吧

啊 我大概能明白您的意思

我原本想的是通过 https://github.com/Menghuan1918/gpt_academic/blob/37116577f865ae67594a434f86734d8277af4018/request_llms/bridge_all.py#L64-L71

但是这样子的话似乎跟 one-api 重复了

或者您觉得通过修改 bridge_all.py 里面对模型的识别和对 bridge 的调用来实现如何?

@binaryYuki
Copy link
Contributor

通过您提出的方法确实可以解决 URL 重定向的问题,但是不能解决 API KEY 重定向。并且通过此方法解决 URL 重定向不是很灵活,除非我给每个模型都配置一个独立的endpoint

目前本程序的 API KEY 是在shared_utils/key_pattern_manager.py中根据 KEY 字符串内编码的信息和模型名称来自动选取的,但是很多时候 KEY 字符串内编码的信息不够区分这个 KEY 对应哪几个模型。同时代码中是在 bridge_chatgpt.py 这里选取的 API KEY,所以在 bridge_all.py 中修改也无法解决这个问题。

所以我希望能适当重构这块的架构,在config中给一个统一的地方来配置模型 endpointapi_key。当然还可以支持配置更多属性。

通过 OpenAI 兼容 API 同时接入多家不同的模型,此时原 URL 一致,目标 URL 不一致。redirect url 应该无法实现吧

啊 我大概能明白您的意思
我原本想的是通过 https://github.com/Menghuan1918/gpt_academic/blob/37116577f865ae67594a434f86734d8277af4018/request_llms/bridge_all.py#L64-L71
但是这样子的话似乎跟 one-api 重复了
或者您觉得通过修改 bridge_all.py 里面对模型的识别和对 bridge 的调用来实现如何?

支持 可以考虑内嵌一个内置类似“oneapi”的模块 实现对每个key的权限控制 或者类似对 key 进行类似 scope 的限制
但是预计需要改动bridge_all.py,share_utils.py 以及部分 chatbot 要做匹配?

可能需要一个新实验分支

@awwaawwa
Copy link
Contributor Author

awwaawwa commented May 8, 2024

通过您提出的方法确实可以解决 URL 重定向的问题,但是不能解决 API KEY 重定向。并且通过此方法解决 URL 重定向不是很灵活,除非我给每个模型都配置一个独立的endpoint
目前本程序的 API KEY 是在 shared_utils/key_pattern_manager.py 中根据 KEY 字符串内编码的信息和模型名称来自动选取的,但是很多时候 KEY 字符串内编码的信息不够区分这个 KEY 对应哪几个模型。同时代码中是在 bridge_chatgpt.py 这里选取的 API KEY,所以在 bridge_all.py 中修改也无法解决这个问题。
所以我希望能适当重构这块的架构,在config中给一个统一的地方来配置模型 endpointapi_key。当然还可以支持配置更多属性。

通过 OpenAI 兼容 API 同时接入多家不同的模型,此时原 URL 一致,目标 URL 不一致。redirect url 应该无法实现吧

啊 我大概能明白您的意思
我原本想的是通过 https://github.com/Menghuan1918/gpt_academic/blob/37116577f865ae67594a434f86734d8277af4018/request_llms/bridge_all.py#L64-L71
但是这样子的话似乎跟 one-api 重复了
或者您觉得通过修改 bridge_all.py 里面对模型的识别和对 bridge 的调用来实现如何?

支持 可以考虑内嵌一个内置类似“oneapi”的模块 实现对每个 key 的权限控制 或者类似对 key 进行类似 scope 的限制 但是预计需要改动 bridge_all.py,share_utils.py 以及部分 chatbot 要做匹配?

可能需要一个新实验分支

赞成

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

No branches or pull requests

2 participants