# RAG示例(Sqlite) **Repository Path**: jian3596/rag_demo_sqlite ## Basic Information - **Project Name**: RAG示例(Sqlite) - **Description**: RAG示例(Sqlite):一个基于Sqlite的检索增强生成(RAG)示例项目,展示如何结合数据库和自然语言处理技术,实现高效的信息检索与生成。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-05 - **Last Updated**: 2026-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SQLite Vec Demo 一个基于 Flask + DashScope(Qwen) + SQLite 的轻量 RAG Demo。 支持: - 上传 Markdown 文档并切分入库(向量化) - 基于向量相似度检索 Top N - 将检索结果拼接到 `prompt/output.txt` 后调用 Qwen 生成最终回答 ## 目录结构 ```text . ├─ app.py # Flask 入口(路由) ├─ templates/ │ └─ index.html # 前端页面 ├─ src/ │ ├─ settings.py # 默认配置 & 配置加载 │ ├─ web_utils.py # Web 侧参数解析 │ ├─ vector_store.py # 切分、入库、检索 │ ├─ qwen_client.py # Embedding / Chat 调用 │ └─ prompting.py # Prompt 读取与拼接 ├─ prompt/ │ ├─ input.txt │ └─ output.txt # “结果输出”使用的提示词模板 ├─ API.config # 本地配置(已在 .gitignore 忽略) └─ demo_vec.db # SQLite 向量库(默认) ``` ## 环境要求 - Python >= 3.12 - `uv`(推荐)或 `pip` ## 安装依赖 ```bash uv sync ``` ## 配置 API 在项目根目录创建/编辑 `API.config`: ```json { "dashscope": { "api_key": "sk-xxxxx", "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1", "embedding_model": "text-embedding-v4", "chat_model": "qwen-plus", "embedding_batch_size": 10 } } ``` 说明: - `embedding_batch_size` 建议不超过 10(`text-embedding-v4` 接口限制)。 - 也可在页面输入 API Key,页面输入优先于配置文件。 ## 启动方式 ```bash uv run flask --app app run --debug ``` 浏览器访问: ```text http://127.0.0.1:5000 ``` ## 使用流程 1. 打开“数据库录入”区域,填写参数并上传 `.md` 文件(支持多文件)。 2. 点击“开始录入”,文档会切分、Embedding 并写入 `demo_vec.db`。 3. 在“数据库检索”输入问题,设置 `Top N`,点击“开始检索”。 4. 点击“结果输出”,系统会: - 读取 `prompt/output.txt` - 拼接: - `问题:<用户检索内容>` - `检索结果:<所有 rank 内容>` - 调用 Qwen Chat 生成最终回答并弹窗展示 ## 默认参数建议 - `batch_size`: 10 - `chunk_size`: 800 - `overlap`: 120 ## 注意事项 - `API.config`、`resource/` 已在 `.gitignore` 中忽略,避免密钥和私有文档泄露。 - 请不要将真实 API Key 提交到代码仓库。