Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ octopus Public
forked from bestruirui/octopus

为个人打造的 LLM API 聚合服务 | 支持多渠道负载均衡、OpenAI/Anthropic 协议互转、Token 消耗与费用统计

License

Notifications You must be signed in to change notification settings

luow-y/octopus

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Octopus Logo

Octopus

为个人打造的简单、美观、优雅的 LLM API 聚合与负载均衡服务


✨ 特性

  • 🔀 多渠道聚合 - 支持接入多个 LLM 供应商渠道,统一管理
  • ⚖️ 智能负载均衡 - 自动分配请求,确保服务稳定高效
  • 🔄 协议互转 - 支持 OpenAI Chat / OpenAI Responses / Anthropic 三种 API 格式互相转换
  • 📊 数据统计 - 全面的请求统计、Token 消耗、费用追踪
  • 🎨 优雅界面 - 简洁美观的 Web 管理面板

🚀 快速开始

🐳 Docker 运行

docker run -d --name octopus -v /path/to/data:/app/data -p 8080:8080 bestrui/octopus

📦 从 Release 下载

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 模型数据库,提供模型价格数据

About

为个人打造的 LLM API 聚合服务 | 支持多渠道负载均衡、OpenAI/Anthropic 协议互转、Token 消耗与费用统计

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 51.9%
  • Go 41.6%
  • Shell 3.2%
  • CSS 1.3%
  • Python 1.1%
  • JavaScript 0.9%