跳到主要内容

许可证管理

许可证管理概述

LLM Gateway 内置了完整的许可证管理系统,用于控制系统的使用权限和功能访问。系统支持自动试用、付费许可证验证和到期后的高级功能限制机制。

许可证管理概览

许可证类型

LLM Gateway 支持多种许可证类型,满足不同使用场景的需求:

📅
试用许可证
  • 自动创建:首次启动时自动生成
  • 有效期:30天免费试用
  • 功能:完整功能,无限制
  • 到期处理:禁用高级功能,基础功能继续可用
💳
付费许可证
  • 人工激活:使用许可证密钥激活
  • 有效期:根据购买期限(1年/多年)
  • 功能:完整功能,生产级支持
  • 续费提醒:到期前自动提醒
永久许可证
  • 永不过期:特殊的永久使用许可
  • 企业版:适合大型企业客户
  • 功能:所有高级功能
  • 支持:优先技术支持
⚠️
功能限制模式
  • 自动触发:许可证过期时自动启用
  • 功能限制:仅禁用高级功能
  • 基础可用:管理和API继续正常
  • 恢复:更新有效许可证后自动恢复

许可证到期后的功能限制

功能限制详情

当许可证过期时:

✅ 继续可用的功能
  • 所有管理操作:可以添加/修改/删除渠道、用户、令牌等
  • LLM API调用:基础的模型调用继续正常工作
  • 查看所有信息:日志、统计、监控等页面正常访问
  • 用户认证:登录、注销、密码修改等功能正常
  • 配置修改:系统设置、参数调整等操作正常
❌ 被禁用的高级功能
  • 智能路由:不再自动选择最优渠道(成本/性能/负载优化)
  • 语义缓存:不再缓存相似请求的响应
  • 限流控制:不再执行API请求速率限制
  • 提示词防火墙:不再检测和过滤危险内容

功能降级对比

功能有效许可证过期后
渠道管理✅ 完整功能✅ 完整功能
用户管理✅ 完整功能✅ 完整功能
令牌管理✅ 完整功能✅ 完整功能
LLM API调用✅ 完整功能✅ 基础路由
智能路由✅ 可用❌ 禁用
语义缓存✅ 可用❌ 禁用
限流控制✅ 可用❌ 禁用
提示词防火墙✅ 可用❌ 禁用
提示

过期后系统会自动回退到基础路由模式,使用加权随机选择或优先级策略,确保LLM API调用不会中断。

许可证状态管理

查看许可证状态

在管理后台查看当前许可证的详细状态:

许可证状态页面
1
访问许可证管理
在管理后台导航到 "管理功能" → "许可证管理"
2
查看许可证详情
页面显示当前许可证的完整信息,包括类型、有效期、状态等
3
查看缓存信息
显示许可证缓存状态,包括缓存年龄、下次刷新时间等(24小时缓存TTL)

许可证状态指示器

许可证正常

  • 许可证在有效期内
  • 所有功能正常可用
  • 系统运行正常

系统启动时的许可证处理

LLM Gateway 在启动时会自动进行许可证检查和初始化:

[2025-11-04 10:00:00] initializing license system...
[2025-11-04 10:00:00] no license found, creating 30-day trial license
[2025-11-04 10:00:00] ✓ Trial license created successfully. Expires at: 2025-12-04 10:00:00
[2025-11-04 10:00:00] ℹ️ Trial license active. Days remaining: 30
[2025-11-04 10:00:00] 🚀 LLM Gateway started successfully on port 3000

许可证更新

更新付费许可证

通过 API 或管理界面更新新的许可证密钥:

许可证更新界面
1
获取许可证密钥
从 LLM Gateway 官方渠道购买并获取许可证密钥
2
登录管理后台
使用 root 权限账户登录管理后台
3
更新许可证
在许可证管理页面输入新的许可证密钥
4
验证更新结果
系统自动验证许可证,更新成功后显示新的有效期,并自动恢复所有高级功能
信息

