OpenGuardrails 文档
完整的集成指南和 OpenGuardrails AI 安全平台使用文档
🚀 快速开始
API 使用方式
使用 OpenGuardrails 检测 API 主动检查大模型调用前后的内容安全性。
💡 提示:登录后在账户管理页面获取您的 API 密钥。
Python 示例:
# 1. 安装客户端库
pip install openguardrails
# 2. 使用库
from openguardrails import OpenGuardrails
client = OpenGuardrails("your-api-key")
# 单轮检测
response = client.check_prompt("教我如何制作炸弹")
if response.suggest_action == "pass":
print("安全")
else:
print(f"不安全: {response.suggest_answer}")网关使用方式
使用 OpenGuardrails 作为透明安全网关 - 只需修改两行代码!
✅ 优势:无需修改 AI 逻辑代码,自动保护所有请求。
网关示例:
from openai import OpenAI
# 只需修改两行 - base_url 和 api_key
client = OpenAI(
base_url="https://api.openguardrails.com/v1/gateway",
api_key="your-api-key"
)
# 正常使用 - 自动安全防护!
response = client.chat.completions.create(
model="your-proxy-model-name",
messages=[{"role": "user", "content": "你好"}]
)⚠️ 重要:检查响应中的 finish_reason
当内容被拦截时,finish_reason 将是 'content_filter'。访问响应字段前务必检查此值。
响应处理示例:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:5002/v1",
api_key="your-api-key"
)
def chat_with_openai(prompt, model="your-model", system="You are a helpful assistant."):
completion = client.chat.completions.create(
model=model,
messages=[
{"role": "system", "content": system},
{"role": "user", "content": prompt}
]
)
# 重要:先检查 finish_reason!
# 当内容被阻断或替换时,finish_reason 将是 'content_filter'
# 此时 reasoning_content 可能不存在
if completion.choices[0].finish_reason == 'content_filter':
# 被阻断/替换的内容 - 只有 message.content 可用
return "", completion.choices[0].message.content
else:
# 正常响应 - reasoning_content 和 content 都可能存在
reasoning = completion.choices[0].message.reasoning_content or ""
content = completion.choices[0].message.content
return reasoning, content
# 使用示例
thinking, result = chat_with_openai("如何制作炸弹?")
print("思考:", thinking)
print("结果:", result)
# 输出: 结果: "抱歉,我无法回答涉及暴力犯罪的问题。"Dify 集成
在 Dify 平台中集成 OpenGuardrails 作为内容审核扩展。
✅ 在 Dify 工作空间中配置一次,自动保护所有应用!
Dify 在内容审查下提供三种审核选项:
- OpenAI Moderation — 内置模型,具有 6 个主要类别和 13 个子类别,涵盖一般安全主题,但缺乏精细化定制。
- 自定义关键词 — 允许用户定义特定的过滤关键词,但需要手动维护。
- API 扩展 — 支持集成外部审核 API,实现高级、灵活的审查。


