Rubberduck: Emulate OpenAI/Anthropic locally with caching and failure injection
9 months ago
- #LLM
- #Development
- #Proxy
- Rubberduck是一个本地LLM缓存反向代理服务器,可模拟主流LLM服务商
- 支持OpenAI、Anthropic、Azure OpenAI、AWS Bedrock和Google Vertex AI
- 功能包括缓存、故障模拟、速率限制、按用户代理实例和详细日志记录
- 与官方SDK完美兼容的请求/响应,支持透明的头部/认证透传
- 基于规范化请求体的SHA-256缓存密钥,仅缓存成功响应(2xx状态码)
- 支持按代理实例手动清除缓存,并遵循上游服务商的缓存头部
- 故障模拟包含超时、错误注入(429/500/400)、IP过滤和速率限制
- 实时请求日志记录含元数据,可导出为CSV/JSON格式,支持滚动指标聚合
- 仪表盘可查看实时系统状态、代理监控和基于令牌用量的成本追踪
- 采用类似Stripe的UI设计:简洁现代响应式,基于JWT认证
- 支持邮箱/密码+社交登录(Google/GitHub)、邮箱验证和密码重置
- 后端使用FastAPI(Python 3.11+),前端使用React+TypeScript(Node.js 18+)
- 简单安装步骤:git克隆项目、创建虚拟环境、npm安装前端依赖
- 可通过网页界面或SDK配置修改基础URL来管理代理
- 测试覆盖单元测试、集成测试和后端/前端覆盖率测试
- 开发工具包含Python的Black/isort/mypy和TypeScript的lint检查
- 基于MIT许可证开源,欢迎通过fork+功能分支+PR方式贡献代码