# rag **Repository Path**: wanquan9527/rag ## Basic Information - **Project Name**: rag - **Description**: 极简文件级 RAG CLI 工具 - 单二进制,零 CGO,纯 Go 实现 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-22 - **Last Updated**: 2026-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # rag — 极简文件级 RAG CLI 工具 单二进制 RAG CLI 工具。纯 Go 实现,零 CGO 依赖。 ## 快速开始 ```bash # 构建 go build -o rag ./cmd/rag # 初始化项目知识库 rag init /path/to/project # 全量扫描索引文档 rag scan /path/to/project # 查看知识库状态 rag status /path/to/project # 进入交互式 REPL(支持自然语言查询) rag /path/to/project # 单次问答 rag query "你的问题" # 常驻监听文件变更 rag watch /path/to/project ``` ## REPL 命令 | 命令 | 描述 | |------|------| | `/scan` | 全量扫描索引 | | `/watch` | 启动常驻监听 | | `/status` | 知识库统计 | | `/config` | 查看当前配置 | | `/config set ` | 修改配置(如 `llm.model gpt-4o`)| | `/vacuum` | 物理清理已删除数据 | | `/help` | 显示帮助 | | `/exit` | 退出 | | `!` | 执行终端命令 | | `<自然语言>` | 执行 RAG 问答 | ## 架构 详见 [DESIGN.md](DESIGN.md)。 ``` rag init → 创建 .rag/ 目录 + config.json + SQLite 数据库 rag scan → 遍历文件 → 指纹比对 → 解析 → 分块 → Embed → 存储 rag → REPL: 自然语言 → Embed → 向量搜索 → LLM 流式回答 rag watch → fsnotify 监听 + 30min 兜底扫描 ``` ## 注意事项 - **防并发:** rag 通过文件锁 `.rag/lock` 防止同一知识库被多个进程同时写入 - **大文件:** 默认跳过超过 50MB 的文件(可通过 `config set chunk.max_file_size_mb` 调整) - **网络依赖:** Embedding 和 LLM 需要远程 API(默认 OpenAI),无网络时 scan 会超时 - **免网络模式:** 可使用 Ollama 本地部署(`/config set embedding.provider ollama`)