基于 FastAPI + Vue 的 RPG 文本向量搜索系统,采用 Spotify 风格设计。
- 🎨 Spotify 风格界面 - 现代深色主题,绿色强调色
- 🔍 语义搜索 - 使用 Sentence-BERT 进行文本向量化
- 💾 FAISS 向量数据库 - Facebook 高性能向量搜索引擎
- 📝 自动文本拆分 - 按行自动拆分输入文本
- 🚀 RESTful API - 完整的 API 接口支持
- 🛡️ 隐私保护 - 数据完全本地存储
# 激活虚拟环境
.venv\Scripts\activate
# 启动服务
python main.py- 侧边导航栏 - 快速访问主要功能
- 统计卡片 - 实时显示文本数量、向量维度、搜索次数
- 搜索栏 - 顶部固定,随时搜索
- 卡片式布局 - 清晰的内容分组
- 悬停动画 - 流畅的交互体验
| 颜色 | 用途 |
|---|---|
#1ed760 |
主强调色(Spotify Green) |
#000000 |
背景色 |
#121212 |
卡片背景 |
#ffffff |
主文本 |
#b3b3b3 |
次要文本 |
curl -X POST http://localhost:8000/api/texts \
-H "Content-Type: application/json" \
-d '{"texts": [{"text": "勇士,欢迎来到这个世界!"}]}'curl -X POST http://localhost:8000/api/search \
-H "Content-Type: application/json" \
-d '{"query": "欢迎新手", "top_k": 5}'curl http://localhost:8000/api/stats| 方法 | 路径 | 说明 |
|---|---|---|
| GET | / |
前端界面 |
| GET | /api/stats |
获取统计信息 |
| POST | /api/texts |
批量添加文本 |
| GET | /api/texts |
获取所有文本 |
| DELETE | /api/texts/{index} |
删除指定文本 |
| DELETE | /api/texts |
清空所有文本 |
| POST | /api/search |
搜索相似文本 |
| GET | /api/docs |
API 文档 |
- 访问 http://localhost:8000
- 在顶部搜索栏或添加文本区域输入 RPG 文本
- 每行一条文本,系统自动拆分
- 在顶部搜索栏输入查询内容
- 查看相似度搜索结果
勇士,欢迎来到这个世界!
国王需要你帮助他寻找失落的宝剑
在北方山脉中隐藏着古老的秘密
酒馆老板:要来杯麦酒吗?
神秘老人:传说中有把隐藏的宝剑...
- 后端: FastAPI, uvicorn
- 向量数据库: FAISS (Facebook AI Similarity Search)
- 向量化: Sentence-BERT (paraphrase-multilingual-MiniLM-L12-v2)
- 前端: Vue 3, Spotify 风格设计
RPGVectorSearchSystem/
├── main.py # FastAPI 后端服务
├── vector_store.py # 向量存储核心
├── requirements.txt # Python 依赖
├── README.md # 项目文档
└── frontend/dist/
├── index.html # 主页面 (Spotify 风格)
└── assets/
├── style.css # Spotify 风格样式
└── app.js # Vue 应用逻辑
- 首次运行 - 自动下载 Sentence-BERT 模型(约 500MB)
- 端口占用 - 如 8000 端口被占用,修改
main.py中的端口号 - 虚拟环境 - 建议使用虚拟环境避免依赖冲突
端口被占用:
netstat -ano | findstr :8000
taskkill /F /PID <进程 ID>模型下载失败: 检查网络连接,或手动下载模型到本地缓存目录。
MIT License