Skip to content

Repository files navigation

🧩 PromptSprite(提示精灵)

AI 提示词管理工具 —— 把杂乱无章的 Prompt 文档,变成 五级分类书架 + 极速检索 + 一键复制 + 回收站(可恢复)+ 每日变更包 + 导入导出安全防护 的本地神器。

Platform Version Python UI License Data

双击 PromptSprite_<打包日期YYMMDD>_V<版本号>.exe 即可使用(当前源码版本 V2.3.0;已发布产物以 Releases 页最新标注为准)。

📁 请把它放在一个稳定、可写、不会被误删的文件夹(不要放桌面或"下载"文件夹),数据就存在 EXE 同目录的 data/——换文件夹/换电脑时,把整个 data 文件夹一起复制过去即可。 🔐 数据 100% 存在本机(明文 SQLite,不含加密,如有隐私需求建议配合 BitLocker 等系统级磁盘加密);只有你在向导里主动使用「从网址获取」、或在标签页面使用「热点词更新」时才会联网(只读抓取你填写的网址,不写盘、不留登录态),其余功能全程离线。 📖 首次使用请先读 《软件安装使用说明书 V13》

  • 源码:git clone https://github.com/yihufree/PromptSprite.git
  • 仅供学习与个人使用(MIT License,见 LICENSE)。

✨ 功能特性

