Skip to content

Li-ym-cloud/RPGVectorSearchSystem

Repository files navigation

RPG 向量搜索系统

基于 FastAPI + Vue 的 RPG 文本向量搜索系统,采用 Spotify 风格设计。

Spotify Style FastAPI Vue FAISS

✨ 功能特性

  • 🎨 Spotify 风格界面 - 现代深色主题,绿色强调色
  • 🔍 语义搜索 - 使用 Sentence-BERT 进行文本向量化
  • 💾 FAISS 向量数据库 - Facebook 高性能向量搜索引擎
  • 📝 自动文本拆分 - 按行自动拆分输入文本
  • 🚀 RESTful API - 完整的 API 接口支持
  • 🛡️ 隐私保护 - 数据完全本地存储

🚀 快速开始

使用虚拟环境运行

# 激活虚拟环境
.venv\Scripts\activate

# 启动服务
python main.py

服务地址:http://localhost:8000

📋 界面预览

设计特点

  • 侧边导航栏 - 快速访问主要功能
  • 统计卡片 - 实时显示文本数量、向量维度、搜索次数
  • 搜索栏 - 顶部固定,随时搜索
  • 卡片式布局 - 清晰的内容分组
  • 悬停动画 - 流畅的交互体验

配色方案

颜色 用途
#1ed760 主强调色(Spotify Green)
#000000 背景色
#121212 卡片背景
#ffffff 主文本
#b3b3b3 次要文本

📖 API 使用

添加文本

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

🎯 API 接口

方法 路径 说明
GET / 前端界面
GET /api/stats 获取统计信息
POST /api/texts 批量添加文本
GET /api/texts 获取所有文本
DELETE /api/texts/{index} 删除指定文本
DELETE /api/texts 清空所有文本
POST /api/search 搜索相似文本
GET /api/docs API 文档

💡 使用示例

  1. 访问 http://localhost:8000
  2. 在顶部搜索栏或添加文本区域输入 RPG 文本
  3. 每行一条文本,系统自动拆分
  4. 在顶部搜索栏输入查询内容
  5. 查看相似度搜索结果

示例文本

勇士,欢迎来到这个世界!
国王需要你帮助他寻找失落的宝剑
在北方山脉中隐藏着古老的秘密
酒馆老板:要来杯麦酒吗?
神秘老人:传说中有把隐藏的宝剑...

🛠 技术栈

  • 后端: 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 应用逻辑

⚠️ 注意事项

  1. 首次运行 - 自动下载 Sentence-BERT 模型(约 500MB)
  2. 端口占用 - 如 8000 端口被占用,修改 main.py 中的端口号
  3. 虚拟环境 - 建议使用虚拟环境避免依赖冲突

🔧 故障排除

端口被占用:

netstat -ano | findstr :8000
taskkill /F /PID <进程 ID>

模型下载失败: 检查网络连接,或手动下载模型到本地缓存目录。

📄 许可证

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages