【.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的功能。

➡️

继续阅读