# lanapi **Repository Path**: lilozhao/lanapi ## Basic Information - **Project Name**: lanapi - **Description**: 若兰最初提出来有关LLM的API网关OpenAI/Anthropic 兼容的大模型 API 网关,目前由明德维护 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-07 - **Last Updated**: 2026-06-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LanAPI 🌸 > OpenAI/Anthropic 兼容的大模型 API 网关 > 由 **明德 🎋** 维护,后端接入 **百度千帆 Coding Plan** --- ## 📡 快速开始 ### 在线服务地址 ``` https://csbc.lilozkzy.top:3110 ``` ### 调测示例 ```bash curl -X POST https://csbc.lilozkzy.top:3110/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-pro-xxxxxxxx" \ -d '{ "model": "qianfan-glm5", "messages": [ {"role": "user", "content": "你好"} ] }' ``` ### 本地部署 ```bash cd lanapi npm install node src/server.js ``` --- ## 🌸 名字由来 **LanAPI** 有双重含义: - **Lan** = 兰,温婉优雅 - **Lan** = Local Area Network,内网服务 --- ## 🎯 功能特性 | 特性 | 版本 | 说明 | |------|------|------| | **OpenAI 兼容** | ✅ v1.0 | `POST /v1/chat/completions` | | **Anthropic 兼容** | ✅ v1.2 | `POST /v1/messages` | | **API Key 认证** | ✅ v1.0 | 用户认证 | | **用量统计** | ✅ v1.1 | `GET /v1/usage` | | **限流保护** | ✅ v1.1 | RPM/RPD 限制 | | **API Key 生成器** | ✅ v1.1 | `scripts/generate-key.js` | | **Web 管理界面** | ✅ v1.3 | 可视化管理 | | **多模型负载均衡** | ✅ v1.4 | 5 种策略 | --- ## 📦 版本历史 ### v1.4.1 (2026-06-07) — 明德接管 🎋 - 🔄 后端替换:从自部署 `localhost:3100`(若兰)→ **百度千帆 Coding Plan**(`glm-5`) - 🔒 安全加固: - 管理员密钥从固定值 `lanapi-admin` 改为随机 48 位密钥 - API 密钥从 `config.json` 移入 `data/apikeys.json`,避免误提交 - 添加 `.gitignore` 排除 `node_modules/`、日志、运行时文件 - 🩹 健康检查修复: - 外部 HTTPS 服务改为 TCP 连通性检测,不再依赖 `/health` 端点 - 🩹 推理模型兼容: - 支持 GLM-5 等模型的 `reasoning_content` 字段 - 避免因 `content` 为空导致的「LLM 返回格式异常」报错 - 🐛 版本号修正:`v1.3.0` → `v1.4.0` - 📦 独立仓库:`https://gitee.com/lilozhao/lanapi.git` ### v1.4.0 (2026-04-26) — 若兰开发 - ✨ 增强版多模型负载均衡 - 5 种调度策略:priority / round-robin / weighted / least-conn / response-time - 自动健康检查(可配置间隔) - 实时连接数统计与平均延迟追踪 - 动态策略切换 API ### v1.3.0 (2026-04-26) - ✨ Web 管理界面(可视化的用量统计、用户管理、API Key 创建) - ✨ 支付系统(价格查询、订单创建、管理员激活、自动生成 API Key) ### v1.2.0 (2026-04-26) - ✨ Anthropic 兼容 API(`POST /v1/messages`) ### v1.1.0 (2026-04-26) - ✨ 用量统计系统(按日期记录、持久化、查询接口) - ✨ 限流保护系统(多等级限流:free/pro/enterprise) - ✨ API Key 生成器(`scripts/generate-key.js`) ### v1.0.0 (2026-04-26) - ✨ OpenAI 兼容 API、API Key 认证、基础服务框架 --- ## ⚙️ 配置说明 ### 基础配置 (`config/config.json`) ```json { "name": "LanAPI - 明德托管版", "port": 3110, "adminKey": "<随机48位密钥>", "systemPrompt": "你是若兰...", "llm": { "host": "qianfan.baidubce.com", "port": "443", "path": "/v2/coding/chat/completions", "model": "glm-5", "apiKey": "<千帆API Key>" }, "loadBalance": { "strategy": "weighted", "healthCheckInterval": 60000 }, "models": { "qianfan-glm5": { "host": "qianfan.baidubce.com", "port": "443", "path": "/v2/coding/chat/completions", "model": "glm-5", "priority": 1, "weight": 3, "enabled": true, "apiKey": "<千帆API Key>" } }, "apiKeys": {} } ``` > ⚠️ `apiKeys` 请放置在 `data/apikeys.json` 中,不要写在 `config.json` 里(后者会被提交到 Git)。 ### API Key 文件 (`data/apikeys.json`) ```json { "sk-pro-xxxxxxxx": { "name": "测试用户", "tier": "pro", "dailyLimit": 1000 } } ``` --- ## 📡 API 参考 ### OpenAI 兼容 ``` POST /v1/chat/completions ``` | 参数 | 类型 | 说明 | |------|------|------| | `model` | string | 模型名(当前仅支持 `qianfan-glm5`) | | `messages` | array | 对话消息列表 | | `stream` | boolean | 是否流式 | | `max_tokens` | number | 最大 token 数 | | `temperature` | number | 温度参数 | ### Anthropic 兼容 ``` POST /v1/messages ``` ### 管理接口 | 端点 | 方法 | 说明 | 认证 | |------|------|------|------| | `/admin/models` | GET | 模型状态+统计 | `adminKey` | | `/admin/loadbalance` | POST | 切换负载均衡策略 | `adminKey` | | `/admin/healthcheck` | POST | 手动触发健康检查 | `adminKey` | | `/admin/models/:name/weight` | POST | 调整模型权重 | `adminKey` | ### 其他 | 端点 | 方法 | 说明 | |------|------|------| | `/health` | GET | 服务健康检查 | | `/v1/usage` | GET | 用量统计(需 API Key 认证) | --- ## 📊 架构 ``` ┌─────────────────────────────────────┐ │ 客户端 │ │ ┌────────┐ ┌────────┐ ┌────────┐ │ │ │OpenClaw│ │LangChain│ │ 任意 │ │ │ │ Agent │ │Python │ │curl │ │ │ └───┬────┘ └───┬────┘ └───┬────┘ │ │ └──────────┼──────────┘ │ │ ▼ │ │ ┌──────────────────┐ │ │ │ LanAPI 🌸 :3110 │ │ │ │ ─ 认证 / 限流 │ │ │ │ ─ 统计 / 转发 │ │ │ └────────┬─────────┘ │ └───────────────┼─────────────────────┘ │ HTTPS :443 ▼ ┌──────────────────┐ │ 百度千帆 Coding │ │ Plan (GLM-5) │ └──────────────────┘ ``` --- ## 🔧 使用场景 | 场景 | 说明 | |------|------| | **API 网关** | 在自有 LLM API 前加一层认证 + 限流 + 统计 | | **OpenAI 兼容层** | 提供标准 API 端点,方便各种开发工具对接 | | **多模型统一入口** | 可在 models 配置中添加更多后端,通过负载均衡调度 | --- ## 📦 仓库 - Gitee: `https://gitee.com/lilozhao/lanapi.git` - 维护者: **明德 🎋** - 代码许可:传承仓库协议 --- _更新于 2026-06-07 🎋_