特性 说明
① 五级分类书架 项目类别 → 根目录 → 一级分类 → 二级分类 → 条目;项目类别预置 5 项,根目录/分类可跨项目"复制到 / 移动到"(重名自动加序号)
② 9 字段详情 + 自定义字段 ①名称…⑩图像方案;自定义字段可增/删/改名/排序/改类型(11 种类型各有专用控件:列表框、日期、是·否、附件、短音频试听、图像缩略预览…);区块顺序可自由调整、可逐个隐藏(① 名称固定显示)
③ 条目图集 详情区"封面 + 图集":本地图 / 外链图双源、可排序、可「下载到本地」
④ 条目多位置 关联到(一处编辑各位置同步)/ 复制到(独立副本)/ 移动到(可勾"整体转移");详情区"🧭 位置"面包屑可逐处解除
⑤ 一键复制 复制全部 / 复制中文 / 复制英文;任一分级分类都可持有并显示本级条目,可就地"+ 新增条目"
⑥ 收藏与搜索 ⭐常用入口;全局搜索匹配全部文本字段;输入防抖(停顿约 1.5 秒才查,点 🔍 或回车立即搜);Ctrl+Shift+P 唤出聚焦搜索(热键可在设置中自定义);#标签 / #无标签(别名 #none)可搜索
⑦ 标签系统 详情区「🏷 标签」输入即补全 / 回车新建 / ×移除;标签页面=标签云 ⇄ 列表+计数双呈现、且/或组合过滤、重命名/合并/删除/清理未使用
⑧ 智能标签与批量打标 出厂词表(809 个标签 / 21 个领域包)+ 打标三源优先级;批量智能自动打标可对「无标签」或「全部」条目批量打标(强制先备份 + 必须先预演 + 二次确认,执行后可精确撤销
⑨ 词表 / 热点词 / 自动取词 标签页面页签或设置内入口:导出 / 导入(替换)/ ➕ 增量导入(只增不删) / 恢复出厂;热点词逐条添加、文本导入、来源网址抓取;智能自动取词词库自动沉淀词表外新词,达阈值升热点词或提示并入词表
⑩ 多格式导入导出 JSON(当前 v6,兼容 v2~v5;含项目归属、删除清单、稳定 ID(uuid)多位置清单(locations))/ Excel(含 uuid 列)/ HTML / MD(进度条);导入按内容自动去重,批量事务导入
⑪ 导出范围可选 菜单「导出全部」一键全库;「导出当前分类」支持 项目类别 / 根目录 / 一级·二级分类 三种分支 —— 导出前弹整库结构树确认框,把已选分支及其全部下属加重显示并给出将导出的条目数,确认后才导出
⑫ 删除保护与批量删除 单条删除 → 回收站(可恢复);删除分类三级保护(有子分类须先处理,级联须手输确认短语);🧹 批量删除本分支全部数据:影响统计 → 手输确认短语 → 选「软删除(进回收站)/ 硬删除」→(删「项目类别」另需手输名称 + 专用口令 123456)→ 自动双重备份(全量库快照 + 分支 JSON,失败即中止)→ 执行;共享分类只解除关联、不误删,条目仅在其全部位置都在范围内时才删除本体
⑬ 自动全量备份 每次启动自动全量备份 prompts_YYYY-MM-DD_*.db按天去重 + 默认保留 30 份(可设置);只清理标准命名文件,手动快照永不清理;失败状态栏黄点警告
⑭ 每日变更包 每次关闭自动生成"当日全部变更"同步包:变更包_{电脑代号}_{日期}_add{N}_del{M}.jsonJSON v6,兼容 v2 起全部旧格式;同日仅一份、保留天数可设);条目与删除项均带稳定 ID ⇒ 换机按 uuid 精确同步("修改"=更新同一条、删除不误伤同内容条目);可换机合并导入、可导出 Excel/HTML 浏览
⑮ 导入安全防护 含删除清单的包一律走导入向导:先预览(来源电脑/日期、新增/修改/删除计数、落后同步红字提示)→ 二维选择(是否合并新增修改;删除清单:忽略 / 正常应用(须输"确认删除")/ ⑤ 逆向恢复(须输"恢复删除"));导入前自动快照prompts_preimport_*.db,可一键回滚);被删条目先进回收站、保留图片
⑯ 数据比对 导入菜单「数据比对…(与备份 *.db)」:只读打开历史备份与当前库对比(项目类别/根目录/分类/条目差异概览 + 明细),可导出 HTML 报告;"内容已修改"优先按稳定 ID 配对(改名又改内容也能准确识别)
⑰ 网上资源结构化向导 粘贴文本 / 本地文件(CSV·TSV·TXT·HTML·MD)/ 网址获取(网页、GitHub 文件、GitHub 目录批量)→ 四层映射 → 字段映射(含自定义字段与标签)→ 树预览与判重统计 → 质量自检面板先存数据文件、再导入
⑱ 界面与设置 工具栏 11 项功能按钮 + 搜索框;🗂 目录隐藏/显示可任选隐藏各分类列(窗口最小宽度动态化);✏️ 编辑 / 👁 浏览切换(浏览态只读防误改);设置 6 页分页:界面 / 外观 / 数据与备份 / 字段 / 标签与词表 / 关于(含版本、库数据统计、功能与使用说明、可点击的开源仓库链接)
⑲ 老库迁移 旧版数据自动升级(结构迁移 + 归属分配):迁移向导人工核对映射、未命中弹窗选择、未回答兜底"未明确分类"
⑳ 一键打包 python build.py 自动生成单文件 EXE(内嵌最新完整库)

🆕 版本记录(摘要)

版本 日期 要点
V2.3.0 2026-09-22 导出范围确认框(结构树 + 加重显示);批量删除本分支全部数据(多道确认 + 双重备份 + 软/硬删除 + 共享分类保护);推荐标签不再受"字段隐藏"影响;结构化向导手输名称不再丢失;详情区重复刷新修复;「关于」页精简重写并补记批量删除口令。库结构仍 schema v5 / 导出格式仍 JSON v6
V2.2.0 2026-09-17 条目稳定 ID(uuid):库结构升 schema v5、导出格式升 JSON v6;变更包按 uuid 精确同步、多位置往返保真
V2.1.0 2026-09-14 ~ 16 智能标签体系与批量打标、出厂词表、条目图集、结构化向导、联网抓取、详情区区块排序与隐藏、智能自动取词词库、设置增至 6 页
V2.0.0 2026-09-14 标签系统与标签页面、条目图集、自定义字段与 11 种类型控件、列表框三类数据源
V1.9.0 2026-09-12 详情区浮动提示窗重构与「💬 浮动提示」总开关
V1.8.0 2026-09-10 工具栏重排、目录隐藏/显示、编辑·浏览切换、搜索防抖、条目名称一览浮层
V1.7.0 2026-09-09 每日变更包、变更包导入向导、导入前快照、数据比对、导入性能优化
V1.6.0 / V1.5.0 及更早 ≤ 2026-09-07 四层分类、增量备份、全局热键与托盘、多格式导入导出等基础能力

