Skip to content

Latest commit

 

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧩 PromptSprite(提示精灵)

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

Platform Version Python UI License Data

双击 PromptSprite.exe 即可使用。数据全部保存在本机 data/ 目录,无任何联网行为

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

✨ 功能特性

特性 说明
① 五级分类书架 项目类别 → 根目录 → 一级 → 二级 → 条目;项目类别预置 5 项(日常学习记录/网上资源收集/个人梳理资源/本人创作作品/个人经验总结),根目录可跨项目移动/复制
② 老库迁移 旧版(项目类别/根目录-一级-二级)数据自动升级(v1→v2→v3 结构迁移):迁移向导人工核对映射、未命中弹窗选择、未回答兜底"未明确分类"(自动弹出/菜单重开)
③ 9 字段详情 ①名称…⑩图像方案;按根目录动态显隐;⑩图像方案可"打开"链接;编辑/悬停浮窗/图片预览
④ 一键复制 复制全部 / 复制中文 / 复制英文
⑤ 快捷悬停添加 悬停滑过分类即锁定,光标自动跳入输入框,连续录入不打断
⑥ 悬停选中与高亮 主界面"鼠标悬浮约 0.2 秒即选中",选中链路高亮;状态栏按悬停层级动态统计
⑦ 安全回收 全局锁定(🔒)+ 删除二次确认并移入"回收站"(可恢复)+ 删除分类条目转"未分类" + 删除根目录仅解除关联
⑧ 收藏与搜索 ⭐常用入口;全局搜索匹配全部文本字段(LIKE 通配符转义);V1.8.0 起输入防抖——停止输入约 1.5 秒后才查询,另可点搜索框右侧"🔍"或按回车立即搜索;Ctrl+Shift+P 唤出聚焦搜索
⑨ 多格式导入导出 JSON(v2/v3/v4 兼容,v3/v4 含项目归属与删除清单)/ Excel / HTML / MD(进度条);导入按内容自动去重;批量事务导入
⑩ 自动全量备份 每次启动自动全量备份 prompts_YYYY-MM-DD_*.db按天去重(同日只保留最后一份)+ 默认保留 30 份(可在设置调整);只清理标准命名文件,手动快照永不清理;失败状态栏黄点警告
⑪ 每日变更包(原"增量备份") 每次关闭自动生成"当日全部变更(增/删/改/空分类)"同步包:变更包_{电脑代号}_{日期}_add{增改数}_del{删除数}.json(JSON v4,兼容 v2/v3 导入;同日幂等仅一份、保留天数可设);可换机导入合并、可导出 Excel/HTML 浏览
⑫ 全局热键/托盘 Ctrl+Shift+P 唤出聚焦搜索;ESC 隐藏;托盘恢复/退出
⑬ 内置数据 打包版内嵌最新完整库(无 data 时自动建库,开箱即用);内置精简模板(含 2555 条示例提示词,主要为"网上资源收集")+ 内置手册;版本升级以"非破坏性合并"导入(分类按名复用、条目按名 upsert),绝不覆盖/清空用户数据
⑭ 用户设置 记住窗口大小、默认视图、详情字段策略、电脑代号、变更包保留天数、自动备份保留份数、变更包携带被删快照(默认关);"ℹ 关于"显示版本信息与技术栈
⑮ 分类复制/移动 根目录/一级/二级可"复制到…/移动到…":下移加前缀(A→A.C)、上移去前缀、重名自动加序号、共享分类自动复制、移动不丢条目
⑯ 界面优化(V1.8.0 大幅修订) 工具栏重排:🔒锁定 · 🗂目录隐藏/显示 · 📂无类条目 · ⭐常用 · ✚新建 · ⇩导入 · ⇧导出 · ⚙设置 · 搜索框(🔍);🗂 目录隐藏/目录显示可任选隐藏各分类列(对话框含"全部隐藏/全部显示",底部 🗂 小图标一键全隐/全显);窗口最小宽度动态化(四列全显示 ≈1420,四列全隐藏 ≈1028);✏️ 编辑 / 👁 浏览切换(浏览态只读防误改);详情命令条与底部常驻栏按钮重排、宽度贴合文字;详情字段卡片化分色、②~⑦ 默认折叠 1 行、初始各列灰显"新增"按钮、滚动自动回顶
⑰ 一键打包 python build.py 自动生成单文件 EXE(内嵌最新完整库)
⑱ 条目多位置 关联到(一处编辑各位置同步)/ 复制到(独立副本)/ 移动到(可勾"整体转移"清空其它关联);详情区"🧭 位置"面包屑(含 项目类别 › 根目录)可逐处解除
⑲ 就地新增入口 条目区醒目绿色"+新增条目";任一分级分类都可持有并显示本级条目,直接在该分类新增
⑳ 删除分类三级保护 有子分类需先处理下级;无子分类删除只解除直挂条目位置;级联整棵删除须手工输入确认短语后再二次确认
㉑ 回收站/删除历史 删除=完整快照入回收站,可恢复(原内容/收藏/多位置一并回挂);支持逐条彻底删除与清空(图片文件在彻底清除时才释放)
㉒ 新增历史 详情区底部"🕒 新增历史":按 今日/近3/7/30天/全部 查看最近新增条目,每条可一键复制 中/英/全部 提示词
㉓ 初始导航与详情面包屑 启动仅显示顶层"项目类别",其余列提示+新增按钮灰显;详情顶部浅色"🧭 位置"面包屑展示 项目类别 › 根目录 › 一级 › 二级 完整链
㉔ 变更包导入向导(V1.7.0) 含删除清单的 JSON 一律走"导入变更包"向导:先预览(来源电脑/日期、新增/修改/删除计数、落后同步红色提示)→ 二维选择——① 是否合并包内新增/修改;② 删除清单三选一:忽略删除(推荐)/ 正常应用删除(须输入"确认删除")/ ⑤ 逆向恢复(须输入"恢复删除");被删条目同步删除一律先进回收站(可恢复、保留图片),杜绝"导入即误删"
㉕ 导入前快照(V1.7.0) 变更包导入前自动生成 prompts_preimport_时间戳.db(独立前缀、不参与任何自动清理、可一键回滚;快照失败则中止导入)
㉖ 携带被删快照 + ⑤ 逆向恢复(V1.7.0) 设置可选"变更包携带被删快照"(默认关,红字提示:体积↑、含已删除内容、可能含当初有意删除的数据);开启后删除清单携带完整快照,可在导入向导选"⑤ 逆向恢复"把删除数据反向加回当前库(无快照的包该按钮置灰,只能靠回收站/历史备份恢复);删除日志同步留存完整快照 payload(老库自动补列)
㉗ 数据比对(V1.7.0) 导入菜单"数据比对…(与备份 *.db)":选择一个历史备份库(复制到临时文件只读打开)与当前库对比——项目类别/根目录/分类/条目差异概览 + 明细列表,可导出 HTML 差异报告;全程不写主库、锁定态禁用
㉘ 导入/同步性能(V1.7.0) 删除重放由逐条全表扫描 O(D×N) 改为"一次性 content_key 索引 + 批量单事务"O(N+D),删除阶段补进度回调;实测 1380 条删除清单导入由"超 4 分钟未完成"降至约 10 秒
㉙ 条目名称一览浮层(V1.8.0 修补) 鼠标悬停条目区约 0.5 秒浮出"📋 条目名称一览(共 N 条)"(条目列左侧),一次看全当前分类全部条目名;V1.8.0 修补——浮层不再"鼠标一移开就消失",可把鼠标移进浮层拖滚动条/滚轮浏览,且在条目区滚动时浮层同步滚动

