Skip to main content

SiteLLM= LiteLLM + Chinese + Security

Project description

SiteLLM = LiteLLM + 中文生态 + 安全

SiteLLM 开源Token运营中枢,集安全基座(Security)、智能运营(Intelligence)、全链路追溯(Trace)与生态协同(Ecosystem)四大能力;上承大模型,下启智能体,让你每一个Token都能发光发热。

架构图

架构图

UI

Web 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日志对象循环引用的问题

中文生态

中文界面:更亲切直观

SiteLLM 提供完整的中文界面支持,降低使用门槛,尤其适合企业内部推广和快速上手。

SiteLLM 原生支持国内主流大模型,开箱即用:

  • 阿里通义千问(Qwen 系列)
  • 百度文心一言(ERNIE Bot)
  • 智谱清言(GLM 系列)
  • 月之暗面 Kimi(Moonshot)
  • 科大讯飞星火(Spark)
  • Llama.cpp (本地) 以及更多通过 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 密钥、凭证等)。如果后续修改了这个密码,之前加密的数据将无法解密。

因此:

  1. 使用强密码(建议 16 位以上,包含大小写字母、数字、特殊字符)
  2. 妥善保存,不要丢失
  3. 不要在代码仓库中明文存储

五、启动 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 中的密码登录。


服务与支持

  1. 可以通过gitee来给我们提建议和issue, 也欢迎fork仓库提交代码。 https://gitee.com/zhds/sitellm
  2. 邮箱联系:maple5218@163.com
  3. 微信群:
微信群

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sitellm-0.6.0.tar.gz (14.8 MB view details)

Uploaded Source

File details

Details for the file sitellm-0.6.0.tar.gz.

File metadata

  • Download URL: sitellm-0.6.0.tar.gz
  • Upload date:
  • Size: 14.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for sitellm-0.6.0.tar.gz
Algorithm Hash digest
SHA256 715af7f9ea55eb32c94f6792efb3aea575ab882ab4920fa6834818a48b9ae792
MD5 954818a9a3402f854e44749bf4fb10ea
BLAKE2b-256 66e3b3932848a9181fb00e1a020c66cbe0522e26254eeeb705b4c8add22bc858

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page