更详细的历史修订说明:见仓库 docs/ 下各版本文档与 2026xxxx_PromptSprite_0N_开发工作记录.md

📊 内置数据(内置精简模板)

  • 打包版内嵌打包时的最新完整库app/resources/builtin_prompts.db),首次运行若无 data/prompts.db 自动复制建库(已有数据绝不覆盖);源码开发版首次启动自动导入"内置手册"。
  • 内置精简模板以"网上资源收集"示例数据为主体(条目数/分类数以打包时的实际库为准),个人/梳理类目录留空,开箱即可上手;内置库已预置标签(实测 593 个标签 / 6574 条关联,以你的实际库为准),打开标签页面即可看到。
  • 内置内容版本升级时以"非破坏性合并"更新(分类按名复用、条目按名 upsert),不覆盖、不清空任何用户数据。
  • 示例数据来源致谢:moosl/awesome-gpt-image-2-prompts、davidwuw0811-boop、ZeroLu/awesome-gpt-image、whataicc/aiprompt 等(条目均已标注 origin 溯源字段)。

🖥️ 界面速览

┌──────────────────────────────────────────────────────────────────────────────┐
│ 🧩PromptSprite │🔒锁定│🗂目录隐藏│📂无类条目│🏷无标条目│⭐常用│🏷标签│✚新建│⇩导入│⇧导出│⚙设置│[搜索 🔍]│
├────────┬────────┬────────┬────────┬─────────────────────────────────────────┤
│ 项目类别│ 根目录 │ 一级   │ 二级   │ 条目(卡片/列表) | 详情(可编辑)            │
│ 日常学习│ 视频   │ 人物   │ 人像   │ ☆收藏 ➜移动到 ↔关联到 ⧉复制到  ✏️编辑/👁浏览│
│ 网上资源│ 海外AI │ Portrait│ Street │ 电影风格人像    | ①~⑩字段 重置/💾保存    │
│ …      │ …     │ …     │ …     │ …              | [🗂]… 🕒新增历史 ♻回收站 🗑删除 │
└────────┴────────┴────────┴────────┴─────────────────────────────────────────┘
│ 底部状态栏:按悬停层级动态统计条目/分类数                                     │
└──────────────────────────────────────────────────────────────────────────────┘

🚀 快速开始

方式一:直接使用(普通用户)

  1. GitHub Releases 下载 PromptSprite_<打包日期YYMMDD>_V<版本号>.exe以 Releases 页最新标注为准);
  2. 放到一个你记得住、不会被误删的文件夹不要放桌面或"下载"文件夹),双击运行(首次自动建库并导入内置数据;数据保存在 EXE 同目录 data/ 下);换文件夹时请把原来的 data 文件夹一起复制过去
  3. 详细图文说明见 《软件安装使用说明书 V13》

方式二:源码运行(开发者)

# 1. 克隆仓库
git clone https://github.com/yihufree/PromptSprite.git
cd PromptSprite

# 2. 创建虚拟环境并安装依赖(Python 3.12,兼容 3.10+)
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt

# 3. 启动(以下三种方式等价)
python app/main.py            # 直接运行主文件(推荐)
python run.py                 # 根目录启动器
python -m app.main --smoke    # 冒烟测试:5 秒后自动退出

运行依赖:customtkinter / Pillow / pyperclip / openpyxl / keyboard / pystray(见 requirements.txt)。

📦 打包发布

python build.py           # 一键打包(自动装依赖/生成图标/内嵌最新完整库/PyInstaller 单 EXE/校验)

