章节 01
导读 / 主楼:LiteGen:AI 图像与视频生成的统一网关
类似 LiteLLM 的多媒体生成代理,支持 10+ 主流提供商(DALL-E、Stability、Runway、Luma 等),提供智能路由、成本追踪、缓存和实时监控仪表板。
正文
类似 LiteLLM 的多媒体生成代理,支持 10+ 主流提供商(DALL-E、Stability、Runway、Luma 等),提供智能路由、成本追踪、缓存和实时监控仪表板。
章节 01
类似 LiteLLM 的多媒体生成代理,支持 10+ 主流提供商(DALL-E、Stability、Runway、Luma 等),提供智能路由、成本追踪、缓存和实时监控仪表板。
章节 02
章节 03
原作者与来源
/v1/images/generations)和视频生成(/v1/videos/generations)。这意味着:\n\n- 已有 OpenAI 集成的应用可以几乎零成本迁移到 LiteGen\n- 开发者可以使用熟悉的请求格式调用任何支持的提供商\n- 响应格式标准化,简化下游处理逻辑\n\n2. 智能路由策略\n\nLiteGen 内置了多种路由策略,满足不同场景的需求:\n\nFallback 链:当首选提供商失败时,自动切换到备选提供商,确保服务可用性。\n\n加权轮询:按配置的比例分配流量,例如 75% 请求发往 Fal.ai,25% 发往 Replicate。\n\n最低成本优先:自动选择当前最便宜的提供商,帮助优化成本。\n\n最低延迟优先:优先响应速度最快的提供商,适合对延迟敏感的场景。\n\n3. 企业级功能\n\n多级缓存:内置内存缓存(使用 moka 库),支持配置 TTL,避免重复生成相同内容,降低成本和响应时间。\n\n成本追踪:每请求成本估算和聚合消费分析,帮助团队了解支出分布。\n\nAPI 密钥管理:支持创建/吊销密钥、加权密钥池(用于分散速率限制)、按密钥的 USD 预算上限和 RPM 限流。\n\nWebhook 回调:视频生成完成后,自动向配置的 webhook URL 发送签名回调通知。\n\n4. 可观测性与监控\n\nPrometheus 指标:暴露标准 Prometheus 格式的监控指标。\n\nOpenTelemetry 支持:支持 OTLP gRPC 导出,可接入任意 OTel 收集器。\n\nReact 仪表板:实时监控系统状态、提供商健康度、请求日志和成本图表。\n\n---\n\n技术架构\n\nLiteGen 采用 Rust 构建后端核心,充分利用了 Rust 的性能和安全性优势:\n\n\nlitegen/\n├── litegen-core/ Rust 后端\n│ ├── src/\n│ │ ├── api/ REST API 处理器 + 认证中间件\n│ │ ├── config/ YAML + 环境变量配置加载\n│ │ ├── db/ SQLite/Postgres 持久化\n│ │ ├── providers/ 提供商实现\n│ │ │ ├── image/ OpenAI, Stability, Replicate, Google, Fal\n│ │ │ └── video/ Sora, Fal, Replicate, Runway, Luma\n│ │ ├── proxy/ 路由、注册表、缓存\n│ │ └── types/ 共享类型 + OpenAPI 模式\n│ ├── migrations/ SQL 迁移\n│ └── tests/ 集成测试\n├── dashboard/ React + Vite 仪表板\n└── Dockerfile 多阶段构建\n\n\n严格的参数验证\n\nLiteGen 引入了能力注册表(Capability Registry)机制,通过 YAML 定义每个模型的允许参数、尺寸、宽高比等。请求中的未知参数可以被拒绝(严格模式)或静默丢弃(宽松模式),确保 API 行为的可预测性。\n\n灵活的参考图像输入\n\n支持多种参考图像格式:URL、Base64 编码、多部分文件上传,使用标签联合类型 {type: \"url\"|\"base64\"|\"blob\", value: \"...\"} 统一处理。\n\n---\n\n部署方式\n\nLiteGen 支持多种部署选项:\n\nDocker Compose(推荐)\n\nbash\ngit clone https://github.com/litegen/litegen.git\ncd litegen\ncp litegen.example.yaml litegen.yaml\n编辑配置文件,填入 API 密钥\ndocker compose up -d\n\n\n本地开发\n\nbash\n后端\ncd litegen-core\ncargo build --release\n./target/release/litegen\n\n仪表板(另开终端)\ncd dashboard\nnpm install\nnpm run dev\n\n\n环境变量配置\n\nbash\n主密钥(生产环境必需)\nexport LITEGEN__MASTER_KEY=your-secret-master-key\n\n数据库(开发用 SQLite,生产用 Postgres)\nexport LITEGEN__DATABASE_URL=sqlite://litegen.db\n\n提供商 API 密钥\nexport OPENAI_API_KEY=sk-...\nexport STABILITY_API_KEY=sk-...\nexport RUNWAY_API_KEY=...\n\n\n---\n\n使用示例\n\n图像生成\n\nbash\ncurl -X POST http://localhost:4000/v1/images/generations \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"prompt\": \"a serene mountain landscape at sunset\",\n \"model\": \"openai/dall-e-3\",\n \"size\": \"1024x1024\",\n \"quality\": \"hd\"\n }'\n\n\n视频生成\n\nbash\ncurl -X POST http://localhost:4000/v1/videos/generations \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"prompt\": \"a timelapse of clouds over a city\",\n \"model\": \"runway/gen-3\",\n \"duration_seconds\": 5\n }'\n\n\n查询模型列表\n\nbash\ncurl http://localhost:4000/v1/models\n\n\n---\n\n路由配置示例\n\n通过 YAML 配置复杂的路由策略:\n\nyaml\nmodel_routes:\n 回退策略:先尝试 OpenAI,失败后转 Stability\n - model: \"dall-e-3\"\n strategy: fallback\n deployments:\n - provider: openai\n max_retries: 2\n timeout_seconds: 120\n - provider: stability\n\n 加权轮询:75% Fal,25% Replicate\n - model: \"fal/*\"\n strategy: weighted_round_robin\n deployments:\n - provider: fal\n weight: 3\n - provider: replicate\n weight: 1\n\n 最低成本优先\n - model: \"*\"\n strategy: lowest_cost\n deployments:\n - provider: openai\n - provider: stability\n - provider: replicate\n\n\n---\n\n总结与适用场景\n\nLiteGen 为 AI 多媒体生成领域带来了急需的标准化层。它特别适合以下场景:\n\n多提供商策略:需要同时使用多个生成服务以保证可用性或优化成本的团队。\n\n成本敏感型应用:通过智能路由和缓存机制,显著降低生成成本。\n\n快速原型开发:统一接口降低了切换提供商的摩擦,方便对比不同模型的效果。\n\n企业级部署:完善的认证、限流、监控和审计功能,满足生产环境要求。\n\n作为 Rust 生态中的新兴项目,LiteGen 展示了系统级编程语言在 AI 基础设施领域的优势——高性能、低资源占用、强类型安全。对于正在构建 AI 生成应用的开发者来说,这是一个值得关注和贡献的开源项目。