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
  ---