产物自动按 PromptSprite_<打包日期YYMMDD>_V<版本号>.exe 命名(当前版本号 2.3.0,即 ..._V2.3.0.exe体积与 SHA256 随每次构建而变)。详见 《打包发布指南 V12》

V2.1.0 ~ V2.3.0 三批增强均未新增任何第三方依赖(智能标签 / 批量打标 / 词表 / 热点词 / 自动取词 / 条目稳定 ID / 导出范围确认 / 批量删除均用标准库),因此打包流程与 spec 无需改动⚠️ 打包脚本含硬门禁:第 4.5 步会用 clean_builtin_meta.py 清理并复核内嵌库的"运行态 meta"(含开发机计算机名等),任一步失败会直接终止打包

🧱 项目目录结构(精简版)

PromptSprite/
├── app/                          # 主程序包
│   ├── main.py                   # 程序入口:启动静默备份→建库→内置库/迁移向导→热键/托盘
│   ├── config.py                 # 全局常量:版本、目录、备份/变更包策略、meta 键、仓库地址
│   ├── database.py               # SQLite 数据层(schema v5):projects/domains/categories/entries/meta/
│   │                             #   entry_links/deletion_log(payload)/trash(回收站)/field_defs/
│   │                             #   entry_field_values/entry_ref_links/tags/entry_tags/entry_images
│   ├── backup.py                 # 启动自动全量备份 + 导入前快照 preimport / 打标前快照 pretag /
│   │                             #   批量删除前快照 predel(独立前缀、不按天去重、各自清理)
│   ├── tagger*.py                # 出厂词表 tagger_dict / 词表存取 tagger / 打标引擎 tagger_engine /
│   │                             #   批次与精确撤销 tagger_batch
│   ├── incremental_backup.py     # 每日"变更包"(JSON v6、uuid、携带被删快照可选、逆向恢复)
│   ├── hotkey.py                 # 全局热键(可配置)+ 系统托盘
│   ├── self_test.py / gui_self_test.py   # 自测入口(数据层模块 + GUI 全量回归)
│   ├── parser/                   # md_parser / json_io(v6,兼容 v2~v5) / excel_io(含 uuid 列)/
│   │                             #   html_export / hierarchy_import(结构化+质量自检)/ fetcher(联网抓取)
│   ├── ui/                       # main_window(主界面)/ export_scope_dialog(导出范围确认)/
│   │                             #   change_import_dialog / compare_dialog / history_dialog /
│   │                             #   field_manager_dialog / import_wizard_dialog / github_batch_dialog /
│   │                             #   quick_add / copy_move_dialog / move_selector / migrate_dialog /
│   │                             #   project_chooser / progress_dialog / settings_dialog
│   └── resources/                # builtin_manual.md(内置手册)+ builtin_prompts.db(打包时内嵌)
├── docs/                         # 需求规格 / 审核报告 / 说明书 / 打包指南 / 施工方案 / 设计文档
├── Icons/PSicon.png              # 应用图标源
├── build.py / run.py / requirements.txt
├── clean_builtin_meta.py         # 打包门禁:出厂库"运行态 meta"清理/复核(build.py 第 4.5 步调用)
├── clean_junk_tags.py / tag_builtin.py   # 工具:清理垃圾标签 / 给内置库批量预置标签
├── data/                         # 运行时生成(不入库):prompts.db、backup/、backup/incremental/、images/
├── *.json / *.xlsx               # 数据资产示例文件(可直接导入)
├── 2026xxxx_PromptSprite_0N_开发工作记录.md / Dev_Work_Log/   # 开发记录(按编号追加,勿覆盖删除)
└── LICENSE / README.md / .gitignore

