@dotlab-hq/llm-代理服务器
一个本地的 LLM API 代理服务器,其速率限制,缓存和多后端支持. 作为OpenAI兼容的API端点工作.
快速启动
1. 初始化配置
创建新 model.jsonc 配置文件 :
npx @dotlab-hq/llm-proxy init
或者跳过自动提示 :
npx @dotlab-hq/llm-proxy init --skip-prompts
2. 配置您的模型
编辑生成的 model.jsonc 并添加您的 LLM 提供者 :
{
"$schema": "https://raw.githubusercontent.com/dotlab-hq/llm-proxy/refs/heads/main/schema.json",
"state-adapter": "memory",
"models": {
"openai": [
{
"id": "primary-openai",
"name": "Primary Instance",
"models": ["gpt-3.5-turbo", "gpt-4"],
"individualLimit": true,
"baseUrl": "https://api.openai.com/v1",
"apiKey": "sk-your-api-key-here",
"rateLimit": {
"tokensPerMinute": 90000,
"requestsPerMinute": 3500,
"requestsPerDay": 200000
}
}
]
}
}
3. 启动服务器
npx @dotlab-hq/llm-proxy serve
服务器从端口开始 25789 (中文(简体) ) 默认。 如果忙, 它会自动选择下一个可用的端口 .
与 --skip-prompts,服务器立即启动,没有提示.
CLI 命令
init
初始化一个新的 model.jsonc 配置 :
npx @dotlab-hq/llm-proxy init
npx @dotlab-hq/llm-proxy init --skip-prompts
serve
启动 LLM 代理服务器 :
npx @dotlab-hq/llm-proxy serve
npx @dotlab-hq/llm-proxy serve --skip-prompts
它会做什么:
- 装入配置从
model.jsonc - 在端口25789上开始( 如果忙则自动选择下一个可用)
- 显示服务器配置细节
- 按 Ctrl+C 键停止
选项
--skip-prompts- 跳过所有交互式提示并使用默认
配置格式
JSONC(载有评论的JSON)
配置使用 约克 更好的用户体验格式 :
- ✅ 为文件保留了评论
- * 内在字段解释
- 显示示例值
- * 已记录的可选字段
动态Schema 参考
生成的 schema 引用总是指最近的版本 :
"$schema": "https://raw.githubusercontent.com/dotlab-hq/llm-proxy/refs/heads/main/schema.json"
当作为国家防范机制一揽子方案安装并在当地链接时,它提到:
"$schema": "./node_modules/@dotlab-hq/llm-proxy/schema.json"
模型配置
每个后端配置包括:
{
// Unique identifier for this backend
"id": "primary-openai",
// Display name
"name": "Primary Instance",
// Models this backend supports
"models": ["gpt-3.5-turbo", "gpt-4"],
// Track rate limits per instance
"individualLimit": true,
// API endpoint (OpenAI-compatible)
"baseUrl": "https://api.openai.com/v1",
// API authentication key
"apiKey": "sk-your-api-key-here",
// Rate limiting per backend
"rateLimit": {
"tokensPerMinute": 90000,
"requestsPerMinute": 3500,
"requestsPerDay": 200000
}
}
API 终点
获取缓存状态
curl http://localhost:25789/
获取统计
curl http://localhost:25789/stats
自动装入服务器启动时使用当前速率限制 .
OpenAI 兼容端点
POST /v1/chat/completions- 聊天结束POST /v1/completions- 文本完成情况POST /v1/embeddings- 内嵌物GET /v1/models- 列出现有模式
示例
curl -X POST http://localhost:25789/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer llm-proxy" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello!"}]
}'
发展
在开发模式中运行
bun run dev
类型检查
bun run types
运行测试
bun run testify
本地链接软件包
bun link
用于其他项目的当地登记:
bun link @dotlab-hq/llm-proxy
建立用于分发的 CLI
bun run build
创建 dist/cli.js (独立CLI可执行).
特征
✅ OpenAI 兼容 - 更换OpenAI API
✅ 多个后端 - 多个供应商的负载平衡
✅ 限制费率 - 外观符号/请求限制
✅ 缓存 - 内存或后置状态
✅ 自动挂起 - 服务器启动时加载的统计数据
✅ 模块化 CLI - 分开的命令和公用事业
✅ 动态模板 - 总是使用来自GitHub的最新计划
✅ JSONC 配置 - 提供更好的文件的评论
✅ Bun 已链接 - 地方一揽子发展支助
✅ 类型脚本 - 全类型安全
处理错误
所有错误都以 OpenAI 兼容格式返回 :
- 400个 - 无效请求(丢失模型,无效参数)
- 429个 - 超过费率限额(下个后端)
- 502 (中文(简体) ) - 所有后端都失败了
- 第503条 - 没有配置后端
堆栈痕迹被压制,只显示方便用户的信息.
CLI 架构
关于CLI结构和发展的详情,请参看: (智利语).md。 。 。 .
生产部署
1. 建立国家能力倡议
bun run build
2. 用于项目
npx @dotlab-hq/llm-proxy init
npx @dotlab-hq/llm-proxy serve
环境变量
使用 ${VAR_NAME} 在你身边 model.jsonc 参考环境变量:
{
"models": {
"openai": [
{
"apiKey": "${OPENAI_API_KEY}",
"baseUrl": "https://api.openai.com/v1",
"models": ["gpt-3.5-turbo"]
}
]
}
}
建筑
- 浩诺 - 快速而轻巧的HTTP服务器
- 佐德语Name - 类型安全配置验证
- @ clack/ 瞬间 - 美丽的互动性CLI
- 阿宝 - 快速JavaScript运行时间
- 多后端 - 供应商之间的负载平衡
- 限制费率 - Granular用途跟踪
- 缓存 - 可插接适配器(记忆/雷地斯)
许可证
麻省理工学院
由 Dotlab 总部创建