3.1 KiB
3.1 KiB
素材库系统 (Material Library)
Flask + SQLite + FTS5 全文检索 + DeepSeek/豆包大模型分析 的素材管理平台。
功能
1. 项目与素材管理
- 新建项目:名称、描述、类别、标签(逗号分隔)
- 修改项目:改类别/标签/描述/名称,增删素材
- 素材导入:
- 拖拽/点击批量上传文件:文本(txt/md/csv/json/xml/srt…) · 文档(pdf/docx/pptx) · 图片 · 视频 · 音频
- 直接粘贴文本素材
- 自动文本抽取:txt/md/pdf/docx/pptx 上传即抽取正文,图片提取分辨率/格式元数据
2. 大模型分析(DeepSeek + 豆包视觉)
- 素材级分析:一键分析单个或全部素材,提取
- 摘要 (summary) · 关键要点 (key_points) · 关键词 (keywords) · 推荐标签 (tags) · 建议归类 (category)
- 图片走豆包视觉模型生成"视觉描述",再让 DeepSeek 提炼关键信息
- 项目级摘要:汇总项目全部素材,生成项目报告(摘要/关键发现/项目级关键词/标签/类别)
- 后台线程执行 + 前端轮询进度
3. 索引与查询
- SQLite FTS5 全文索引(jieba 分词):素材名 + 抽取文本 + AI摘要 + 关键词 全部入库
- 站内搜索:项目匹配 + 素材匹配(带 AI 摘要预览)
- 分类 / 标签过滤
技术栈
- 后端:Flask 3 (Python 3.12, openclaw conda 环境)
- 存储:SQLite (WAL) + 文件系统 (data/uploads/)
- 检索:SQLite FTS5 + jieba
- LLM:DeepSeek
deepseek-v4-flash(结构化 JSON 分析)+ 豆包doubao-seed-evolving(图片视觉描述)
快速开始
./start.sh # 启动 (默认 16091)
./start.sh stop # 停止
./start.sh restart # 重启
# 访问 http://<IP>:16091/
目录结构
material-library/
├── app.py # Flask 主程序(路由/抽取/LLM/FTS/后台任务)
├── start.sh # 启停脚本 (PID 管理)
├── static/index.html # 前端单页应用
└── data/
├── material.db # SQLite 数据库
├── uploads/ # 上传的素材文件
└── shots/ # 界面截图
数据库表
projects— 项目(名称/描述/类别/标签)materials— 素材(类型/文件/抽取文本/状态)analyses— 分析结果(素材级 + 项目级,JSON 字段)materials_fts— FTS5 全文索引
API 一览
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/projects?q=&category=&tag= |
项目列表 |
| POST/PUT/DELETE | /api/projects[/<id>] |
项目增改删 |
| GET | /api/projects/<id> |
项目详情(含素材+分析) |
| POST | /api/projects/<id>/materials/upload |
批量上传文件 |
| POST | /api/projects/<id>/materials |
新增文本素材 |
| GET/PUT/DELETE | /api/materials/<id> |
素材详情/改名/删除 |
| POST | /api/materials/<id>/analyze |
分析单个素材 |
| POST | /api/projects/<id>/analyze |
分析项目全部素材 |
| POST | /api/projects/<id>/summary |
生成项目摘要 |
| GET | /api/search?q= |
全文搜索 |
| GET | /api/meta |
统计/分类/标签 |
| GET | /files/<id> |
素材下载/预览 |