Skip to content

clh021/secure-vec

Repository files navigation

secure-vec

基于向量数据库的本地文本权限检索系统。

当前仓库已落地第一阶段可运行实现,优先面向命令行交付,同时保留后续平滑改造成 HTTP 接口供 Web 页面调用的边界设计。

当前实现

  • Python + Typer + SQLite + Qdrant + Ollama
  • 权限过滤在向量检索请求阶段下推到 Qdrant
  • 支持用户、角色、角色继承、文档导入、ACL 动态修改、按用户受控检索
  • CLI 已覆盖文档中要求的完整命令体系

快速开始

  1. 启动 Qdrant:
docker pull docker.1ms.run/qdrant/qdrant:v1.15.5
docker compose up -d qdrant
  1. 设置环境变量:
cp .env.example .env
export SECURE_VEC_OLLAMA_URL=http://192.168.2.238:11434
export SECURE_VEC_EMBED_MODEL=nomic-embed-text-v2-moe:latest
  1. 初始化:
python3 -m secure_vec init
  1. 最小闭环示例:
python3 -m secure_vec role create --name staff --level 10
python3 -m secure_vec role create --name manager --level 30
python3 -m secure_vec role inherit --parent manager --child staff
python3 -m secure_vec user create --username alice
python3 -m secure_vec user grant-role --username alice --role manager
python3 -m secure_vec doc import --doc-id spec-001 --path ./docs/00.md --title "原始需求" --level 20
python3 -m secure_vec doc grant-role --doc-id spec-001 --role manager
python3 -m secure_vec search --username alice --query "权限过滤" --with-acl-hit
  1. 运行测试:
pytest -q

HTTP 与 Swagger

启动 HTTP 服务:

export SECURE_VEC_API_KEY=change-me
secure-vec-api

一键启动完整服务:

scripts/start_service.sh

允许局域网访问:

scripts/start_service.sh --lan

该脚本会默认完成以下动作:

  • 启动 docker compose 中的 qdrant
  • 等待 qdrant 就绪
  • 导出 HTTP/Web 所需环境变量
  • 启动 FastAPI 服务,直接可访问 /web

如果加上 --lan,服务会绑定到 0.0.0.0,脚本会同时打印本机局域网访问地址。

常用覆盖变量:

SECURE_VEC_OLLAMA_URL=http://<your-ollama>:11434 \
SECURE_VEC_EMBED_MODEL=nomic-embed-text-v2-moe:latest \
SECURE_VEC_API_KEY=change-me \
scripts/start_service.sh

默认地址:

  • Business Workbench: http://127.0.0.1:8000/app
  • Web Console: http://127.0.0.1:8000/web
  • Swagger UI: http://127.0.0.1:8000/swagger
  • OpenAPI JSON: http://127.0.0.1:8000/openapi.json

相关文档:

文档入口:

当前建议:

  • 第一阶段采用 CLI + Python + Qdrant + SQLite + Ollama Embeddings
  • 第二阶段在不改核心业务层的前提下增加 FastAPI 适配层
  • 当前 HTTP 交付已补充 Web 控制台,可直接以页面操作方式完成验收
  • 当前同时提供 /app 业务工作台,支持超级用户切换视角、在线文本建库、ACL 配置与搜索验证

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors