企业AI计费系统MVP搭建
基于 LiteLLM 网关 + Open WebUI 的企业 AI 服务精细化计费系统 MVP 落地步骤,实现多维度统计消费。
企业AI计费系统MVP搭建
最小可行性系统落地步骤
1. 架构与前置准备
1.1 系统架构
1
2
3
员工浏览器 → Open WebUI (:3000) → LiteLLM Proxy (:4000) → 各模型 API (OpenAI, Anthropic等)
↓
PostgreSQL(用户/项目/消费数据)
1.2 前置准备
- 安装 Docker 和 Docker Compose。
- 准备采购的 AI 模型 API Key。
- 服务器开放
3000和4000端口。
2. 核心组件部署 (Docker Compose)
在服务器上创建一个目录,新建 docker-compose.yml 和 .env 文件。
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
services:
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_DB: litellm
POSTGRES_USER: litellm
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U litellm -d litellm"]
interval: 5s
retries: 10
litellm:
image: ghcr.io/berriai/litellm-database:v1.85.0
restart: unless-stopped
depends_on:
db:
condition: service_healthy
ports:
- "4000:4000"
environment:
LITELLM_MASTER_KEY: ${LITELLM_MASTER_KEY}
LITELLM_SALT_KEY: ${LITELLM_SALT_KEY}
DATABASE_URL: "postgresql://litellm:${POSTGRES_PASSWORD}@db:5432/litellm"
# 供应商的 API Key 在 LiteLLM UI 中配置,这里仅作为启动配置
command: ["--port", "4000"]
open-webui:
image: ghcr.io/open-webui/open-webui:main
restart: unless-stopped
depends_on:
- litellm
ports:
- "3000:8080"
volumes:
- owui_data:/app/backend/data
environment:
# 对接 LiteLLM 的统一入口
OPENAI_API_BASE_URL: http://litellm:4000/v1
# 使用 Master Key 作为默认连接,员工个人计费密钥可在前端单独配置
OPENAI_API_KEY: ${LITELLM_MASTER_KEY}
WEBUI_AUTH: "True"
volumes:
pgdata:
owui_data:
.env
1
2
3
LITELLM_MASTER_KEY=sk-你的随机字符串 # 生成密钥:sk-$(openssl rand -hex 24)
LITELLM_SALT_KEY=你的随机base64字符串 # 生成盐值:$(openssl rand -base64 32)
POSTGRES_PASSWORD=你的数据库强密码 # 你的数据库强密码
启动服务
1
2
3
docker compose up -d
# 验证 LiteLLM 健康
curl http://localhost:4000/health/liveliness
3. 平台初始化与模型接入 (AI 采购与配置)
- 登录管理后台:访问
http://localhost:4000/ui,用户名输入admin,密码输入.env中的LITELLM_MASTER_KEY。 - 配置供应商密钥:在 UI 左侧导航进入
API Keys,添加企业采购的各厂商 API Key。 - 添加可用模型:进入
Models,点击+ Add Model,配置模型映射(如将gpt-4o映射到 OpenAI 的真实模型)。员工后续调用时将使用这里配置的模型名称。
4. 用户与项目计费配置
为了实现按多维度核算,本节以按人、项目为例,需要创建用户、分配项目标签,并生成带有计费追踪的 API Key。
4.1 创建用户与项目标签 (Tag)
在 LiteLLM UI 中操作,或通过 API 执行:
1
2
3
4
5
6
7
8
9
10
11
# 创建用户张三和李四
curl -X POST 'http://localhost:4000/user/new' \
-H "Authorization: Bearer ${LITELLM_MASTER_KEY}" \
-H 'Content-Type: application/json' \
-d '{"user_id": "zhangsan", "user_alias": "张三"}'
# 创建项目标签
curl -X POST 'http://localhost:4000/tag/new' \
-H "Authorization: Bearer ${LITELLM_MASTER_KEY}" \
-H 'Content-Type: application/json' \
-d '{"tag_name": "project-alpha"}'
4.2 为员工生成专属计费 API Key
为员工生成专属密钥,绑定用户身份和项目,并可设置预算上限:
1
2
3
4
5
6
7
8
9
curl -X POST 'http://localhost:4000/key/generate' \
-H "Authorization: Bearer ${LITELLM_MASTER_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"user_id": "zhangsan",
"metadata": {"tags": ["project-alpha"]},
"max_budget": 100.0,
"models": ["gpt-4o", "claude-3-5-sonnet"]
}'
效果:该 API Key 消费数据同时归属个人和项目。
5. 员工使用指南 (Open WebUI 对接)
- 员工访问
http://<服务器IP>:3000。 - 首次访问点击“注册”,创建个人 Open WebUI 账号(管理员可在后台审批或配置允许注册)。
- 配置专属计费密钥:
- 员工登录后,点击右上角头像 →
Settings(设置) →Connections(连接)。 - 在 OpenAI API 区域,确保 URL 为 LiteLLM 地址(由服务器默认下发)。
- 填入管理员在步骤 4.2 中为其分配的专属 API Key,点击保存。
- 员工登录后,点击右上角头像 →
- 回到主界面,在模型下拉框中选择对应的 AI 模型即可开始对话使用。
6. 验证与数据看板
发送测试请求 使用员工的 API Key 发送请求:
1
2
3
4
curl -X POST 'http://localhost:4000/v1/chat/completions' \
-H "Authorization: Bearer sk-员工专属APIKey" \
-H 'Content-Type: application/json' \
-d '{"model":"gpt-4o","messages":[{"role":"user","content":"测试企业AI平台"}]}'
查看计费与消费统计
- 管理员打开
http://<服务器IP>:4000/ui→Spend & Usage。 - 按 User 筛选:查看各员工(张三、李四)的具体消费金额与 Token 用量。
- 按 Tag 筛选:查看各业务线/项目的总体消费,便于财务进行内部成本分摊。
- 可自行导出报表。
本文由作者按照 CC BY 4.0 进行授权