🗄️ 数据与隐私

  • 100% 本地:单文件 SQLite 数据库 data/prompts.db;打包态为 EXE 同目录 data/,开发态为项目根 data/。软件不上传、不收集任何数据;唯一的联网行为是你在结构化向导里主动使用「从网址获取」(或标签页面「热点词更新」)时按你填写的网址做只读抓取(不写盘源文件、不留登录态、不后台访问、不做站内遍历)。
  • 图片与备份:条目关联图片存 data/images/;自动全量备份、导入前 / 打标前 / 批量删除前快照存 data/backup/;每日变更包存 data/backup/incremental/
  • 数据模型:项目类别/根目录/一级/二级/条目五级;分类为全局共享树(删除根目录仅解除关联);trash 表保存被删完整快照(可恢复);旧库启动自动迁移(幂等,迁移前自动备份)。
  • 批量删除口令:删除「项目类别」整枝时需输入专用口令 123456(公开默认口令,仅作"多一道手工关卡";真正的数据兜底是双重自动备份 + 回收站)。软件内 设置 → 关于 → 「查看完整说明」 中亦有记载。
  • 隐私提醒:变更包可能包含条目内容与删除清单;"携带被删快照"默认关闭,分发/导入前请先查看摘要确认(纯删除包会有红字警告)。

📚 文档索引

⚠️ 索引维护说明:本表只列出仓库中实际存在的文件(2026-09-22 核对)。若某个链接打不开,说明该版本未随仓库分发,请以同类的最新版为准。

