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 在内容审查下提供三种审核选项:

  1. OpenAI Moderation — 内置模型,具有 6 个主要类别和 13 个子类别,涵盖一般安全主题,但缺乏精细化定制。
  2. 自定义关键词 — 允许用户定义特定的过滤关键词,但需要手动维护。
  3. API 扩展 — 支持集成外部审核 API,实现高级、灵活的审查。
Dify 内容审查设置
Dify API 扩展配置

添加 OpenGuardrails 作为审核 API 扩展

  1. 输入名称
    为您的 API 扩展选择一个描述性名称。
  2. 设置 API 端点
    填写以下端点 URL:
    https://api.openguardrails.com/v1/dify/moderation
  3. 获取您的 API Key
    openguardrails.com 获取免费的 API key。获取后,将其粘贴到 API-key 字段中。
  4. 测试集成
    在 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
代理服务5002OpenAI 兼容安全网关

认证

所有 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 安全防护栏。

仪表板概览