mirror of
https://github.com/MeowLynxSea/CatismImage.git
synced 2025-07-09 10:54:35 +00:00
支持NSFWPY进行敏感内容过滤
This commit is contained in:
parent
257653d397
commit
7d79e4a3c9
26
README.md
26
README.md
@ -23,9 +23,15 @@ CatismImage 是一个基于Web的图片存储和管理系统,提供用户友
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
4. 配置环境变量:
|
||||
4. [可选] 配置NSFWPY
|
||||
|
||||
在.env或系统添加以下必需环境变量:
|
||||
如果您希望启用NSFW过滤功能,您需要配置NSFWPY。
|
||||
|
||||
请参考[HG-ha/nsfwpy](https://github.com/HG-ha/nsfwpy),通过您喜欢的方式完成配置。
|
||||
|
||||
5. 配置环境变量:
|
||||
|
||||
在.env/系统/Docker添加以下必需环境变量:
|
||||
|
||||
```plaintext
|
||||
# S3存储配置
|
||||
@ -37,15 +43,19 @@ CatismImage 是一个基于Web的图片存储和管理系统,提供用户友
|
||||
# MongoDB配置
|
||||
MONGO_URI=mongodb://your_mongo_uri
|
||||
MONGO_DB=your_database_name
|
||||
|
||||
# NSFW过滤配置(目前支持NSFWPY)
|
||||
ENABLE_NSFW_FILTER=true/false
|
||||
NSFWPY_ENDPOINT=your_nsfwpy_endpoint
|
||||
```
|
||||
|
||||
5. 运行后端服务:
|
||||
6. 运行后端服务:
|
||||
|
||||
```bsh
|
||||
python app.py
|
||||
```
|
||||
|
||||
6. 访问前端页面:
|
||||
7. 访问前端页面:
|
||||
|
||||
```bash
|
||||
http://localhost:5000
|
||||
@ -56,7 +66,7 @@ CatismImage 是一个基于Web的图片存储和管理系统,提供用户友
|
||||
1. 注册/登录后获取用户Key
|
||||
2. 使用上传功能添加图片
|
||||
3. 在仪表板查看存储使用情况和流量统计
|
||||
4. 通过充值功能获取喵币
|
||||
4. 通过爱发电回调充值功能获取喵币
|
||||
5. 在设置中自定义主题颜色和模式
|
||||
|
||||
## 技术栈
|
||||
@ -66,10 +76,6 @@ CatismImage 是一个基于Web的图片存储和管理系统,提供用户友
|
||||
- 数据库:MongoDB
|
||||
- 实时通信:WebSocket
|
||||
|
||||
## TODO List
|
||||
|
||||
完善爱发电支付部分
|
||||
|
||||
## 贡献指南
|
||||
|
||||
欢迎提交Pull Request或报告Issue。请确保代码风格一致并通过所有测试
|
||||
欢迎提交Pull Request或报告Issue。请确保代码风格一致并通过所有测试
|
||||
|
@ -16,6 +16,9 @@ class Config:
|
||||
MONGO_URI = os.getenv('MONGO_URI')
|
||||
MONGO_DB = os.getenv('MONGO_DB')
|
||||
|
||||
ENABLE_NSFW_FILTER = os.getenv('ENABLE_NSFW_FILTER')
|
||||
NSFWPY_ENDPOINT = os.getenv('NSFWPY_ENDPOINT')
|
||||
|
||||
if(S3_ACCESS_KEY == None or S3_SECRET_KEY == None or S3_BUCKET == None or S3_ENDPOINT == None):
|
||||
print("错误:缺少必需的S3环境变量")
|
||||
sys.exit(1)
|
||||
|
Binary file not shown.
Binary file not shown.
@ -50,6 +50,7 @@ def upload_image():
|
||||
try:
|
||||
from PIL import Image
|
||||
import io
|
||||
import requests
|
||||
|
||||
# 直接使用PIL验证图片内容
|
||||
try:
|
||||
@ -59,6 +60,27 @@ def upload_image():
|
||||
file.seek(0)
|
||||
except Exception:
|
||||
return jsonify({'error': '无效的图片文件'}), 400
|
||||
|
||||
# 如果启用了NSFW检查
|
||||
if AppConfig.ENABLE_NSFW_FILTER:
|
||||
print("NSFW检查已启用")
|
||||
file.seek(0)
|
||||
try:
|
||||
response = requests.post(
|
||||
f"{AppConfig.NSFWPY_ENDPOINT}/classify",
|
||||
files={'image': file},
|
||||
headers={'accept': 'application/json'}
|
||||
)
|
||||
response.raise_for_status()
|
||||
nsfw_data = response.json()
|
||||
|
||||
# 检查NSFW评分
|
||||
if nsfw_data.get('neutral', 0) + nsfw_data.get('drawing', 0) < 0.5:
|
||||
return jsonify({'error': '图片内容不符合安全标准'}), 403
|
||||
|
||||
file.seek(0)
|
||||
except Exception as e:
|
||||
return jsonify({'error': f'NSFW检查失败: {str(e)}'}), 500
|
||||
except Exception:
|
||||
return jsonify({'error': '无效的图片文件'}), 400
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user