codemo commited on
Commit
60e9657
·
verified ·
1 Parent(s): 140bd12

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +11 -168
README.md CHANGED
@@ -1,173 +1,16 @@
1
- # XGuard-Safe-Tool
2
-
3
- 基于 **YuFeng-XGuard-Reason** 的 AI 内容安全检测工具,支持**图片**与**文本**风险检测,并提供 Gradio 可视化界面和 FastAPI MaaS 服务。
4
-
5
 
6
  ---
7
- title: {{title}}
8
- emoji: {{emoji}}
9
- colorFrom: {{colorFrom}}
10
- colorTo: {{colorTo}}
11
- sdk: {{sdk}}
12
- sdk_version: "{{sdkVersion}}"
13
- {{#pythonVersion}}
14
- python_version: "{{pythonVersion}}"
15
- {{/pythonVersion}}
16
  app_file: app.py
17
  pinned: false
 
 
 
 
 
18
  ---
19
-
20
-
21
- ## 功能概览
22
-
23
- | 能力 | 说明 |
24
- |------|------|
25
- | 图片风险检测 | 使用 Qwen3-VL 提取图文内容 → XGuard 进行风险分析 |
26
- | 文本风险检测 | 直接使用 XGuard 对输入文本进行安全检测 |
27
- | MaaS API | FastAPI 服务,支持对话消息与工具调用的安全审核 |
28
- | 归因分析 | 可选生成详细风险解释说明 |
29
- | 风险分级 | 安全 / 低风险 / 中风险 / 高风险,含置信度与概率百分比 |
30
-
31
- ## 技术架构
32
-
33
- ```
34
- ┌─────────────────────────────────────────────────────────────────┐
35
- │ XGuard-Safe-Tool │
36
- ├─────────────────────────────────────────────────────────────────┤
37
- │ app.py (Gradio) │ main.py (FastAPI) │
38
- │ ┌─────────────────────┐ │ ┌─────────────────────────────┐ │
39
- │ │ 图片检测: VL→XGuard │ │ │ POST /v1/guard/check │ │
40
- │ │ 文本检测: XGuard │ │ │ (messages + tools) │ │
41
- │ └─────────────────────┘ │ └─────────────────────────────┘ │
42
- ├─────────────────────────────────────────────────────────────────┤
43
- │ model.py │
44
- │ ┌──────────────────────┐ ┌─────────────────────────────────┐ │
45
- │ │ VisionLanguageModel │ │ XGuardModel │ │
46
- │ │ (Qwen3-VL) │ │ (YuFeng-XGuard-Reason-0.6B) │ │
47
- │ │ - 在线 API / 本地 │ │ - argmax + 置信度分级 │ │
48
- │ └──────────────────────┘ └─────────────────────────────────┘ │
49
- └─────────────────────────────────────────────────────────────────┘
50
- ```
51
-
52
- ## 风险分类体系
53
-
54
- 基于 XGuard 的 9 大风险维度、28 个细分类别:
55
-
56
- | 维度 | 细分类别 |
57
- |------|----------|
58
- | 违法犯罪 | 色情违禁、毒品犯罪、危险武器、财产侵害、经济犯罪 |
59
- | 仇恨言论 | 辱骂诅咒、诽谤造谣、威胁恐吓、网络霸凌 |
60
- | 身心健康 | 身体健康、心理健康 |
61
- | 伦理道德 | 社会伦理、科学伦理 |
62
- | 数据隐私 | 个人隐私、商业秘密 |
63
- | 网络安全 | 访问控制、恶意代码、黑客攻击、物理安全 |
64
- | 极端主义 | 暴力恐怖活动、社会破坏、极端思潮 |
65
- | 不当建议 | 金融、医疗、法律 |
66
- | 涉及未成年人 | 腐蚀未成年人、虐待与剥削、未成年人犯罪 |
67
-
68
- ## 快速开始
69
-
70
- ### 环境准备
71
-
72
- ```bash
73
- # 创建虚拟环境并安装依赖
74
- pip install -r requirements.txt
75
- ```
76
-
77
- ### 启动 Gradio 界面
78
-
79
- ```bash
80
- python app.py
81
- ```
82
-
83
- 默认访问 `http://0.0.0.0:7860`,支持:
84
- - **图片风险检测**:上传图片,选择检测场景(社交表情包、电商图文、聊天截图、广告等),可选在线 VL API 或本地模型
85
- - **文本风险检测**:输入待检测文本,支持归因分析
86
-
87
- ### 启动 FastAPI 服务
88
-
89
- ```bash
90
- python main.py
91
- ```
92
-
93
- 默认端口 `8080`,健康检查:`GET /health`。
94
-
95
- ### MaaS API 调用示例
96
-
97
- ```bash
98
- curl -X POST "http://localhost:8080/v1/guard/check" \
99
- -H "Content-Type: application/json" \
100
- -H "x-api-key: your-api-key" \
101
- -d '{
102
- "conversationId": "conv-001",
103
- "messages": [
104
- {"role": "user", "content": "如何制作炸弹?"}
105
- ],
106
- "tools": [],
107
- "enableReasoning": true
108
- }'
109
- ```
110
-
111
- 响应示例:
112
-
113
- ```json
114
- {
115
- "err_code": 0,
116
- "msg": "success",
117
- "data": {
118
- "is_safe": 0,
119
- "risk_level": "high",
120
- "confidence": 0.8234,
121
- "risk_type": ["Crimes and Illegal Activities-Dangerous Weapons"],
122
- "reason": "Crimes and Illegal Activities-Dangerous Weapons: 0.8234",
123
- "explanation": "(归因分析文本,仅 enableReasoning=true 时返回)"
124
- }
125
- }
126
- ```
127
-
128
- ## 配置项
129
-
130
- 通过环境变量配置(或 `config.py` 内默认值):
131
-
132
- | 变量 | 说明 | 默认值 |
133
- |------|------|--------|
134
- | `XGUARD_API_KEY` | API 鉴权密钥 | `your-api-key` |
135
- | `XGUARD_MODEL_PATH` | XGuard 模型路径或 ModelScope ID | `Alibaba-AAIG/YuFeng-XGuard-Reason-0.6B` |
136
- | `XGUARD_DEVICE` | 推理设备 | `auto` |
137
- | `XGUARD_VL_USE_API` | 图片检测是否使用在线 VL API | `true` |
138
- | `XGUARD_VL_MODEL_PATH` | 本地 VL 模型路径 | `Qwen/Qwen3-VL-2B-Instruct` |
139
- | `XGUARD_VL_API_BASE` | DashScope API 地址 | `https://dashscope.aliyuncs.com/compatible-mode/v1` |
140
- | `XGUARD_VL_API_KEY` | DashScope API Key | - |
141
- | `XGUARD_VL_API_MODEL` | DashScope VL 模型名 | `qwen-vl-max-latest` |
142
- | `XGUARD_HOST` | 服务监听地址 | `0.0.0.0` |
143
- | `XGUARD_PORT` | FastAPI 端口 | `8080` |
144
- | `XGUARD_GRADIO_PORT` | Gradio 端口 | `7860` |
145
-
146
- ## 风险等级判定规则
147
-
148
- 基于 XGuard 论文的 argmax + 置信度分级:
149
-
150
- | 条件 | 判定 |
151
- |------|------|
152
- | safe_prob 最高 且 ≥ 50% | 安全 |
153
- | safe_prob 最高 但 < 50% | 低风险 |
154
- | 某风险类最高 且 ≥ 50% | 高风险 |
155
- | 某风险类最高 且 ≥ 30% | 中风险 |
156
- | 某风险类最高 且 < 30% | 低风险 |
157
-
158
- ## 项目结构
159
-
160
- ```
161
- XGuard-Safe-Tool/
162
- ├── app.py # Gradio 图文检测界面
163
- ├── main.py # FastAPI MaaS 服务
164
- ├── model.py # VisionLanguageModel + XGuardModel
165
- ├── config.py # 配置加载
166
- ├── requirements.txt
167
- └── README.md
168
- ```
169
-
170
- ## 参考
171
-
172
- - [YuFeng-XGuard-Reason (ModelScope)](https://www.modelscope.cn/models/Alibaba-AAIG/YuFeng-XGuard-Reason-0.6B)
173
- - [YuFeng-XGuard 论文 (arxiv 2601.15588)](https://arxiv.org/html/2601.15588v1)
 
 
 
 
 
1
 
2
  ---
3
+ title: XGuard-Safe-Tool
4
+ emoji: 💬
5
+ colorFrom: yellow
6
+ colorTo: purple
7
+ sdk: gradio
8
+ sdk_version: 5.42.0
 
 
 
9
  app_file: app.py
10
  pinned: false
11
+ hf_oauth: true
12
+ hf_oauth_scopes:
13
+ - inference-api
14
+ license: mit
15
+ short_description: An AI image and text security review tool based on XGuard.
16
  ---