SiteLLM = LiteLLM + 中文生态 + 安全
SiteLLM 企业AI治理网关,集安全基座(Security)、智能运营(Intelligence)、全链路追溯(Trace)与生态协同(Ecosystem)四大能力;上承大模型,下启智能体,让你每一个Token都能发光发热。
# 架构图UI
LiteLLM
- LiteLLM 是一个开源的 AI 网关(AI Gateway)。它提供了一个统一且标准化的接口,让你能够轻松调用超过 100 种大语言模型(LLM)提供商的服务——包括 OpenAI、Anthropic、Gemini、Bedrock、Azure 等等——并且全程都可以直接沿用大家最熟悉的 OpenAI 接口格式。
- 简单来说,它就是一个强大的 OpenAI 代理服务器(也就是 LLM 网关)。除了能帮你统一对接各种模型外,它还能帮你追踪各项 API 的开销(track spend),甚至可以为每一个虚拟密钥(virtual key)或用户单独设置预算限额,非常适合需要集中管理 AI 资源的企业或开发者。
ChangeList
v0.5.0 安全加固 + 功能修复,修补5个P0安全漏洞(Jinja2沙盒、路径穿越、JWT泄露等)和6个功能问题
v0.5.1 架构升级,新增模型定价同步脚本、护栏幂等、路由组、加权故障转移和v3速率限制器
v0.5.2 云智护栏增强,修复4个云智护栏相关问题(422报错、参数缺失、解析错误、Response API不兼容)
v0.5.3 解决Response API护栏信息未入库的问题(metadata参数被吞)以及前端UI解析格式问题
v0.5.4 YunZhi-UEBA 回调接收所有日志,包括成功的和失败的(其实是所有回调都这样处理)
v0.6.0 修复时间统计的区间问题,以及发送UEBA日志对象循环引用的问题
v0.6.1 修复litellm的CVE漏洞
v0.6.2 增加操作日志的审计功能
v0.6.3 增加多级的组织管理
v0.6.4 优化权限管理、密钥管理和UI等
v0.6.5 增加组织结构视图
v0.7.0 优化和bug fix
v0.7.1 支持钉钉的企业集成
v0.7.3 路由组支持不同模型的集群
v0.8.0 支持个人Token Plan(个人模型)
v0.8.3 优化模型的权限管理,个人,团队,组织专属模型
v0.8.4 更换ORM框架为sqlalchemy,简化部署
中文生态
中文界面:更亲切直观
SiteLLM 提供完整的中文界面支持,降低使用门槛,尤其适合企业内部推广和快速上手。
SiteLLM 原生支持国内主流大模型,开箱即用:
- 阿里通义千问(Qwen 系列)
- 百度文心一言(ERNIE Bot)
- 智谱清言(GLM 系列)
- 月之暗面 Kimi(Moonshot)
- 科大讯飞星火(Spark)
- Llama.cpp,Vllm等(本地) 以及更多通过 OpenAI 兼容接口接入的国内模型 无需翻墙、无需代理,直接在国内网络环境下调用,延迟低、稳定性好。
中文安全护栏:适配国内场景
原有内置护栏基于英文环境设计,在国内对话场景中实用性有限。升级后,内置护栏全面支持中文内容检测,包括:
- 中文敏感词过滤
- 中文 Prompt 注入检测
- 中文合规内容识别
组织管理:一键接入国内协作平台
后续规划与主流国内协作平台深度集成:
- 飞书:一键同步组织架构、用户身份
- 钉钉:SSO 单点登录、部门权限映射
- 企业微信:通讯录同步、审批流程对接
安全
专业红队+AI代码审计
版本发布经过AI和红队的双重审计才发布,尽可能减少安全风险
安全护栏:
SiteLLM 的安全护栏体系继承LiteLLM,支持三种类型的护栏,覆盖从本地规则到外部 API 的完整能力,满足企业级 AI 应用的安全合规需求。
1. 内容过滤护栏(规则型)
- 实现方式:基于内置规则引擎进行本地内容过滤
- 特点:
- 无需外部依赖,本地即可运行
- 低延迟,实时拦截
- 支持关键词、正则表达式、敏感词库等规则配置
- 全面支持中文检测:内置中文敏感词库、中文 Prompt 注入检测规则,适配国内对话场景
- 适用场景:输入/输出内容的实时过滤,如敏感词、违规内容、Prompt 注入检测
2. 第三方合作伙伴护栏(API 型)
- 实现方式:调用第三方合作伙伴提供的安全检测 API 接口
- 特点:
- 借助成熟的安全服务提供商能力
- 无需自行维护规则库和模型
- 可按需选择不同供应商(如内容安全、合规检测等)
- 深度集成国内安全服务商:支持云智信安等国内护栏 API,提供中文内容安全检测、合规判断等专业能力
- 适用场景:需要专业级内容审核、合规判断的场景
3. 自研 API 护栏(API 型)
- 实现方式:通过调用自主开发的 API 接口进行安全检测
- 特点:
- 完全自主可控,可根据业务深度定制
- 支持私有模型、自定义规则、内部知识库
- 与内部系统无缝集成
- 适用场景:有定制化安全需求、数据不出域要求的企业场景
关于策略:灵活绑定,层层防护
使用策略来分组护栏并控制哪些策略适用于特定团队、密钥或模型。
为什么使用策略?
为团队、密钥或模型启用/禁用特定护栏,将护栏组合到单个策略中,继承现有策略并覆盖所需内容
关于策略应用
策略应用控制您的策略在何处应用。策略在应用到特定团队、密钥、模型、标签或全局之前不会产生任何作用。
应用范围:
- 全局 (*) - 应用于所有请求
- 团队 - 仅适用于特定团队
- 密钥 - 仅适用于特定API密钥(支持通配符如dev-*)
- 模型 - 仅在使用特定模型时适用
- 标签 - 匹配来自密钥/团队 metadata.tags 或在请求体中动态传递的标签(metadata.tags)。使用此功能可在跨组强制执行策略,例如"标记为healthcare的所有密钥获得HIPAA护栏。"支持通配符(prod-*)。
安装部署
一、安装 SiteLLM
环境要求
- Python >= 3.9(推荐使用 3.10+)
- 操作系统:Linux(本文以 Ubuntu 为例)
安装命令
pip install sitellm
就这么简单。SiteLLM 的 Python 包管理非常规范,依赖会自动安装。
验证安装:
sitellm --version
如果能正常输出版本号,说明安装成功。
二、安装 PostgreSQL 数据库
SiteLLM 支持多种数据库,但生产环境推荐使用 PostgreSQL,因为它在事务处理、并发性能和数据一致性方面表现优秀。
1. 安装 PostgreSQL
在 Ubuntu 22.04 上,默认提供的是 PostgreSQL 16 版本:
sudo apt install -y postgresql
安装完成后,服务会自动启动。你可以用以下命令检查状态:
sudo systemctl status postgresql
2. 创建数据库和用户
切换到 postgres 用户,进入数据库命令行:
sudo -u postgres psql
然后执行以下 SQL 语句:
-- 创建数据库(指定 UTF8 编码,确保中文支持)
CREATE DATABASE litellm WITH ENCODING = 'UTF8';
-- 创建用户并设置密码,换成自己的密码
CREATE USER sitellm WITH PASSWORD 'sitellm_ai2000';
-- 授予连接权限
GRANT CONNECT ON DATABASE litellm TO sitellm;
-- 切换到 litellm 数据库
\c litellm
-- 授予 public schema 的使用权
GRANT USAGE ON SCHEMA public TO sitellm;
-- 允许用户在 public schema 下创建对象
GRANT CREATE ON SCHEMA public TO sitellm;
-- 授予所有表的增删改查权限
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO sitellm;
完成后输入 \q 退出。
注意事项:
- 密码
sitellm_ai2000是示例,生产环境请使用强密码 GRANT ON ALL TABLES只对当前已存在的表生效,后续新建的表需要重新授权或设置默认权限
三、Prisma 代码生成(关键步骤)
这一步很容易被忽略,但非常关键。SiteLLM 使用 Prisma 作为 ORM 框架,需要在启动前生成数据库访问代码。
执行命令
# 方式一:指定 schema 文件路径
prisma generate --schema /usr/local/lib/python3.10/site-packages/sitellm/proxy/schema.prisma
# 方式二:动态获取 Python 包路径(推荐)
prisma generate --schema $(python3 -m site --user-site)/sitellm/proxy/schema.prisma
路径说明:
- 如果你使用
pip install全局安装,路径通常在/usr/local/lib/python3.x/site-packages/sitellm/proxy/schema.prisma - 如果你使用
pip install --user安装,路径在用户目录下
可以用以下命令确认实际路径:
python3 -c "import sitellm; print(sitellm.__path__)"
四、配置文件(config.yaml)
SiteLLM 通过 YAML 配置文件管理所有设置。创建一个 config.yaml 文件:
general_settings:
master_key: "your_admin_password_here"
database_url: "postgresql://sitellm:sitellm_ai2000@127.0.0.1:5432/litellm"
store_model_in_db: true
store_prompts_in_spend_logs: true
litellm_settings:
drop_params: true
配置项说明
| 配置项 | 说明 |
|---|---|
master_key |
Web 登录时 admin 的密码,同时也是主密钥用于加密数据库中的敏感信息 |
database_url |
PostgreSQL 连接字符串,格式:postgresql://用户:密码@主机:端口/数据库 |
store_model_in_db |
是否在数据库中存储模型信息,建议开启 |
store_prompts_in_spend_logs |
是否在消费日志中存储 Prompt 内容,便于审计和调试 |
drop_params |
是否丢弃未识别的参数,避免上游模型报错 |
⚠️ 重要提醒
master_key 一旦设置,启动后不可修改。
这个密码不仅用于 Web 登录,还将作为主密钥来加密数据库中的其他敏感信息(如 API 密钥、凭证等)。如果后续修改了这个密码,之前加密的数据将无法解密。
因此:
- 使用强密码(建议 16 位以上,包含大小写字母、数字、特殊字符)
- 妥善保存,不要丢失
- 不要在代码仓库中明文存储
五、启动 SiteLLM
环境变量配置
# 设置日志在数据库中存储的最大长度(默认可能较短,建议调大)
export MAX_STRING_LENGTH_PROMPT_IN_DB=32000
启动命令
# 默认端口 4000
sitellm -c config.yaml
# 自定义端口
sitellm -c config.yaml --port 8080
验证启动
启动成功后,访问 http://localhost:4000(或你设置的端口),使用 admin 账号和 master_key 中的密码登录。
服务与支持
- 可以通过gitee来给我们提建议和issue, 也欢迎fork仓库提交代码。 https://gitee.com/zhds/sitellm
- 邮箱联系:maple5218@163.com
- 微信群:
Metadata
Release files for sitellm 0.8.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sitellm-0.8.4-py3-none-any.whl | Python 3 | none | any | Details |
Release files / sitellm-0.8.4-py3-none-any.whl
| Download URL | sitellm-0.8.4-py3-none-any.whl |
|---|---|
| Size | 16.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d92ab7b1af75e3cc3c7adc7b28f0561dbc8c32a5146d49708009c82aaddee7bc
|
|
BLAKE2b-256 checksum How to use checksums |
6cfd5e6fae7f8c5fd4868af89355441ab0059101068caba2b1877906f2939fca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|