🆕 版本记录

V1.8.0(2026-09-10)

本轮只改界面与交互,不改数据格式、不改库结构——直接覆盖升级即可,数据完全兼容。

  • 工具栏重排与瘦身:按钮顺序固定为 🔒锁定 → 🗂目录隐藏/目录显示 → 📂无类条目 → ⭐常用 → ✚新建 → ⇩导入 → ⇧导出 → ⚙设置 → 搜索框;搜索框移到最右端(最小 10 个汉字宽、随窗口变宽),各按钮宽度收紧贴合文字;
  • "项目列"→"目录隐藏 / 目录显示"(功能升级):由只能收起"项目类别"一列,改为可任选隐藏 项目类别/根目录/一级/二级(连续前缀);对话框右侧新增"快捷选项:全部隐藏 / 全部显示";底部常驻栏新增 🗂 小图标可一键全隐/全显;
  • 窗口最小宽度动态化:四列全显示时 ≈1420;隐藏得越多可缩得越窄(四列全隐藏 ≈1028,只剩"条目 + 详情"两栏);
  • 搜索输入防抖:解决"刚敲一个字就整库刷新、输入长句卡顿"的问题——停止输入约 1.5 秒后才查询;新增搜索框右侧 🔍 图标点击即搜,回车仍可立即搜索;
  • 新增"✏️ 编辑 / 👁 浏览"切换:浏览态详情只读(仍可选中 Ctrl+C),保存/重置/删除/移动/关联/复制等编辑类按钮置灰,杜绝误改;
  • 详情区命令条调整:"移动到/关联到/复制到"去掉名称末尾省略号并靠左紧挨"编辑/浏览"(编辑/浏览移至最右),"☆ 收藏"移至最左;保存/重置/复制全部/中文/英文宽度按"完整显示文字"标定,任何窗口宽度下都不裁切;
  • 条目列悬停"条目名称一览"修补:浮层不再"鼠标一移开就消失",可把鼠标移进浮层滚动;在条目区滚动滚轮时浮层同步滚动;
  • 底部常驻栏重排:靠右停靠(🕒 新增历史 | ♻ 删除历史/回收站 | 🗑 删除当前条目),最左留出 🗂 一键显隐图标;按钮宽度贴合文字;
  • 详情区 ②~⑦ 折叠形态统一:整组默认折叠为 1 行标题(不再占空白),点"展开"/"⏵ 显示全部字段"全部展开;
  • 按钮更名:"未分类"→"无类条目"、"快速新建"→"新建"(仅名称,功能不变)。

V1.7.0(2026-09-09)

  • "增量备份"更名"每日变更包"+计数命名:导出文件改为 变更包_{电脑代号}_{日期}_add_{新增/修改合计}_del_{删除条目数}.json(如 变更包_DESKTOP-053MORJ_2026-09-08_add_0_del_1380.json,一眼识别"负增量/纯删除包");当日幂等仅一份,兼容清理旧"增量_"前缀遗留文件;导出到外部前先弹摘要,纯删除包红字警告"⚠ 负增量,谨慎分发";
  • JSON v4 变更包格式:导出含 type(full/change)与 summary 计数元信息;导入兼容 v2 / v3 / v4 老文件;
  • 变更包导入安全向导(二维选择):先预览来源与增删计数,再二维选择(①是否合并新增/修改 ②删除清单:忽略删除 / 正常应用删除 / ⑤逆向恢复);正常应用删除须输入确认短语"确认删除"、逆向恢复须输入"恢复删除";目标库同步时间落后于包日期时红色提示并建议"忽略删除";
  • 同步删除安全化:删除清单重放一律"先入回收站"(完整快照 + 保留图片),物理释放只发生在"彻底删除/清空回收站";分类删除复用安全级联路径;
  • 导入前自动快照prompts_preimport_时间戳.db(独立前缀、不参与自动清理、失败中止导入),误操作可一键回滚;
  • 自动全量备份策略升级:按天去重(同日只留最后一份)+默认保留 30 份(可在设置修改)+只清理标准命名 prompts_YYYY-MM-DD_*.db,手动快照(snapshot_**_施工前_* 等)永不清理;
  • 新增"数据比对…":与任一备份 *.db 只读比对(差异概览 + 明细 + 导出 HTML 报告),用于核对当前库与历史备份的差异;
  • 携带被删快照(默认关)+⑤ 逆向恢复:删除日志留存完整 payload 快照;开启"携带被删快照"后,变更包删除项带完整快照,可在向导中"逆向恢复",把删除数据反向加回(无快照的包按钮置灰);
  • 根因复盘(导入误删事故):旧版把"每日变更包"称为"增量备份",且导入即重放删除、删除不可逆——实测导入某"纯删除(负增量)包"后条目由 3987 降至 2555 且严重卡顿。本版以"导出披露 + 导入预览 + 范围选择 + 自动快照 + 回收站可逆 + 性能修复"六重措施根治(详见 开发工作记录 09 第 4~10 轮)。

