# pasteKnow **Repository Path**: leguandejiangui/paste-know ## Basic Information - **Project Name**: pasteKnow - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-21 - **Last Updated**: 2026-07-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 碎片记忆 碎片记忆是一个个人 RAG 知识库工具。界面使用 PySide6,截图 OCR 使用 RapidOCR,向量检索使用 faiss-cpu,embedding 默认使用 sentence-transformers 加载轻量中文模型 `BAAI/bge-small-zh-v1.5`。 ## 功能 - 小卡片记事本式悬浮窗口,常驻最上层,位置可自由拖拽并自动记忆。 - 粘贴截图/文本后先解析到面板中,确认后按 Enter 保存,Ctrl+Enter 换行。 - 支持按钮选择或直接拖拽导入 `.txt`、`.md`、`.markdown`、`.docx`、`.doc` 文件。 - 入库文本会做清洗和中文语义切块,再写入 faiss chunk 级向量索引。 - 可呼出的聊天小窗,先本地检索知识片段,再调用配置的线上大模型 API。 - 没有配置线上 API 时,聊天窗口仍可作为本地 bge/faiss 语义检索窗口使用。 - 可配置短期记忆轮数;长期记忆可开启自动总结,达到阈值后只把摘要写入知识库,不保存全量聊天 JSON。 - 可配置入库前用大模型整理 OCR/文档内容,再写入长期知识库。 - 设置页支持 OpenAI 兼容、DeepSeek、通义千问/百炼、智谱、Moonshot、豆包和自定义供应商。 - 管理页面查看全部条目,支持多选、全选、批量删除、JSON 导入/导出和清空,并显示切块数量。 - 管理页面按 F5 刷新,内容列悬停可查看完整文本。 - 所有原文、向量索引和设置默认保存在 `%LOCALAPPDATA%\paste-know`;备份时直接复制该目录。首次升级后会自动迁移旧的 `%LOCALAPPDATA%\碎片记忆` 或程序同级 `data` 目录,旧目录会保留。 - 知识库原文、OCR、embedding 和 faiss 检索都在本地;聊天生成会把用户问题和召回片段发送到你在设置页配置的线上 API。 - 聊天窗口输入问题后按 Enter 发送,Ctrl+Enter 换行。 - 设置页里的“入库前用大模型整理内容”和“长期记忆总结”只有在 API 配置完整时生效;未配置 API 时仍按本地原文入库和本地检索运行。 - `.docx` 通过 python-docx 读取;老式 `.doc` 在 Windows 上需要本机安装 Microsoft Word 和 pywin32,推荐另存为 `.docx` 后导入。 - 首次加载默认 embedding 模型时,sentence-transformers 可能需要下载模型;离线使用请提前把模型放到 `data/models/embedding`,或设置 `PASTEKNOW_MODEL_DIR` 指向本地模型目录。 ## 环境初始化 运行环境:Windows,Python 3.10 或更高版本。建议在项目目录中使用虚拟环境,避免影响系统中已安装的 Python 包: ```powershell # 进入项目目录 cd D:\program\github\paste-know # 创建并激活虚拟环境(首次执行即可) python -m venv .venv .\.venv\Scripts\activate # 安装项目依赖 python -m pip install --upgrade pip pip install -r requirements.txt ``` 初始化完成后,每次重新打开终端时只需再次激活环境: ```powershell .\.venv\Scripts\activate ``` 首次启动程序时需要保持联网,以便下载默认的中文 embedding 模型 `BAAI/bge-small-zh-v1.5`。如需离线使用,请提前将模型放到 `data/models/embedding`,或设置 `PASTEKNOW_MODEL_DIR` 指向本地模型目录。 ## 启动程序 ```powershell python pasteknow.py ``` ## EXE 打包 可按分发和启动速度选择两种方式: - **单文件版(`--onefile`)**:便于分发,只有一个 EXE;但每次启动都需要解压依赖,包含离线模型时启动较慢。 - **目录版(`--onedir`)**:生成一个目录和其中的 EXE;文件较多,但无需每次完整解压,启动更快,推荐日常使用。 ### 下载离线模型(可选) 若希望生成的 EXE 在没有网络时也能使用,请先把模型下载到项目目录。不要只依赖 Hugging Face 的用户缓存目录,因为 PyInstaller 不会自动将缓存打包进去: ```powershell # 下载模型到项目目录 .\.venv\Scripts\hf.exe download BAAI/bge-small-zh-v1.5 --local-dir .\data\models\embedding # 确认模型文件已下载,例如应包含 modules.json、config.json 等文件 Get-ChildItem .\data\models\embedding ``` 确认 `data\models\embedding` 存在后,可选择以下任一种离线打包方式。 ### 方式一:单文件离线版 ```powershell pyinstaller --noconfirm --clean --onefile --windowed --name 碎片记忆 --add-data "data\models\embedding;data\models\embedding" --collect-all PySide6 --collect-all rapidocr --collect-all rapidocr_onnxruntime --collect-all sentence_transformers --collect-all transformers --collect-all tokenizers --collect-all huggingface_hub --collect-all safetensors --collect-all faiss pasteknow.py ``` 生成文件为 `dist\碎片记忆.exe`。适合复制给其他人,但离线模型和依赖会在每次启动时解压。 ### 方式二:目录离线版(推荐) ```powershell pyinstaller --noconfirm --clean --onedir --windowed --name 碎片记忆 --add-data "data\models\embedding;data\models\embedding" --collect-all PySide6 --collect-all rapidocr --collect-all rapidocr_onnxruntime --collect-all sentence_transformers --collect-all transformers --collect-all tokenizers --collect-all huggingface_hub --collect-all safetensors --collect-all faiss pasteknow.py ``` 生成目录为 `dist\碎片记忆\`,从其中运行 `碎片记忆.exe`。推荐在本机长期使用。 如果不需要离线模型,删除命令中的 `--add-data "data\models\embedding;data\models\embedding"` 即可;首次运行时程序会联网下载 embedding 模型。 无论选择哪种方式,运行后的知识原文、faiss 索引和设置都保存在 `%LOCALAPPDATA%\paste-know`,不会跟随 EXE 所在目录变化。