looplj/axonhub

GitHub: looplj/axonhub

一款开源 AI 网关,通过统一 API 格式实现跨厂商模型调用的零代码迁移,内置负载均衡、故障转移、成本追踪与企业级权限控制。

Stars: 2157 | Forks: 237

# AxonHub - 一站式 AI 开发平台 ### 使用任意 SDK。访问任意模型。零代码修改。 looplj%2Faxonhub | Trendshift
[![Test Status](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/afa0484a98193905.svg)](https://github.com/looplj/axonhub/actions/workflows/test.yml) [![Lint Status](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/e5c20264ee193908.svg)](https://github.com/looplj/axonhub/actions/workflows/lint.yml) [![Go Version](https://img.shields.io/github/go-mod/go-version/looplj/axonhub?logo=go&logoColor=white)](https://golang.org/) [![Docker Ready](https://img.shields.io/badge/docker-ready-2496ED?logo=docker&logoColor=white)](https://docker.com) [English](README.md) | [中文](README.zh-CN.md)
## 📖 项目介绍 ### 一站式 AI 开发平台 **AxonHub 是一个 AI 网关,让你无需修改任何代码即可在不同的模型提供商之间切换。** 无论你使用的是 OpenAI SDK、Anthropic SDK 还是任何 AI SDK,AxonHub 都能透明地将你的请求转换为适用于任何受支持的模型提供商的格式。无需重构,无需更换 SDK —— 只需更改配置即可完成。 **解决的问题:** - 🔒 **厂商锁定** - 瞬间从 GPT-4 切换到 Claude 或 Gemini - 🔧 **集成复杂性** - 统一 API 格式适配 10+ 提供商 - 📊 **可观测性缺失** - 开箱即用的完整请求追踪 - 💸 **成本控制** - 实时用量追踪与预算管理
AxonHub Architecture
### 核心特性 | 特性 | 获得的功能 | |---------|-------------| | 🔄 [**任意 SDK → 任意模型**](docs/en/api-reference/openai-api.md) | 使用 OpenAI SDK 调用 Claude,或使用 Anthropic SDK 调用 GPT。零代码修改。 | | 🔍 [**全链路请求追踪**](docs/en/guides/tracing.md) | 具备线程感知可观测性的完整请求时间线。更快调试。 | | 🔐 [**企业级 RBAC**](docs/en/guides/permissions.md) | 细粒度访问控制、用量配额和数据隔离。 | | ⚡ [**智能负载均衡**](docs/en/guides/load-balance.md) | 100ms 内自动故障转移。始终路由至最健康的通道。 | | 💰 [**实时成本追踪**](docs/en/guides/cost-tracking.md) | 单次请求成本明细。输入、输出、缓存 token —— 全程追踪。 | ## 📚 文档 如需详细的技术文档、API 参考、架构设计等内容,请访问 - [![DeepWiki](https://img.shields.io/badge/DeepWiki-looplj%2Faxonhub-blue.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAyCAYAAAAnWDnqAAAAAXNSR0IArs4c6QAAA05JREFUaEPtmUtyEzEQhtWTQyQLHNak2AB7ZnyXZMEjXMGeK/AIi+QuHrMnbChYY7MIh8g01fJoopFb0uhhEqqcbWTp06/uv1saEDv4O3n3dV60RfP947Mm9/SQc0ICFQgzfc4CYZoTPAswgSJCCUJUnAAoRHOAUOcATwbmVLWdGoH//PB8mnKqScAhsD0kYP3j/Yt5LPQe2KvcXmGvRHcDnpxfL2zOYJ1mFwrryWTz0advv1Ut4CJgf5uhDuDj5eUcAUoahrdY/56ebRWeraTjMt/00Sh3UDtjgHtQNHwcRGOC98BJEAEymycmYcWwOprTgcB6VZ5JK5TAJ+fXGLBm3FDAmn6oPPjR4rKCAoJCal2eAiQp2x0vxTPB3ALO2CRkwmDy5WohzBDwSEFKRwPbknEggCPB/imwrycgxX2NzoMCHhPkDwqYMr9tRcP5qNrMZHkVnOjRMWwLCcr8ohBVb1OMjxLwGCvjTikrsBOiA6fNyCrm8V1rP93iVPpwaE+gO0SsWmPiXB+jikdf6SizrT5qKasx5j8ABbHpFTx+vFXp9EnYQmLx02h1QTTrl6eDqxLnGjporxl3NL3agEvXdT0WmEost648sQOYAeJS9Q7bfUVoMGnjo4AZdUMQku50McDcMWcBPvr0SzbTAFDfvJqwLzgxwATnCgnp4wDl6Aa+Ax283gghmj+vj7feE2KBBRMW3FzOpLOADl0Isb5587h/U4gGvkt5v60Z1VLG8BhYjbzRwyQZemwAd6cCR5/XFWLYZRIMpX39AR0tjaGGiGzLVyhse5C9RKC6ai42ppWPKiBagOvaYk8lO7DajerabOZP46Lby5wKjw1HCRx7p9sVMOWGzb/vA1hwiWc6jm3MvQDTogQkiqIhJV0nBQBTU+3okKCFDy9WwferkHjtxib7t3xIUQtHxnIwtx4mpg26/HfwVNVDb4oI9RHmx5WGelRVlrtiw43zboCLaxv46AZeB3IlTkwouebTr1y2NjSpHz68WNFjHvupy3q8TFn3Hos2IAk4Ju5dCo8B3wP7VPr/FGaKiG+T+v+TQqIrOqMTL1VdWV1DdmcbO8KXBz6esmYWYKPwDL5b5FA1a0hwapHiom0r/cKaoqr+27/XcrS5UwSMbQAAAABJRU5ErkJggg==)](https://deepwiki.com/looplj/axonhub) - [![zread](https://img.shields.io/badge/Ask_Zread-_.svg?style=flat&color=00b0aa&labelColor=000000&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQuOTYxNTYgMS42MDAxSDIuMjQxNTZDMS44ODgxIDEuNjAwMSAxLjYwMTU2IDEuODg2NjQgMS42MDE1NiAyLjI0MDFWNC45NjAxQzEuNjAxNTYgNS4zMTM1NiAxLjg4ODEgNS42MDAxIDIuMjQxNTYgNS42MDAxSDQuOTYxNTZDNS4zMTUwMiA1LjYwMDEgNS42MDE1NiA1LjMxMzU2IDUuNjAxNTYgNC45NjAxVjIuMjQwMUM1LjYwMTU2IDEuODg2NjQgNS4zMTUwMiAxLjYwMDEgNC45NjE1NiAxLjYwMDFaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik00Ljk2MTU2IDEwLjM5OTlIMi4yNDE1NkMxLjg4ODEgMTAuMzk5OSAxLjYwMTU2IDEwLjY4NjQgMS42MDE1NiAxMS4wMzk5VjEzLjc1OTlDMS42MDE1NiAxNC4xMTM0IDEuODg4MSAxNC4zOTk5IDIuMjQxNTYgMTQuMzk5OUg0Ljk2MTU2QzUuMzE1MDIgMTQuMzk5OSA1LjYwMTU2IDE0LjExMzQgNS42MDE1NiAxMy43NTk5VjExLjAzOTlDNS42MDE1NiAxMC42ODY0IDUuMzE1MDIgMTAuMzk5OSA0Ljk2MTU2IDEwLjM5OTlaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik0xMy43NTg0IDEuNjAwMUgxMS4wMzg0QzEwLjY4NSAxLjYwMDEgMTAuMzk4NCAxLjg4NjY0IDEwLjM5ODQgMi4yNDAxVjQuOTYwMUMxMC4zOTg0IDUuMzEzNTYgMTAuNjg1IDUuNjAwMSAxMS4wMzg0IDUuNjAwMUgxMy43NTg0QzE0LjExMTkgNS42MDAxIDE0LjM5ODQgNS4zMTM1NiAxNC4zOTg0IDQuOTYwMVYyLjI0MDFDMTQuMzk4NCAxLjg4NjY0IDE0LjExMTkgMS42MDAxIDEzLjc1ODQgMS42MDAxWiIgZmlsbD0iI2ZmZiIvPgo8cGF0aCBkPSJNNCAxMkwxMiA0TDQgMTJaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik00IDEyTDEyIDQiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K&logoColor=ffffff)](https://zread.ai/looplj/axonhub) ## 🎯 演示 在我们的 [演示实例](https://axonhub.onrender.com) 体验 AxonHub! **注意**:演示实例目前配置了智谱 (Zhipu) 和 OpenRouter 的免费模型。 ### 演示账号 - **邮箱**: demo@example.com - **密码**: 12345678 ## ⭐ 特性 ### 📸 截图 以下是 AxonHub 的一些运行截图:
System Dashboard
System Dashboard
Channel Management
Channel Management
Model Price
Model Price
Models
Models
Trace Viewer
Trace Viewer
Request Monitoring
Request Monitoring
### 🚀 API 类型 | API 类型 | 状态 | 描述 | 文档 | | -------------------- | ---------- | ------------------------------ | -------------------------------------------- | | **文本生成** | ✅ 完成 | 对话接口 | [OpenAI API](docs/en/api-reference/openai-api.md), [Anthropic API](docs/en/api-reference/anthropic-api.md), [Gemini API](docs/en/api-reference/gemini-api.md) | | **图像生成** | ✅ 完成 | 图像生成 | [图像生成](docs/en/api-reference/image-generation.md) | | **重排序** | ✅ 完成 | 结果排序 | [Rerank API](docs/en/api-reference/rerank-api.md) | | **Embedding** | ✅ 完成 | 向量嵌入生成 | [Embedding API](docs/en/api-reference/embedding-api.md) | | **实时** | 📝 待办 | 实时对话能力 | - | ### 🤖 支持的提供商 | 提供商 | 状态 | 支持的模型 | 兼容的 API | | ---------------------- | ---------- | ---------------------------- | --------------- | | **OpenAI** | ✅ 完成 | GPT-4, GPT-4o, GPT-5 等 | OpenAI, Anthropic, Gemini, Embedding, 图像生成 | | **Anthropic** | ✅ 完成 | Claude 3.5, Claude 3.0 等 | OpenAI, Anthropic, Gemini | | **Zhipu AI** | ✅ 完成 | GLM-4.5, GLM-4.5-air 等 | OpenAI, Anthropic, Gemini | | **Moonshot AI (Kimi)** | ✅ 完成 | kimi-k2 等 | OpenAI, Anthropic, Gemini | | **DeepSeek** | ✅ 完成 | DeepSeek-V3.1 等 | OpenAI, Anthropic, Gemini | | **ByteDance Doubao** | ✅ 完成 | doubao-1.6 等 | OpenAI, Anthropic, Gemini, 图像生成 | | **Gemini** | ✅ 完成 | Gemini 2.5 等 | OpenAI, Anthropic, Gemini, 图像生成 | | **Jina AI** | ✅ 完成 | Embeddings, Reranker 等 | Jina Embedding, Jina Rerank | | **OpenRouter** | ✅ 完成 | 多种模型 | OpenAI, Anthropic, Gemini, 图像生成 | | **ZAI** | ✅ 完成 | - | 图像生成 | | **AWS Bedrock** | 🔄 测试中 | AWS 上的 Claude | OpenAI, Anthropic, Gemini | | **Google Cloud** | 🔄 测试中 | GCP 上的 Claude | OpenAI, Anthropic, Gemini | | **NanoGPT** | ✅ 完成 | 多种模型, 图像生成 | OpenAI, Anthropic, Gemini, 图像生成 | ## 🚀 快速开始 ### 30 秒本地启动 ``` # 下载并解压(macOS ARM64 示例) curl -sSL https://github.com/looplj/axonhub/releases/latest/download/axonhub_darwin_arm64.tar.gz | tar xz cd axonhub_* # 使用 SQLite 运行(默认) ./axonhub # 打开 http://localhost:8090 # 首次运行:按照设置向导初始化系统(创建管理员账号,密码至少 6 个字符) ``` 完成!现在配置你的第一个 AI 通道,开始通过 AxonHub 调用模型吧。 ### 零代码迁移示例 **你现有的代码无需任何更改即可运行。** 只需将你的 SDK 指向 AxonHub: ``` from openai import OpenAI client = OpenAI( base_url="http://localhost:8090/v1", # Point to AxonHub api_key="your-axonhub-api-key" # Use AxonHub API key ) # 使用 OpenAI SDK 调用 Claude! response = client.chat.completions.create( model="claude-3-5-sonnet", # Or gpt-4, gemini-pro, deepseek-chat... messages=[{"role": "user", "content": "Hello!"}] ) ``` 只需更改一行即可切换模型:`model="gpt-4"` → `model="claude-3-5-sonnet"`。无需更改 SDK。 ### 一键部署至 Render 在 [Render](https://render.com) 一键免费部署 AxonHub。
Deploy to Render
## 🚀 部署指南 ### 💻 个人电脑部署 非常适合个人开发者和小型团队。无需复杂配置。 #### 快速下载与运行 1. **下载最新版本**,来自 [GitHub Releases](https://github.com/looplj/axonhub/releases) - 选择适合你操作系统的版本: 2. **解压并运行** # 解压下载的文件 unzip axonhub_*.zip cd axonhub_* # 添加执行权限 (仅限 Linux/macOS) chmod +x axonhub # 直接运行 - 默认 SQLite 数据库 # 将 AxonHub 安装到系统 sudo ./install.sh # 启动 AxonHub 服务 ./start.sh # 停止 AxonHub 服务 ./stop.sh 3. **访问应用** http://localhost:8090 ### 🖥️ 服务器部署 适用于生产环境、高可用和企业级部署。 #### 数据库支持 AxonHub 支持多种数据库,以满足不同规模的部署需求: | 数据库 | 支持的版本 | 推荐场景 | 自动迁移 | 链接 | | -------------- | ------------------ | ------------------------------------------------ | -------------- | ----------------------------------------------------------- | | **TiDB Cloud** | Starter | Serverless, 免费套餐, 自动扩缩容 | ✅ 支持 | [TiDB Cloud](https://www.pingcap.com/tidb-cloud-starter/) | | **TiDB Cloud** | Dedicated | 分布式部署, 大规模 | ✅ 支持 | [TiDB Cloud](https://www.pingcap.com/tidb-cloud-dedicated/) | | **TiDB** | V8.0+ | 分布式部署, 大规模 | ✅ 支持 | [TiDB](https://tidb.io/) | | **Neon DB** | - | Serverless, 免费套餐, 自动扩缩容 | ✅ 支持 | [Neon DB](https://neon.com/) | | **PostgreSQL** | 15+ | 生产环境, 中大型部署 | ✅ 支持 | [PostgreSQL](https://www.postgresql.org/) | | **MySQL** | 8.0+ | 生产环境, 中大型部署 | ✅ 支持 | [MySQL](https://www.mysql.com/) | | **SQLite** | 3.0+ | 开发环境, 小型部署 | ✅ 支持 | [SQLite](https://www.sqlite.org/index.html) | #### 配置 AxonHub 使用 YAML 配置文件,并支持环境变量覆盖: ``` # config.yml server: port: 8090 name: "AxonHub" debug: false db: dialect: "tidb" dsn: ".root:@tcp(gateway01.us-west-2.prod.aws.tidbcloud.com:4000)/axonhub?tls=true&parseTime=true&multiStatements=true&charset=utf8mb4" log: level: "info" encoding: "json" ``` 环境变量: ``` AXONHUB_SERVER_PORT=8090 AXONHUB_DB_DIALECT="tidb" AXONHUB_DB_DSN=".root:@tcp(gateway01.us-west-2.prod.aws.tidbcloud.com:4000)/axonhub?tls=true&parseTime=true&multiStatements=true&charset=utf8mb4" AXONHUB_LOG_LEVEL=info ``` 有关详细的配置说明,请参阅 [配置文档](docs/en/deployment/configuration.md)。 #### Docker Compose 部署 ``` # 克隆项目 git clone https://github.com/looplj/axonhub.git cd axonhub # 设置环境变量 export AXONHUB_DB_DIALECT="tidb" export AXONHUB_DB_DSN=".root:@tcp(gateway01.us-west-2.prod.aws.tidbcloud.com:4000)/axonhub?tls=true&parseTime=true&multiStatements=true&charset=utf8mb4" # 启动服务 docker-compose up -d # 检查状态 docker-compose ps ``` #### Helm Kubernetes 部署 使用官方 Helm chart 在 Kubernetes 上部署 AxonHub: ``` # 快速安装 git clone https://github.com/looplj/axonhub.git cd axonhub helm install axonhub ./deploy/helm # 生产部署 helm install axonhub ./deploy/helm -f ./deploy/helm/values-production.yaml # 访问 AxonHub kubectl port-forward svc/axonhub 8090:8090 # 访问 http://localhost:8090 ``` **关键配置选项:** | 参数 | 描述 | 默认值 | |-----------|-------------|---------| | `axonhub.replicaCount` | 副本数 | `1` | | `axonhub.dbPassword` | 数据库密码 | `axonhub_password` | | `postgresql.enabled` | 内置 PostgreSQL | `true` | | `ingress.enabled` | 启用 ingress | `false` | | `persistence.enabled` | 数据持久化 | `false` | 有关详细的配置和故障排除,请参阅 [Helm Chart 文档](deploy/helm/README.md)。 #### 虚拟机部署 从 [GitHub Releases](https://github.com/looplj/axonhub/releases) 下载最新版本 ``` # 解压并运行 unzip axonhub_*.zip cd axonhub_* # 设置环境变量 export AXONHUB_DB_DIALECT="tidb" export AXONHUB_DB_DSN=".root:@tcp(gateway01.us-west-2.prod.aws.tidbcloud.com:4000)/axonhub?tls=true&parseTime=true&multiStatements=true&charset=utf8mb4" sudo ./install.sh # 配置文件检查 axonhub config check # 启动服务 # 为简单起见,我们建议使用辅助脚本管理 AxonHub: # 启动 ./start.sh # 停止 ./stop.sh ``` ## 📖 使用指南 ### 统一 API 概述 AxonHub 提供统一的 API 网关,同时支持 OpenAI Chat Completions 和 Anthropic Messages API。这意味着你可以: - **使用 OpenAI API 调用 Anthropic 模型** - 继续使用你的 OpenAI SDK 访问 Claude 模型 - **使用 Anthropic API 调用 OpenAI 模型** - 使用 Anthropic 的原生 API 格式调用 GPT 模型 - **使用 Gemini API 调用 OpenAI 模型** - 使用 Gemini 的原生 API 格式调用 GPT 模型 - **自动 API 转换** - AxonHub 自动处理格式转换 - **零代码修改** - 你现有的 OpenAI 或 Anthropic 客户端代码可以继续使用 ### 1. 初始设置 1. **访问管理界面** http://localhost:8090 2. **配置 AI 提供商** - 在管理界面中添加 API Key - 测试连接以确保配置正确 3. **创建用户和角色** - 设置权限管理 - 分配适当的访问权限 ### 2. 通道配置 在管理界面中配置 AI 提供商通道。有关通道配置的详细信息,包括模型映射、参数覆盖和故障排除,请参阅 [通道配置指南](docs/en/guides/channel-management.md)。 ### 3. 模型管理 AxonHub 提供了灵活的模型管理系统,支持通过模型关联将抽象模型映射到具体的通道和模型实现。这实现了: - **统一模型接口** - 使用抽象模型 ID(如 `gpt-4`, `claude-3-opus`)代替特定通道的名称 - **智能通道选择** - 根据关联规则和负载均衡自动将请求路由到最佳通道 - **灵活的映射策略** - 支持精确的通道-模型匹配、正则表达式模式和基于标签的选择 - **基于优先级的故障转移** - 配置具有优先级的多个关联,以实现自动故障转移 有关模型管理的全面信息,包括关联类型、配置示例和最佳实践,请参阅 [模型管理指南](docs/en/guides/model-management.md)。 ### 4. 创建 API Key 创建 API Key 以验证你的应用程序与 AxonHub 的连接。每个 API Key 都可以配置多个 Profile,定义以下内容: - **模型映射** - 使用精确匹配或正则表达式模式将用户请求的模型转换为实际可用的模型 - **通道限制** - 通过通道 ID 或标签限制 API Key 可以使用的通道 - **模型访问控制** - 控制通过特定 Profile 可以访问哪些模型 - **Profile 切** - 通过激活不同的 Profile 即时更改行为 有关 API Key Profile 的详细信息,包括配置示例、验证规则和最佳实践,请参阅 [API Key Profile 指南](docs/en/guides/api-key-profiles.md)。 ### 5. AI 编码工具集成 请参阅专门的指南,了解详细的设置步骤、故障排除以及将这些工具与 AxonHub 模型 Profile 结合使用的技巧: - [OpenCode 集成指南](docs/en/guides/opencode-integration.md) - [Claude Code 集成指南](docs/en/guides/claude-code-integration.md) - [Codex 集成指南](docs/en/guides/codex-integration.md) ### 6. SDK 使用 有关详细的 SDK 使用示例和代码示例,请参阅 API 文档: - [OpenAI API](docs/en/api-reference/openai-api.md) - [Anthropic API](docs/en/api-reference/anthropic-api.md) - [Gemini API](docs/en/api-reference/gemini-api.md) ## 🛠️ 开发指南 有关详细的开发说明、架构设计和贡献指南,请参阅 [docs/en/development/development.md](docs/en/development/development.md)。 ## 🤝 致谢 - 🙏 [musistudio/llms](https://github.com/musistudio/llms) - LLM 转换框架,灵感来源 - 🎨 [satnaing/shadcn-admin](https://github.com/satnaing/shadcn-admin) - 管理界面模板 - 🔧 [99designs/gqlgen](https://github.com/99designs/gqlgen) - GraphQL 代码生成 - 🌐 [gin-gonic/gin](https://github.com/gin-gonic/gin) - HTTP 框架 - 🗄️ [ent/ent](https://github.com/ent/ent) - ORM 框架 - 🔧 [air-verse/air](https://github.com/air-verse/air) - Go 服务自动重载 - ☁️ [Render](https://render.com) - 免费云部署平台,用于托管我们的演示 - 🗃️ [TiDB Cloud](https://www.pingcap.com/tidb-cloud/) - Serverless 数据库平台,用于演示部署 ## 📄 许可证 本项目采用多重许可(Apache-2.0 和 LGPL-3.0)。有关详细的许可概述和条款,请参阅 [LICENSE](LICENSE) 文件。
**AxonHub** - 一站式 AI 开发平台,让 AI 开发更简单 [🏠 主页](https://github.com/looplj/axonhub) • [📚 文档](https://deepwiki.com/looplj/axonhub) • [🐛 问题反馈](https://github.com/looplj/axonhub/issues) 由 AxonHub 团队用 ❤️ 构建
标签:AI Gateway, AI 开发平台, Anthropic, API 代理, API 管理, API集成, CIS基准, Claude, CVE检测, Docker, EVTX分析, EVTX分析, Gemini, Go, GPT-4, IP 地址批量处理, LLM, OpenAI API, Ruby工具, SDK 兼容, Unmanaged PE, Vendor Lock-in, 中间件, 供应商切换, 可观测性, 大模型网关, 子域名突变, 安全防御评估, 开源, 成本控制, 故障转移, 日志审计, 模型路由, 测试用例, 端到端追踪, 统一接口, 请求拦截, 负载均衡