ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

使用 CrowdStrike AIDR 为 LLM 应用构建输入输出安全护栏:NeMo Guardrails 集成实战

使用 CrowdStrike AIDR 为 LLM 应用构建输入输出安全护栏:NeMo Guardrails 集成实战 人工智能大模型AI 安全治理模型安全内容安全提示词注入防护RAG【免费下载链接】GuardrailsNeMo Guardrails is an open-source toolkit for easily adding programmable guardrails to LLM-based conversational systems.项目地址https://gitcode.com/gh_mirrors/ne/Guardrails点击查看免费下载NeMo Guardrails 提供了一套开箱即用的 CrowdStrike AIDRAI Data Runtime集成方案通过crowdstrike aidr guard input与crowdstrike aidr guard output两条守卫流程把用户输入与模型输出实时提交给 CrowdStrike 的 AI Guard 服务进行检测、屏蔽与改写。读完本文你将掌握该示例配置的完整使用方法含环境变量、超时参数与 CLI 验证方式并从源码层面理解其 allow/block/transform 三态决策与失败开放fail-open机制可直接复制到自己的对话系统中。示例概览一行配置接入 AIDR仓库中的 examples/configs/crowdstrike_aidr 目录包含两个文件README.md演示如何通过 CLI Chat 快速验证该配置config.yml完整的 Rails 配置声明主模型、系统指令、守卫流程以及 AIDR 可选参数。其核心思路是将crowdstrike aidr guard input挂到rails.input.flows将crowdstrike aidr guard output挂到rails.output.flows从而让每一次用户提问与每一次模型应答都经过 CrowdStrike AIDR 的保护。该集成属于社区第三方守卫完整能力清单allow、block、classify、content_safety、detect_jailbreak、detect_pii、moderate、transform定义在 rail.py 的 RailManifest 元数据中。配置文件逐段解析config.yml 的完整内容如下models: - type: main engine: openai model: gpt-4o-mini instructions: - type: general content: You are a helpful assistant. rails: config: crowdstrike_aidr: timeout: 15.0 # Optional request timeout in seconds. Defaults to 30 seconds. input: flows: - crowdstrike aidr guard input output: flows: - crowdstrike aidr guard output各段含义如下models声明主对话模型示例使用 OpenAI 引擎的gpt-4o-mini。你可以按需替换为其他受支持的模型提供方。instructions系统指令与用户消息、模型应答一起被组装进提交给 AIDR 的对话消息序列。rails.config.crowdstrike_aidr.timeout可选参数单位为秒用于设置向 CrowdStrike AIDR API 发起请求的超时时间示例设为15.0。默认值为 30 秒该默认值定义在 rail_config.py 的CrowdStrikeAIDRRailConfig中。若不配置该段则使用 30 秒默认超时。rails.input.flows注册输入守卫流程所有用户消息在进入对话系统前先经 AIDR 检查。rails.output.flows注册输出守卫流程模型生成的应答在返回给用户前先经 AIDR 检查。参数配置的源码实现rails.config.crowdstrike_aidr一节由 rail_config.py 定义CrowdStrikeAIDRRailConfig继承自RailConfigBaseModel目前仅有一个timeout字段类型为float默认30.0描述为 Timeout in seconds for API requests to CrowdStrike AIDR。它通过build_config_spec()注册为守卫的配置规范并被 actions.py 中的get_crowdstrike_aidr_config()读取——若配置中不存在该段则回退到默认配置对象。环境变量与前置条件从 rail.py 的RailRequirements可以看出该集成依赖以下环境变量与服务项目名称是否必需说明环境变量CS_AIDR_TOKEN必需CrowdStrike AIDR API 访问令牌用于Authorization: Bearer token请求头环境变量CS_AIDR_BASE_URL_TEMPLATE可选API 基础地址模板默认https://api.crowdstrike.com/aidr/{SERVICE_NAME}服务CrowdStrike AIDR API必需远程守卫服务提供guard_chat_completions接口其中默认的基础地址模板定义在 actions.py。实际请求端点由模板中的{SERVICE_NAME}替换为aiguard后拼接/v1/guard_chat_completions得到https://api.crowdstrike.com/aidr/aiguard/v1/guard_chat_completions隐私与数据外发说明根据 rail.py 的RailPrivacy声明该守卫会将用户文本sends_user_textTrue与机器人文本sends_bot_textTrue发送到远程的 CrowdStrike AIDR API。在启用此守卫前请确保你的数据外发策略与合规要求允许将对话内容传输至第三方服务并妥善保管CS_AIDR_TOKEN建议通过密钥管理或环境注入方式提供而不是硬编码在配置文件中。运行与验证CLI Chat 实操按 README.md 的说明在examples/configs/crowdstrike_aidr目录下执行uv run nemoguardrails chat --config.--config.表示将当前目录作为配置目录加载其中config.yml会被自动识别。启动前请确认已设置CS_AIDR_TOKEN环境变量主模型gpt-4o-mini的 API Key 已按常规方式配置网络可访问 CrowdStrike AIDR API 端点。若缺少CS_AIDR_TOKEN守卫动作会抛出ValueError(CS_AIDR_TOKEN environment variable is not set.)见 actions.py表现为对话内部错误这一点在 test_crowdstrike_aidr_guard.py 中有对应测试覆盖。工作原理从请求到三态决策消息组装与请求发送crowdstrike_aidr_guard动作定义于 actions.py是整套集成的核心执行流程如下读取CS_AIDR_TOKEN缺失则抛ValueError读取配置中的timeout组装消息序列系统指令rolesystem 用户消息roleuser若为输出守卫则追加机器人消息roleassistant以POST方式向/v1/guard_chat_completions发送 JSON 负载{guard_input: {messages: [...]}}请求头包含 Bearer Token 与User-Agent: NeMo Guardrails解析响应为GuardChatCompletionsResponse其result包含blocked、transformed、guard_output等字段定义见 actions.py从guard_output.messages中提取改写后的user_message与bot_message交由_crowdstrike_aidr_outcome()转换为守卫决策。三态决策allow / block / transform转换逻辑位于 actions.py 的_crowdstrike_aidr_outcome()优先级为block transform allowblock响应中blockedTrue时直接返回RailOutcome.block()消息被拦截transformtransformedTrue时根据守卫方向选择改写目标——输入守卫改写USER_MESSAGE输出守卫改写BOT_MESSAGE对应TransformTarget枚举并使用 AIDR 返回的脱敏/改写后文本替换原消息allow既未拦截也未改写时放行原消息原样通过。决策结果连同guard_output、user_message、bot_message一起写入元数据便于日志追踪与观测。四种典型场景allow、block、输入改写、输出改写在 test_crowdstrike_aidr_guard.py 的参数化测试中有完整断言其中输入改写会把James Bonds email is j.bondmi6.co.uk转换为James Bonds email is EMAIL_ADDRESS之类的脱敏结果。Colang 流程中的落地守卫流程用 Colang 语言定义在 flows.cov2.x 语法与 flows.v1.cov1 语法中两者逻辑等价调用CrowdstrikeAidrGuardAction(modeinput/output)获取响应若$response.is_blocked当$system.config.enable_rails_exceptionsv1 为$config.enable_rails_exceptions开启时抛出CrowdStrikeAidrGuardRailException异常否则向用户回复 I dont know the answer to thatbot inform answer unknown并中止流程若$response.is_transform将改写后的文本写回全局的$user_message或$bot_message后续流程使用改写后的安全内容继续。失败开放Fail-Open行为与可靠性CrowdStrike AIDR 集成对可预期的提供方故障采取失败开放策略这是其可用性设计的关键具体见 actions.py 的 docstring 与try/except结构HTTP 状态错误如 429、500、502、503、504记录HTTP status error from CrowdStrike AIDR API日志传输故障连接失败等HTTPClientError记录Error calling CrowdStrike AIDR API日志畸形 JSON 或响应结构校验失败ValidationError同样记录日志。以上情况均回退为GuardChatCompletionsResult默认值blockedFalse, transformedFalse保留原始消息最终返回allow决策——即 AIDR 服务不可用时对话不会被误拦截保障业务连续性。而CS_AIDR_TOKEN缺失这类编程配置错误则不会被吞掉会直接抛出异常暴露问题。测试 test_crowdstrike_aidr_guard.py 分别覆盖了 5xx/429 状态码、连接失败、非 JSON 响应、空对象响应等场景断言这些情况下结果均为未拦截、未改写且原始user_message与bot_message得以保留。生产落地建议基于上述源码行为将本示例接入生产环境时建议关注以下几点密钥管理通过安全的方式注入CS_AIDR_TOKEN避免写入版本库必要时通过CS_AIDR_BASE_URL_TEMPLATE指向私有部署或代理端点。超时调优按上游延迟实测调整rails.config.crowdstrike_aidr.timeout默认 30 秒。过短容易触发 fail-open 放行过长会拖慢对话首响延迟。异常策略如需对拦截事件做显式异常处理而非统一回复 I dont know the answer to that可在 Rails 配置中启用enable_rails_exceptions配合 flows.co 中定义的CrowdStrikeAidrGuardRailException定制错误响应。观测与审计RailOutcome 元数据中携带blocked、transformed、guard_output等字段可接入 NeMo Guardrails 的日志与追踪体系便于审计 AIDR 的拦截与改写行为。测试验证仓库中的 test_crowdstrike_aidr_guard.py 提供了基于pytest-httpx与TestChat的完整测试范式可在不真实调用 AIDR 服务的前提下验证拦截、改写与故障回退逻辑可作为你集成测试的起点。小结CrowdStrike AIDR 示例展示了 NeMo Guardrails 接入第三方内容安全/数据保护服务的最小可运行范式两个守卫流程 一段rails.config参数 两个环境变量即可完成双向保护。其底层通过系统动作crowdstrike_aidr_guard完成消息组装、API 调用与三态决策转换并以失败开放策略保证了服务不可用时的可用性。在此基础上你可以将同样的模式推广到其他自定义守卫或进一步扩展CrowdStrikeAIDRRailConfig以适配更多 AIDR 能力。赞分享人工智能大模型AI 安全治理模型安全内容安全提示词注入防护RAG【免费下载链接】GuardrailsNeMo Guardrails is an open-source toolkit for easily adding programmable guardrails to LLM-based conversational systems.项目地址https://gitcode.com/gh_mirrors/ne/Guardrails点击查看免费下载相关推荐VoltAgent LLM Guardrails 实战指南为 AI Agent 构建输入输出安全护栏VoltAgent LLM Guardrails 实战指南为 AI Agent 构建输入输出安全护栏 导读 本文以 VoltAgent 开源 TypeScri人工智能AI AgentAgent 框架后端多智能体RAG工具调用Agent 记忆Agent 工作流AI 评测MCP 服务MCP Clients语音MOSS-VoiceGenerator 竞技场胜率分析对比顶级闭源声音设计模型MOSS VoiceGenerator 竞技场胜率分析对比顶级闭源声音设计模型 MOSS VoiceGenerator 是 MOSS TTS 家族中开源的声音人工智能大模型AI 安全治理模型安全内容安全提示词注入防护RAGGuardrails 框架实战指南为 LLM 应用构建输入/输出护栏与结构化数据生成Guardrails 框架实战指南为 LLM 应用构建输入/输出护栏与结构化数据生成 Guardrails 是一个 Python 框架用于为 LLM大语言AI 安全治理模型安全AI 应用上一篇AWS Amplify JS与AppSync实时数据同步终极指南构建响应式应用的10个关键技巧下一篇如何快速上手AnimateAnyoneAI动画生成神器的完整使用指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表