【.Net/C#之ChatGPT开发系列】四、ChatGPT多KEY动态轮询,自动删除无效KEY
💡
原文中文,约10700字,阅读约需26分钟。
📝
内容提要
本文介绍了实现ChatGPT的多KEY轮询和自动删除无效KEY的方法,使用Redis存储和管理多个KEY,实现初始化、获取、移除密钥的功能。通过非依赖注入实现多KEY轮询,手动创建IOpenAIService服务实例并使用随机密钥进行授权。通过依赖注入实现多KEY轮换,创建自定义的DelegatingHandler拦截请求并切换密钥。使用账单查询API和账单明细查询API判断KEY是否有效,并定时过滤无效KEY。
🎯
关键要点
-
ChatGPT基于Token数量计费,每个账号有初始配额,使用多KEY管理。
-
使用Redis存储和管理多个KEY,提供初始化、获取、移除密钥的功能。
-
定义IChatGPTKeyService接口,包含初始化、随机获取、获取所有和移除密钥的方法。
-
实现ChatGPTKeyService服务,使用StackExchange.Redis库与Redis数据库交互。
-
通过非依赖注入方式实现多KEY轮询,手动创建IOpenAIService实例。
-
使用依赖注入方式实现多KEY轮换,创建自定义DelegatingHandler拦截请求并切换密钥。
-
使用账单查询API和账单明细查询API判断KEY是否有效,定时过滤无效KEY。
-
创建ChatGPT账单查询服务,提供查询账单和账单明细的方法。
-
使用BackgroundService实现自动过滤无效KEY的后台任务。
-
注册账单服务和后台任务,完成多KEY动态轮询和自动删除无效KEY的功能。
➡️