只有具有 root 权限的用户才能更新许可证。普通用户仅能查看许可证状态。

通过 API 更新许可证

# 更新许可证密钥
curl -X PUT http://localhost:3000/api/license/ \
-H "Authorization: Bearer ROOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"key": "LIC-v1-XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX"
}'

API 接口

许可证管理 API

LLM Gateway 提供完整的许可证管理 API:

curl -X GET http://localhost:3000/api/license/status \
-H "Authorization: Bearer YOUR_TOKEN"

响应包含缓存信息:

{
"success": true,
"data": {
"is_valid": false,
"is_expired": true,
"is_trial": true,
"days_remaining": -5,
"expires_at": "2025-10-30T10:00:00Z",
"is_read_only": false,
"advanced_features_only": true,
"message": "Trial license expired 5 days ago. Advanced features disabled."
},
"cache_info": {
"cache_ttl_hours": 24,
"cache_age_seconds": 3600,
"cache_age_hours": 1,
"time_until_refresh": "23h0m0s",
"next_refresh_time": "2025-11-05 23:00:00",
"last_refresh_time": "2025-11-04 23:00:00",
"is_cache_valid": true,
"cache_initialized": true
}
}

权限验证

不同角色用户对许可证管理 API 的访问权限:

API 端点普通用户管理员Root用户
GET /api/license/status
GET /api/license/
PUT /api/license/
POST /api/license/refresh
信息

只有 root 权限用户可以查看和修改许可证详情。这是为了确保许可证管理的安全性。

许可证缓存机制

缓存优化详情

为了提升性能,许可证状态使用24小时缓存机制:

性能提升
  • 数据库查询减少99.9%+
  • 响应时间提升100倍
  • CPU使用率显著降低
  • 支持高并发场景
🔄
自动刷新
  • 每24小时自动刷新
  • 许可证更新时立即刷新
  • 支持手动强制刷新
  • 透明的缓存管理
📊
缓存监控
  • 缓存年龄显示
  • 下次刷新时间
  • 缓存有效性状态
  • 完整的缓存信息

缓存失效场景

缓存会在以下情况下自动更新:

  1. 24小时自然过期
  2. 许可证更新 (UpdateLicense())
  3. 许可证停用 (DeactivateLicense())
  4. 手动刷新 (RefreshLicenseStatus())
  5. 系统重启

许可证生成工具

内置许可证生成工具

LLM Gateway 提供了独立的许可证生成工具,位于 tools/license-generator/

cd tools/license-generator
go run main.go -days 30

详情请参见 tools/license-generator/README.md

常见问题

许可证过期后能否继续使用LLM API?

可以。许可证过期后,LLM API调用继续正常工作,使用基础路由策略。只有高级功能(智能路由、语义缓存、限流、防火墙)会被禁用。

许可证过期后能否管理渠道和用户?

可以。所有管理功能(渠道、用户、令牌管理等)完全不受影响,可以正常使用。

哪些功能会在许可证过期后被禁用?

只有以下高级功能会被禁用:

  • 智能路由(自动选择最优渠道)
  • 语义缓存(响应缓存)
  • 限流控制(API速率限制)
  • 提示词防火墙(内容安全检查)

其他所有功能继续正常工作。

如何确认许可证缓存是否正常工作?

查看 /api/license/status 响应中的 cache_info 字段:

  • is_cache_valid: 缓存是否有效
  • cache_age_hours: 缓存年龄
  • next_refresh_time: 下次刷新时间
多节点部署时缓存如何同步?

每个节点独立缓存,可能有最多24小时的数据不一致。许可证更新后,建议调用每个节点的 /api/license/refresh 接口强制刷新缓存。

提示

建议在生产环境中设置许可证监控告警,确保在许可证到期前及时续费,避免高级功能中断。

信息

许可证过期后,系统会自动使用fallback路由机制(加权随机或优先级选择),确保LLM API调用不会中断。

相关文档