V1.6.0(2026-09-07)

  • 初始视图:启动仅列出顶层"项目类别",根目录/一级/二级/条目逐级选择再展开(旧版会把全库一级分类一次铺满);各列"新增"按钮初始灰显保留、选定上级自动点亮;
  • 回收站 / 删除历史:删除条目改为"移入回收站(可恢复)",详情区底部"♻ 删除历史 / 回收站"统一承担查看删除记录、恢复、彻底删除、清空;
  • 新增历史:详情区底部"🕒 新增历史"按时间范围查看最近新增,一键复制提示词;
  • 详情位置面包屑:浅色轻标签展示完整路径「项目类别 › 根目录 › 分类」,主位置浅绿、关联位置浅灰蓝;
  • 悬浮与滚动体验:悬停选中延迟 0.3s→0.2s,列切换改原地高亮避免整列重建;各可滚动列自动回顶;
  • 详情字段卡片化配色(①~⑩ 分色块)、删除按钮移至详情底部、"关于"补充开源仓库地址。

V1.5.0 及更早要点

  • 条目 关联到 / 复制到 / 移动到:目标分类多选、移动可"整体转移"、同一条目多位置编辑一处全同步;
  • 名称输入框统一为详情区/新增表单首个字段 "① 条目名称(风格名称)";顶部命令条统一为按钮:移动 / 关联 / 复制 / 收藏;
  • 条目就地新增醒目入口 + 任一分级分类可新增并显示本级条目;
  • 详情区多位置提示行(主位置 / 关联位置逐处解除);删除分类三级保护(级联删除需输入确认短语);
  • 精简模式标题与"显示全部字段"按钮合并为一行,界面更紧凑;
  • 老版本:五级书架与四级分类、老库迁移向导、9 字段详情、自动全量备份、每日增量备份、全局热键/托盘、多格式导入导出、内置手册/内置库、一键打包 EXE 等(各版演进详见 docs/ 文档与开发工作记录)。

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

  • 打包版内嵌打包时的最新完整库app/resources/builtin_prompts.db),首次运行若无 data/prompts.db 自动复制建库(已有数据绝不覆盖);源码开发版首次启动自动导入"内置手册"(归入"视觉风格分类")。
  • 内置精简模板以"网上资源收集"示例数据为主体(含 2555 条提示词,其余目录内容以打包时实际库为准),个人/梳理类目录留空,开箱即可上手、也方便直接导入自己的资料。
  • 内置内容版本升级时以"非破坏性合并"更新(分类按名复用、条目按名 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(如 PromptSprite_260910_V1.8.0.exe);
  2. 双击运行(首次自动建库并导入内置数据;可放在任意目录,数据保存在 EXE 同目录 data/ 下);
  3. 详细图文说明见 《软件安装使用说明书 V8》

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

# 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 命名(如 dist\PromptSprite_260910_V1.8.0.exe,单文件、无控制台窗口)。详见 《打包发布指南 V8》

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

PromptSprite/
├── app/                          # 主程序包
│   ├── main.py                   # 程序入口:启动静默备份→建库→内置库/迁移向导→热键/托盘
│   ├── config.py                 # 全局常量:版本、目录、备份/变更包策略、meta 键
│   ├── database.py               # SQLite 数据层:projects/domains/categories/entries/meta/
│   │                             #   entry_links/deletion_log(payload)/trash(回收站);迁移、多位置、
│   │                             #   删除恢复、删除日志(含完整快照 payload)
│   ├── backup.py                 # 启动自动全量备份(按天去重/默认 30 份/快照不清理)
│   │                             #   + 导入前快照 preimport_snapshot()
│   ├── incremental_backup.py     # 每日"变更包":变更包_{代号}_{日期}_add_{N}_del_{M}.json(JSON v4、
│   │                             #   summary、携带被删快照可选、逆向恢复支持、日志清理)
│   ├── hotkey.py                 # 全局热键 Ctrl+Shift+P + 系统托盘
│   ├── self_test.py / gui_self_test.py   # 自测入口(database/backup/变更包/MD + GUI 冒烟)
│   ├── parser/                   # md_parser / json_io(v2/v3/v4,含变更包导入与逆向恢复) /
│   │                             #   excel_io / html_export
│   ├── ui/                       # main_window(主界面)/ change_import_dialog(变更包导入向导)/
│   │                             #   compare_dialog(数据比对)/ history_dialog(回收站+新增历史)/
│   │                             #   quick_add / copy_move_dialog / move_selector / migrate_dialog /
│   │                             #   project_chooser / progress_dialog / settings_dialog
│   └── resources/                # builtin_manual.md(内置手册)+ builtin_prompts.db(打包时内嵌)
├── docs/                         #  说明书V7 / 打包指南V8 / 手册
├── Icons/PSicon.png              # 应用图标源
├── build.py / run.py / requirements.txt
├── data/                         # 运行时生成(不入库):prompts.db、backup/(自动全量+导入前快照)、
│                                 #   backup/incremental/(每日变更包)、images/(关联图片)
├── *.json / *.xlsx               # 数据资产示例文件(可直接导入)
└── LICENSE / README.md / .gitignore

🗄️ 数据与隐私

  • 100% 本地:单文件 SQLite 数据库 data/prompts.db;打包态为 EXE 同目录 data/,开发态为项目根 data/。软件不联网、不上传、不收集任何数据。
  • 图片与备份:条目关联图片存 data/images/;自动全量备份与导入前快照存 data/backup/;每日变更包存 data/backup/incremental/
  • 数据模型:项目类别/根目录/一级/二级/条目五级;分类为全局共享树,删除根目录仅解除关联;trash 表保存被删完整快照(可恢复);旧库启动自动迁移(v1→v2→v3),deletion_log 老库自动补 payload 列(V1.7.0)。
  • 隐私提醒:变更包可能包含条目内容与删除清单;"携带被删快照"默认关闭,分发/导入前请先查看摘要确认(纯删除包会有红字警告)。

📚 文档索引

文档 说明
软件安装使用说明书(V8) 面向普通用户的安装与使用指南(当前版 V1.8.0)
打包发布指南(V8) 源码打包 EXE 与 GitHub Releases 发布全流程(V1.7.0)

更完整的历史版本(V5/V6/V7 等)与《项目结构与文档体系说明》见 docs/ 目录。

🤝 参与贡献 / Issue / PR

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

爱心打赏

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

爱心 微信赞赏码


📄 许可证

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


⚠ 已知限制与说明(2026-09-10,V1.8.0 复核补充)

  1. 搜索的 1.5 秒延迟是刻意设计:V1.8.0 起输入过程不实时查询(避免整库刷新卡顿),停止输入约 1.5 秒后才搜索;要"立刻出结果"请点搜索框右侧 🔍 或按回车。
  2. 窗口最小宽度会随目录显隐变化:四列全显示时约 1420、四列全隐藏时约 1028(该下限由顶部工具栏"完整显示所需宽度"决定,低于它"导入/导出/设置/搜索"会被挤出可视区)。若把窗口从"目录全隐藏"的窄宽度直接恢复显示四列,窗口会被最小宽度自动顶宽。
  3. 多位置条目的 JSON/Excel 导出往返:同一分类子树导出时,多位置(主挂靠 + 关联)条目会在文件里出现多行,再次导入会变成多份独立副本而非原"关联关系"(B-13 记录;如需保真请用整库 JSON 或保留多位置功能原地使用)。
  4. 数据比对口径:条目差异按"详情内容键(content_key)"识别;同名不同内容会被视为不同条目,内容一致但位置不同的两条视为同一条(已按分类 id 修复同名分类互相覆盖问题)。
  5. "修改"的换机同步语义:当前以内容判重合并,"修改"表现为"新增一条 + 原条保留";真正的"更新/编辑同步"需引入稳定条目 ID(后续增强)。

About

PromptSprite是一个能编辑和保存提示词的工具。如果克隆本项目,也可以在IDE工具里使用AI将其他人收集的大量提示词进行结构化后批量添加到软件数据库中。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages