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

目前key池是随机取的,有一个建议 #16

Open
ffinly opened this issue Jun 10, 2023 · 8 comments
Open

目前key池是随机取的,有一个建议 #16

ffinly opened this issue Jun 10, 2023 · 8 comments

Comments

@ffinly
Copy link

ffinly commented Jun 10, 2023

目前用pandora项目可以实现将chat接口转api接口。这样的话,就可以实现Plus用户调用免费的gpt4.0
建议keys表里面加一个账户的选项:
openai-plus
这样轮询的时候优选去调用这个 key,如果返回429再轮询其它的key
同时建议每个key可以有自己的endpoint(可放在user表的endpoint字段,如果有配置,就调用这个endpoint)

这样的话,就可以实现如下好处:

  1. 优选调用plus的4.0api(chat转)
  2. 如有配置普通用户,可以免费使用3.5 turbo api(fakeopen做了回落机制,如果不是plus用户,调用gpt4模型也是能调用3.5正常返回结果的).
  3. 可以再另外配置api key(不管是官方的还是第三方的,最好开个gpt4的开关,做一下跟上面一样的4.0回落至3.5,作为兜底方案,可以有独立的endpoint),相当于一个兜底方案
  4. 如果遇到429超时报错,就尝试下一个key,直至成功为止(上面有api兜底方案,肯定是并发没问题的)
  5. 综合起来看的话效果和成本上最优,同时有并发优势

opencat是非常优秀的产品,但是本开源项目更优秀。如果以上想法能够实现,这将是一个非常强大的key池工具,毕竟还有原生app。
不过目前来来,chat转api的4.0计费也是有问题的(官方docker无法统计completion,本项目无法统计prompt及completion消费)。