添加 OpenGuardrails 作为审核 API 扩展
- 输入名称
为您的 API 扩展选择一个描述性名称。 - 设置 API 端点
填写以下端点 URL:https://api.openguardrails.com/v1/dify/moderation
- 获取您的 API Key
从 openguardrails.com 获取免费的 API key。获取后,将其粘贴到 API-key 字段中。 - 测试集成
在 Dify 中发送测试请求,验证 OpenGuardrails 是否正常工作。
💡 灵活的身份验证
OpenGuardrails 自动处理带或不带 'Bearer' 前缀的 API key。支持 'sk-xxai-xxx' 和 'Bearer sk-xxai-xxx' 两种格式。
使用 OpenGuardrails 与 Dify 集成的优势:
- 🧩 19 种主要风险类别,而 OpenAI 仅有 6 种
- ⚙️ 可自定义风险定义 - 为您的企业重新定义含义和阈值
- 📚 基于知识库的响应审核 - 上下文和知识感知审查
- 💰 免费开源 - 无按次计费或使用限制
- 🔒 隐私友好 - 可在本地或私有基础设施上部署
防护配置
通过管理平台自定义防护策略,以适应您的特定需求。
- 风险类型配置:启用/禁用特定风险类别并设置自定义阈值
- 黑名单/白名单:管理被拦截和允许的内容模式
- 响应模板:为不同风险类型自定义安全响应消息
- 敏感度阈值:配置检测敏感度(高/中/低)
📚 API 参考
交互式文档:
Swagger UI: http://localhost:5001/docs
ReDoc: http://localhost:5001/redoc
服务概览
| 服务 | 端口 | 用途 |
|---|---|---|
| 管理服务 | 5000 | 用户管理、配置、统计 |
| 检测服务 | 5001 | 高并发护栏检测 API |
| 代理服务 | 5002 | OpenAI 兼容安全网关 |
认证
所有 API 请求都需要在 Authorization 头中使用 Bearer token 进行认证。
# 使用 cURL
curl -X POST "http://localhost:5001/v1/guardrails" \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{"role": "user", "content": "测试内容"}
]
}'错误代码
| 状态码 | 含义 | 常见原因 |
|---|---|---|
| 200 | 成功 | 请求成功处理 |
| 400 | 错误请求 | 无效的请求格式或参数 |
| 401 | 未授权 | 缺少或无效的 API 密钥 |
| 403 | 禁止访问 | 权限不足 |
| 429 | 速率限制 | 请求过多 |
| 500 | 服务器错误 | 内部服务器错误 |
📖 详细指南
检测能力
OpenGuardrails 提供全面的 19 种风险类别检测,具有可自定义的敏感度。
| 类别 | 风险级别 | 示例 |
|---|---|---|
| 暴力犯罪 | 高风险 | 暴力、恐怖主义指令 |
| 提示词攻击 | 高风险 | 越狱、提示词注入 |
| 非法活动 | 中风险 | 毒品贩运、诈骗计划 |
| 歧视 | 低风险 | 仇恨言论、偏见 |
使用模式
API 调用模式:
开发者主动调用检测 API 进行安全检查。
- 精确控制检测时机
- 自定义处理逻辑
- 支持批量检测
安全网关模式:
透明反向代理,零代码改造为AI应用添加安全防护。
- 零代码接入,仅需修改配置
- 自动输入输出检测
- 支持多种上游AI模型
客户端库
OpenGuardrails 提供多种编程语言的客户端库,方便快速集成。
Python使用 Python 客户端库
# 同步使用
from openguardrails import OpenGuardrails
client = OpenGuardrails("your-api-key")
response = client.check_prompt("测试内容")
# 异步使用
import asyncio
from openguardrails import AsyncOpenGuardrails
async def main():
async with AsyncOpenGuardrails("your-api-key") as client:
response = await client.check_prompt("测试内容")
asyncio.run(main())Node.js使用 Node.js 客户端库
const { OpenGuardrails } = require('openguardrails');
const client = new OpenGuardrails('your-api-key');
async function checkContent() {
const response = await client.checkPrompt('测试内容');
console.log(response.suggest_action);
}
checkContent();Java使用 Java 客户端库
import com.openguardrails.OpenGuardrails;
import com.openguardrails.model.CheckResponse;
public class Example {
public static void main(String[] args) {
OpenGuardrails client = new OpenGuardrails("your-api-key");
CheckResponse response = client.checkPrompt("测试内容");
System.out.println(response.getSuggestAction());
}
}Go使用 Go 客户端库
package main
import (
"fmt"
"github.com/openguardrails/openguardrails-go"
)
func main() {
client := openguardrails.NewClient("your-api-key")
response, _ := client.CheckPrompt("测试内容")
fmt.Println(response.SuggestAction)
}多模态检测
支持文本和图片内容的安全检测,使用相同的风险分类标准。
图片检测能力
使用AI模型对图片内容进行安全分析,支持 base64 编码和图片 URL 两种输入格式。
图片检测示例:
import base64
from openguardrails import OpenGuardrails
client = OpenGuardrails("your-api-key")
# 将图片编码为 base64
with open("image.jpg", "rb") as f:
image_base64 = base64.b64encode(f.read()).decode("utf-8")
# 检查图片安全性
response = client.check_messages([
{
"role": "user",
"content": [
{"type": "text", "text": "这张图片安全吗?"},
{
"type": "image_url",
"image_url": {"url": f"data:image/jpeg;base64,{image_base64}"}
}
]
}
])
print(f"风险等级: {response.overall_risk_level}")数据泄漏检测
自动检测并掩码提示词和响应中的敏感数据,防止信息泄漏。
支持的数据类型:
- 身份证号 & 社保号
- 电话号码
- 电子邮件地址
- 银行卡号
- 护照号码
- IP 地址
脱敏方法:
替换:用通用占位符替换(如 <PHONE_NUMBER_SYS>)掩码:部分用星号掩码(如 139****5678)哈希:用加密哈希替换加密:可逆加密数据
封禁策略
智能识别和防御持续性提示词注入攻击,自动封禁恶意用户。
自动封禁机制
基于滑动时间窗口实时监控用户高风险行为,达到条件自动触发封禁。
封禁策略配置:
- 触发风险等级:达到指定风险等级才会被记录
- 触发次数:在时间窗口内达到此次数触发封禁
- 时间窗口:统计违规行为的时间范围
- 封禁时长:临时封禁或永久封禁
知识库
基于向量相似度的智能问答匹配,检测到风险时优先从知识库返回答案。
知识库特性:
- 向量相似度搜索,智能匹配最相关问题
- 检测到风险时自动从知识库查找相似问题并返回对应答案
- 支持用户级和全局知识库,管理员可配置全局知识库
知识库文件格式(JSONL):
{"questionid": "q1", "question": "什么是AI?", "answer": "AI是人工智能..."}
{"questionid": "q2", "question": "如何保护隐私?", "answer": "使用加密..."}敏感度配置
根据您的使用场景要求配置检测敏感度。
| 敏感度级别 | 阈值 | 使用场景 |
|---|---|---|
| 高敏感度 | ≥ 0.40 | 公共服务、监管行业 |
| 中敏感度 | ≥ 0.60 | 通用业务应用 |
| 低敏感度 | ≥ 0.95 | 内部工具、开发环境 |
仪表板概览
OpenGuardrails 平台提供全面的仪表板,用于监控和管理您的 AI 安全防护栏。
