# sensitive_word_python_vue2 **Repository Path**: championwang/sensitive_word_python_vue2 ## Basic Information - **Project Name**: sensitive_word_python_vue2 - **Description**: 基于Python+FastAPI+Vue.js的敏感词管理系统,支持敏感词的添加、检测、过滤和高亮功能,目前仅使用DFA(确定有限自动机)算法实现。 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-08 - **Last Updated**: 2025-12-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 敏感词管理系统 基于Python+FastAPI+Vue.js的敏感词管理系统,支持敏感词的添加、检测、过滤和高亮功能,目前仅使用DFA(确定有限自动机)算法实现。 ## 功能特性 ### 后端功能 - ✅ 添加敏感词 - ✅ 批量添加敏感词 - ✅ 检测文本是否包含敏感词 - ✅ 匹配文本中的敏感词位置 - ✅ 高亮文本中的敏感词 - ✅ 过滤敏感词(替换为指定字符) - ✅ 持久化存储敏感词库 - ✅ RESTful API设计 - ✅ 支持CORS跨域请求 ### 前端功能 - ✅ 直观的Web界面 - ✅ 添加敏感词表单 - ✅ 敏感词检测功能 - ✅ 敏感词过滤功能 - ✅ 敏感词高亮功能 - ✅ 算法说明页面 - ✅ 响应式设计 ## 技术栈 ### 后端 - **框架**: FastAPI 0.104.1 - **编程语言**: Python 3.9+ - **算法**: DFA(确定有限自动机) - **数据存储**: TXT文件 - **API文档**: Swagger UI / ReDoc ### 前端 - **框架**: Vue.js 2.7.16 - **UI组件库**: Element UI 2.15.14 - **路由**: Vue Router 3.6.5 - **HTTP客户端**: Axios 1.13.2 - **构建工具**: Vue CLI 5.0.9 ## 项目结构 ``` sensitive_word/ ├── sensitive_word_system/ # 后端项目 │ ├── app/ # 应用代码 │ │ ├── algorithms/ # 算法实现(仅DFA) │ │ ├── schemas/ # 请求/响应模型 │ │ ├── services/ # 业务逻辑层 │ │ └── main.py # FastAPI应用入口 │ ├── data/ # 数据目录 │ │ └── sensitive_words.txt # 敏感词库文件 │ ├── requirements.txt # 依赖列表 │ └── README.md # 后端文档 └── sensitive_word_frontend/ # 前端项目 ├── public/ # 静态资源 ├── src/ # 源码 │ ├── api/ # API调用封装 │ ├── router/ # 路由配置 │ ├── views/ # 页面组件 │ ├── App.vue # 根组件 │ └── main.js # 入口文件 ├── babel.config.js # Babel配置 ├── package.json # 依赖配置 └── vue.config.js # Vue CLI配置 ``` ## 安装部署 ### 后端部署 1. **进入后端目录** ```bash cd sensitive_word_backend ``` 2. **安装依赖** ```bash pip install -r requirements.txt ``` 3. **启动服务** ```bash # 开发环境 python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload # 生产环境 uvicorn app.main:app --host 0.0.0.0 --port 8000 ``` 4. **访问API文档** - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc ### 前端部署 1. **进入前端目录** ```bash cd sensitive_word_frontend ``` 2. **安装依赖** ```bash npm install ``` 3. **启动开发服务器** ```bash npm run serve ``` 4. **构建生产版本** ```bash npm run build ``` 5. **访问前端应用** - 开发环境: http://localhost:8080 - 生产环境: 部署构建后的dist目录到Web服务器 ## API接口 ### 1. 添加敏感词 ``` POST /api/sensitive-words/ ``` 请求体: ```json { "word": "敏感词" } ``` ### 2. 批量添加敏感词 ``` POST /api/sensitive-words/batch ``` 请求体: ```json { "words": ["敏感词1", "敏感词2"] } ``` ### 3. 检查文本是否包含敏感词 ``` GET /api/sensitive-words/check?text=这是一段包含敏感词的文本 ``` ### 4. 匹配文本中的敏感词 ``` POST /api/sensitive-words/match ``` 请求体: ```json { "text": "这是一段包含敏感词的文本" } ``` ### 5. 高亮文本中的敏感词 ``` POST /api/sensitive-words/highlight ``` 请求体: ```json { "text": "这是一段包含敏感词的文本", "tag": "span", "attrs": { "class": "sensitive", "style": "color: red" } } ``` ### 6. 过滤文本中的敏感词 ``` POST /api/sensitive-words/filter ``` 请求体: ```json { "text": "这是一段包含敏感词的文本", "replacement": "*" } ``` ## 前端功能说明 ### 1. 首页 - 展示系统功能介绍 - 提供功能导航 ### 2. 添加敏感词 - 支持单条添加敏感词 - 支持批量添加敏感词(换行分隔) ### 3. 检测敏感词 - 输入文本检测是否包含敏感词 - 显示敏感词位置和内容 - 支持查看敏感词上下文 ### 4. 过滤敏感词 - 输入文本和替换字符 - 显示过滤后的结果 - 支持对比原文和过滤结果 ### 5. 高亮敏感词 - 输入文本和HTML标签配置 - 预览高亮效果 - 支持复制HTML代码 ### 6. 算法设置 - 显示当前使用的算法(DFA) - 提供算法说明和特点 ## 使用说明 1. **启动后端服务** - 进入`sensitive_word_system`目录 - 运行`python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload` 2. **启动前端服务** - 进入`sensitive_word_frontend`目录 - 运行`npm run serve` 3. **访问应用** - 打开浏览器访问 http://localhost:8080 4. **添加敏感词** - 点击"添加敏感词"菜单 - 输入敏感词并提交 5. **检测敏感词** - 点击"检测敏感词"菜单 - 输入包含敏感词的文本 - 点击"检测"按钮查看结果 6. **过滤敏感词** - 点击"过滤敏感词"菜单 - 输入包含敏感词的文本 - 输入替换字符(如*) - 点击"过滤"按钮查看结果 7. **高亮敏感词** - 点击"高亮敏感词"菜单 - 输入包含敏感词的文本 - 配置HTML标签和属性 - 点击"高亮"按钮查看效果 ## 配置说明 ### 后端配置 - 敏感词库文件路径: `data/sensitive_words.txt` - API前缀: `/api/sensitive-words` - 默认端口: 8000 ### 前端配置 - API代理地址: `http://localhost:8000` - 开发端口: 8080 - 路由模式: hash ## 性能特点 - **DFA算法**: 匹配速度快,时间复杂度为O(n) - **内存占用**: 适中,适合大多数场景 - **实现简单**: 易于理解和维护 - **并发处理**: FastAPI支持异步处理,性能优秀 ## 扩展计划 - [ ] 支持敏感词分级管理 - [ ] 支持正则表达式匹配 - [ ] 支持敏感词同义词扩展 - [ ] 支持敏感词白名单功能 - [ ] 添加敏感词导入导出功能 - [ ] 增加数据统计和分析功能 ## 许可证 MIT License ## 贡献 欢迎提交Issue和Pull Request! ## 联系方式 如有问题或建议,欢迎通过以下方式联系: - 项目地址: https://github.com/yourusername/sensitive-word-system - 邮箱: your.email@example.com