文档 说明
软件安装使用说明书(V13) ★ 面向普通用户的完整安装与使用指南(当前版 V2.3.0):小白向,含工具栏逐个说明、6 页设置、标签体系、批量打标、批量删除、数据多重保障、变更包换机、FAQ、已知限制
打包发布指南(V12) ★ 源码打包 EXE 与 GitHub Releases 发布全流程(含 build.py 步骤与硬门禁、spec 核对、产物自检清单、FAQ)
项目需求规格和开发计划书(V10) ★ 需求规格(FR/DR/UR/NFR)+ 开发计划:验收标准、开发批次、"明确不做"清单
项目审核和修改建议报告(V10) ★ 全量只读审核结论(2026-09-17):实测基线、六维审核、分级处置清单
条目稳定 ID 改造施工方案(V1) V2.2.0 的库结构/格式变更施工方案
项目结构与文档体系说明 目录结构、模块职责与文档体系
上一版说明书(V12) / (V11) 保留存档:分别对应 V2.2.0 / V2.1.0
上一版打包指南(V11) / (V10) 保留存档
上一版需求规格(V9) 保留存档
智能标签可行性研究报告(V3) / 标签词表草案(V1) / 预置标签预演报告(V1) 词表与预置标签的过程文档
数据库批量打标方法 批量打标的命令行方法(tag_builtin.py
T2 联网抓取施工计划报告(V2) / 下一阶段施工报告(V2) V2.0.0 / 09-15~16 增强的施工方案
开发工作记录(按编号续写) 根目录 2026xxxx_PromptSprite_0N_开发工作记录.mdDev_Work_Log/ 下的开发记录(只追加、不覆盖

更早的历史版本与过程文档见 docs/Dev_Work_Log/ 目录。

🤝 参与贡献 / Issue / PR

  1. 报告问题(Issue):建议先在 GitHub Issues 搜索是否已有同类问题;提交时请注明版本号(「设置 → 关于」可查)、复现步骤、截图/日志与数据影响范围。
  2. 发起 PR:Fork 本仓库并创建特性分支;遵循项目约定——修改处添加 修改日期+内容 注释;每次问答/开发内容按编号追加到开发工作记录(禁止覆盖/删除已有内容);提交遵循 Conventional Commits 规范;合并前请先跑 python -m app.self_testpython -m app.gui_self_test
  3. 讨论与建议:需求/方案类讨论欢迎直接开 Issue 交流;涉及数据安全(删除、导入、备份)的改动会被重点审查。

爱心打赏

☕ 如果你开心,欢迎送爱心请作者喝杯咖啡,让我更有动力去创造!

爱心 微信赞赏码


📄 许可证

本项目采用 MIT License(见 LICENSE),仅供学习与个人使用。引用本项目或代码请保留版权声明。


⚠ 已知限制与说明(2026-09-22 V2.3.0 复核)

完整版(含每条限制的应对办法)见 《软件安装使用说明书 V13》第 22 章

  1. 搜索的 1.5 秒延迟是刻意设计:输入过程不实时查询(避免整库刷新卡顿),停止输入约 1.5 秒后才搜索;要"立刻出结果"请点搜索框右侧 🔍 或按回车。
  2. 窗口最小宽度随目录显隐变化:四列全显示时约 1496、四列全隐藏时约 1104(下限由顶部工具栏"完整显示所需宽度"决定)。
  3. 库结构 schema v5 / 导出格式 JSON v6(重要):旧库启动自动迁移(幂等、迁移前自动备份);回退到旧版 EXE 时必须同时恢复数据库备份(旧版不认识新结构)。老导出文件(JSON v2~v5、旧 Excel、旧 MD)照常可用
  4. 多位置条目的导出往返(v6 起已保真):子树导出时多位置条目只写一次、位置清单写入 locations,导入自动重建关联;例外:Excel 仍按行展开(便于人看/人改),但导入时按 uuid 合并、不再产生副本;若表格被人为删掉 uuid 列,则退回"内容键"判重。
  5. 「修改」的换机同步语义(v5 起已修正):条目带跨机器稳定 ID,变更包/JSON 导入优先按 uuid 匹配 ⇒「修改」=更新同一条目旧包(v2~v5)行为不变,仍按内容键合并。
  6. 批量删除的边界:被其他根目录共享的一级分类只解除关联、不删除记录;条目仅在全部位置都落在删除范围内时才删除本体,否则只解除范围内的位置关联。删除前的两份备份(全量库 + 分支 JSON)失败会直接中止删除
  7. 「项目类别」批量删除的口令是公开默认值 123456:它的作用是"多一道手工关卡",不构成安全防护;请勿把它当作权限控制。
  8. 详情"自动"显示模式:默认仅对 视频 / 图像 两个根目录完整显示 ②~⑦,其余根目录只显示 ② 介绍;点详情头部"⏵ 显示全部字段"或把设置改为"全部"即可全显。
  9. "手动隐藏"是硬隐藏:无论显示模式如何,字段管理里被隐藏的区块都不显示,头部「显示全部字段」也不会恢复它(须回字段管理改回"显示");内容不会丢(照常导出、搜索、进变更包)。
  10. 区块顺序 / 隐藏 / 外观属「本机偏好」:存在本机数据库设置项里,不随 JSON 包 / 变更包跨机同步;用本机备份恢复会带回该设置。① 名称固定显示、不参与排序、不可隐藏。
  11. 结构化向导的出口为"先保存数据文件、再导入":保存后若又改映射/换表/换源,需重新保存才能导入。
  12. 联网抓取的边界:不支持需要 JS 渲染的页面、不处理登录流程、不做风控绕过、不做站内自动遍历;抓取仅为你主动触发的一次性只读请求(15 秒超时、体积上限 10MB;GitHub 批量另有限额)。
  13. 数据库为明文 SQLite,不含加密:本机其它程序理论上可读取 data/prompts.db如有隐私需求,建议配合系统级磁盘加密(Windows BitLocker 等)
  14. 自动取词的"词表阈值"提示只在管理对话框内出现:软件不会主动弹窗,请偶尔打开"设置 → 标签与词表 → 🧠 自动取词词库…"查看"待审核"数量。
  15. 调整字段顺序后没有"一键恢复默认":需手工用 ↑↓ 排回,建议调整前先记录原顺序
  16. 软件应放在稳定、可写、不会被误删的文件夹data 必须与程序同目录;换文件夹时请把原 data 一起复制过去,否则会新建空库。
  17. 打包脚本含硬门禁python build.py 第 4.5 步会清理并复核内嵌库的"运行态 meta",任一步失败会直接终止打包(刻意设计,请勿绕过)。

About

PromptSprite V2是一个能记录、编辑、保存提示词、即时想法的比如好玩的笔记/存储工具V2.0版。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages