- 🔀 多渠道聚合 - 支持接入多个 LLM 供应商渠道,统一管理
- ⚖️ 智能负载均衡 - 自动分配请求,确保服务稳定高效
- 🔄 协议互转 - 支持 OpenAI Chat / OpenAI Responses / Anthropic 三种 API 格式互相转换
- 📊 数据统计 - 全面的请求统计、Token 消耗、费用追踪
- 🎨 优雅界面 - 简洁美观的 Web 管理面板
docker run -d --name octopus -v /path/to/data:/app/data -p 8080:8080 bestrui/octopus从 Releases 下载对应平台的二进制文件,然后运行:
./octopus start# 克隆项目
git clone https://github.com/bestruirui/octopus.git
# 进入目录
cd octopus
# 启动服务
go run main.go start分组用于将多个渠道聚合为一个统一的对外模型名称。
核心概念:
- 分组名称 即程序对外暴露的模型名称
- 调用 API 时,将请求中的
model参数设置为分组名称即可
负载均衡模式:
| 模式 | 说明 |
|---|---|
| 🔄 轮询 | 每次请求依次切换到下一个渠道 |
| 🎲 随机 | 每次请求随机选择一个可用渠道 |
| 🛡️ 故障转移 | 优先使用高优先级渠道,仅当其故障时才切换到低优先级渠道 |
| ⚖️ 加权分配 | 根据渠道设置的权重比例分配请求 |
💡 示例:创建分组名称为
gpt-4o,将多个供应商的 GPT-4o 渠道加入该分组,即可通过统一的model: gpt-4o访问所有渠道。
管理系统中的模型及其价格信息。
数据来源:
- 系统会定期从 models.dev 同步更新模型价格数据
- 当创建渠道时,若渠道包含的模型不在 models.dev 中,系统会自动在此页面创建该模型
- 也支持手动创建 models.dev 中已存在的模型,用于自定义价格
价格优先级:
| 优先级 | 来源 | 说明 |
|---|---|---|
| 🥇 高 | 本页面 | 用户在模型管理页面设置的价格 |
| 🥈 低 | models.dev | 自动同步的默认价格 |
💡 提示:如需覆盖某个模型的默认价格,只需在模型管理页面为其设置自定义价格即可。
系统全局配置项。
统计保存周期(分钟):
由于程序涉及大量统计项目,若每次请求都直接写入数据库会影响读写性能。因此程序采用以下策略:
- 统计数据先保存在 内存 中
- 按设定的周期 定期批量写入 数据库
⚠️ 重要提示:退出程序时,请使用正常的关闭方式(如Ctrl+C或发送SIGTERM信号),以确保内存中的统计数据能正确写入数据库。请勿使用kill -9等强制终止方式,否则可能导致统计数据丢失。
- 🙏 looplj/axonhub - 本项目的 LLM API 适配模块直接源自该仓库的实现
- 📊 sst/models.dev - AI 模型数据库,提供模型价格数据