【开源 PrismGuard】API 内容审核 · 格式转换 · 透明代理
PrismGuard:构建更稳健的 AI 接口中间件
github.com
GitHub - CassiopeiaCode/PrismGuard
通过在 GitHub 上创建帐户来为 CassiopeiaCode/PrismGuard 开发做出贡献。
PrismGuard 是一个为 AI API 设计的智能中间件,用于扩展 NewApi 或 Veloera 的功能
最初,为了保护官逆的 Claude 账号池,需要一个能够精细控制请求的网关;后来,随着需求演进,它逐渐发展成了一个功能完善的智能中间件
其核心设计是基于 “非侵入式的透明代理”。对于上游业务来说,接入过程仅需修改
----------------------
Features
作为一个专为 AI API 场景设计的中间件,PrismGuard 主要解决了以下四个维度的挑战:
1. 分层智能风控
单纯依赖关键词太死板,全量走 LLM 审核又太贵太慢。PrismGuard 采用了一套混合策略:关键词匹配负责快速拦截,本地轻量级模型(FastText/BoW)处理大部分请求,只有高风险或模糊的边界样本才会按需调用 LLM 复核。同时,系统内置了定时重训练机制,确保持续迭代演进
1. 异构协议转换
解决了不同模型供应商之间的格式壁垒。支持 OpenAI Chat、Claude、Gemini 以及 OpenAI Responses 格式的互相转化。此外,针对某些不仅需要对话还需要限制功能的场景,它可以在代理层直接拒绝包含工具调用的请求,从源头控制模型行为
1. 流式响应的防空回复机制
一个常见的一个问题是:连接建立了,但上游没吐字,或者吐了空内容。通过配置
1. 零代码侵入集成
通过标准化的
----------------------
完整的智能审核流程 💫
在 PrismGuard 中,审核机制在于利用低成本手段过滤绝大多数流量,仅将高价值的算力和时间投入到真正的长尾问题上
以下是该流水线的具体运作逻辑:
1. 缓存优先
系统通过 LRU 缓存机制,对已判定的文本直接复用结果
2. 采样与数据保鲜
为了防止模型由于样本陈旧而发生漂移,系统引入了强制采样机制。即使本地模型判定通过,系统也会根据配置的
3. 基于置信度的分级裁决
本地模型(FastText/BoW)的预测结果被划分为三个区间:
● 安全区(p < low_threshold): 直接放行,保证高性能。
● 拒绝区(p > high_threshold): 明确违规,直接拦截。
● 灰色区(中间地带): 这是本地模型“拿不准”的部分。系统会将这部分流量转发给 LLM 进行复核
4. 数据闭环与自动进化
LLM 的复核结果不会被浪费,而是存入 SQLite 的
当某个 Profile 下的样本量达到
29 posts - 29 participants
Read full topic
via LINUX DO - 热门话题 (author: ByteBender)
Invalid media: image
PrismGuard:构建更稳健的 AI 接口中间件
github.com
GitHub - CassiopeiaCode/PrismGuard
通过在 GitHub 上创建帐户来为 CassiopeiaCode/PrismGuard 开发做出贡献。
PrismGuard 是一个为 AI API 设计的智能中间件,用于扩展 NewApi 或 Veloera 的功能
最初,为了保护官逆的 Claude 账号池,需要一个能够精细控制请求的网关;后来,随着需求演进,它逐渐发展成了一个功能完善的智能中间件
其核心设计是基于 “非侵入式的透明代理”。对于上游业务来说,接入过程仅需修改
base_url,而所有的复杂逻辑,包括内容风控、协议转换,还是异常流式响应的拦截,都被封装在 PrismGuard 的配置层面中,实现了在一个入口、统一治理----------------------
Features
作为一个专为 AI API 场景设计的中间件,PrismGuard 主要解决了以下四个维度的挑战:
1. 分层智能风控
单纯依赖关键词太死板,全量走 LLM 审核又太贵太慢。PrismGuard 采用了一套混合策略:关键词匹配负责快速拦截,本地轻量级模型(FastText/BoW)处理大部分请求,只有高风险或模糊的边界样本才会按需调用 LLM 复核。同时,系统内置了定时重训练机制,确保持续迭代演进
1. 异构协议转换
解决了不同模型供应商之间的格式壁垒。支持 OpenAI Chat、Claude、Gemini 以及 OpenAI Responses 格式的互相转化。此外,针对某些不仅需要对话还需要限制功能的场景,它可以在代理层直接拒绝包含工具调用的请求,从源头控制模型行为
1. 流式响应的防空回复机制
一个常见的一个问题是:连接建立了,但上游没吐字,或者吐了空内容。通过配置
delay_stream_header,PrismGuard 会在缓冲区内先校验内容有效性,只有确认内容正常后才向客户端发送响应头。这意味着如果遇到空回复,系统可以直接抛出错误,触发上游的重试机制,而不是让客户端收到一个 200 OK 的空包1. 零代码侵入集成
通过标准化的
proxy_entry 入口,PrismGuard 可以无缝接入现有的聚合网关或官方客户端。这种解耦设计最大的好处在于,当风控策略或模型适配逻辑发生变化时,不需要去动业务侧的代码----------------------
完整的智能审核流程 💫
在 PrismGuard 中,审核机制在于利用低成本手段过滤绝大多数流量,仅将高价值的算力和时间投入到真正的长尾问题上
以下是该流水线的具体运作逻辑:
1. 缓存优先
系统通过 LRU 缓存机制,对已判定的文本直接复用结果
2. 采样与数据保鲜
为了防止模型由于样本陈旧而发生漂移,系统引入了强制采样机制。即使本地模型判定通过,系统也会根据配置的
ai_review_rate 随机抽取一小部分请求强制送往 LLM 进行标注。这确保始终拥有“新鲜”的数据集,为后续的迭代提供养料3. 基于置信度的分级裁决
本地模型(FastText/BoW)的预测结果被划分为三个区间:
● 安全区(p < low_threshold): 直接放行,保证高性能。
● 拒绝区(p > high_threshold): 明确违规,直接拦截。
● 灰色区(中间地带): 这是本地模型“拿不准”的部分。系统会将这部分流量转发给 LLM 进行复核
4. 数据闭环与自动进化
LLM 的复核结果不会被浪费,而是存入 SQLite 的
history.db 中。这些经过 LLM 标注的高质量样本会自动进入本地模型的重训练流程当某个 Profile 下的样本量达到
min_samples 且满足时间间隔时,系统会自动利用文件锁机制触发训练。也就是说,随着运行时间的增长,本地模型会通过不断学习LLM 的判断逻辑而变得越来越聪明,形成一个自动化的正向反馈循环29 posts - 29 participants
Read full topic
via LINUX DO - 热门话题 (author: ByteBender)
Invalid media: image