附OpenAI账户将Chat接口转API使用方法:
免费用户可免费使用3.5 Turbo API(8k模型)
Plus用户可免费使用3.5 Turbo API 及 4.0 API(gpt-4 3小时25次,上限200次/天,gpt-4-mobile,上限600次/天)

  1. 获取accessToken
    方法一(推荐):(账户和密码登录)https://ai.fakeopen.com/auth1 (第三方登录)https://ai.fakeopen.com/auth
    方法二(官网):先官网( https://chat.openai.com )登录,再访问这里( http://chat.openai.com/api/auth/session )将accessToken的值取出
    方法三:不管你用什么方法,拿到accessToken都可以

  2. 创建Share Token
    https://ai.fakeopen.com/token
    取一个独一无二的名字(unique name),有效期与accessToken时间一致(过期秒数填写0),限制使用网站留空,生成一个fk-开头的Share Token。
    同一用户同一unique name续期fk不变(fk根据user_id和unique name来生成)。
    备注:接口限流20次/天

  3. 使用Share Token
    使用生成的Share Token(fk-开头,相当于OpenAI的API Key),在其它支持OpenAI API的程序中调用(需要将 api.openai.com 替换为 ai.fakeopen.com ),请求和返回参数完全兼容。ChatGPT同时只有1条会话的限制也是存在的。
    模型映射如下(左侧为API请求时用的模型,右侧为官方chat的模型):
    gpt-3.5-turbo --> text-davinci-002-render-sha
    gpt-3.5-turbo-0301 --> text-davinci-002-render-sha
    gpt-4 --> gpt-4-mobile
    gpt-4-0314 --> gpt-4-mobile
    gpt-4-32k --> gpt-4-plugins
    gpt-4-32k-0314 --> gpt-4-plugins
    备注:映射后3.5模型和4.0-32k模型上下文长度均为8K,4.0模型上下文为4K;接口限流5次/10s

  4. 新推出Share Token池服务:https://ai.fakeopen.com/pool ,多账号来解决并发问题,接口限流20次/30s。
    这里还有个自动生成的脚本:https://gist.github.com/pengzhile/448bfcfd548b3ae4e665a84cc86c4694

@Sakurasan
Copy link
Member

很棒的建议,后续更新会参考,感谢❤️

@ffinly
Copy link
Author

ffinly commented Jun 12, 2023

目前我已经在改相关的代码了,号池的问题我已经解决了,有比较好的方案,但是目前429后重试选Key还有些小问题,主要是不会GO和Web开发,哈哈,如果能改好的话,我就提交下PR。

@ffinly
Copy link
Author

ffinly commented Jun 12, 2023

很棒的建议,后续更新会参考,感谢❤️

image
接口限流将更新为 20次/40s(原来是5次/10s)
Pandora作者,已经在做基于key池的并发了。我感觉我们不用再重复造这个轮子了。

接下来等他做完后效果怎么样,我有跟他提Plus会员优选的方案,并且他也会做。那这样我提的这些问题,就都可以用pandora项目来解决。解决不了的,再用本项目来实现就好了。

@ffinly
Copy link
Author

ffinly commented Jun 12, 2023

很棒的建议,后续更新会参考,感谢❤️

image 接口限流将更新为 20次/30s(原来是5次/10s) Pandora作者,已经在做基于key池的并发了。我感觉我们不用再重复造这个轮子了。

接下来等他做完后效果怎么样,我有跟他提Plus会员优选的方案,并且他也会做。那这样我提的这些问题,就都可以用pandora项目来解决。解决不了的,再用本项目来实现就好了。

太快了,人家已经做完了,我体验了,效果非常好,解决了多号并发的问题:
新推出Share Token池服务:https://ai.fakeopen.com/pool ,多账号来解决并发问题。(接口限流20次/40s,请不要用于任何商业用途)
这里还有个自动生成的脚本:https://gist.github.com/pengzhile/448bfcfd548b3ae4e665a84cc86c4694
@Sakurasan

@ffinly
Copy link
Author

ffinly commented Jun 12, 2023

/接下来,就是我说的,API调用的时候优先调用的问题。
针对这种chat转的plus会员 api 优先调用(只要Plus账户空闲就调用Plus,如果Plus全部429再调用普通账户),实现低成本 gpt4,同时也能处理突发的并发性(在有些时候,其实大家不是太能分辨得出来是4.0还是3.5)

还有一个思路就是如果有Plus用户的池子:
1.先调用 GPT-4(3小时25时,超出会报错)
2.用完了再调用GPT-4 Mobile(每天600次,超出会报错)
3.再用完了就调用 GPT-3.5 Turbo(不限次数)

还有就是每个key可以独立用自己的endpoint地址(如果没有配置的话,统一走环境变量的那个),这样的话,fakeopen和第三方api(官方的api是没问题的,fakeopen也能代理sk,并且无频率限制)可以混用。

如果这两点能一起实现,就是非常优秀的API池解决方案了

@ffinly
Copy link
Author

ffinly commented Jun 12, 2023

image 这两天本项目涨了不少Star,我在几个群里面都说了opencat这个方案来做号池(主要是pandora群、钉钉chatgpt群)。 希望过两天能上Trending,同时也希望更多的人来提好的建议或者维护这个项目。

@Sakurasan
Copy link
Member

目前精力是先完成后台管理,后续对其他接口的支持(eg:claude..)还有接口支持的模型的问题,具体实现还在构思中

@ffinly
Copy link
Author

ffinly commented Jun 13, 2023

目前精力是先完成后台管理,后续对其他接口的支持(eg:claude..)还有接口支持的模型的问题,具体实现还在构思中

已完成号池优选功能并提交PR:
#18

还有一个思路就是如果有Plus用户的池子:
1.先调用 GPT-4(3小时25时,超出会报错)
2.用完了再调用GPT-4 Mobile(每天600次,超出会报错)
3.再用完了就调用 GPT-3.5 Turbo(不限次数)
还有就是每个key可以独立用自己的endpoint地址(如果没有配置的话,统一走环境变量的那个),这样的话,fakeopen和第三方api(官方的api是没问题的,fakeopen也能代理sk,并且无频率限制)可以混用。

这个后续如果有精力也可以做。
这样的话,就可以最大限度使用Plus账户。

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