# 数字资产管理器 v3 — 使用说明

## 概述

**数字资产管理器**是一套本地桌面软件，用于封存和速查个人/团队的数字化资料。数据全在本地 SQLite 数据库，不联网不上传，设计目标是一次性封存、随时检索。

### 三大资产分类

| 分类 | 用途 | 存入方式 |
|------|------|---------|
| 📁 项目资产 | 项目相关所有文件（文档/源码/PDF/图片/固件/电路等） | 导入整个项目文件夹 |
| 📔 工作日志 | 日常工作记录，按时间线排列 | 导入日志文件夹 |
| 📚 训练语料 | JSONL 格式的 Q&A 数据，积累用于本地大模型训练 | 导入 .jsonl 文件 |

---

## 安装与启动

### 方式一：EXE 直接运行（推荐）

1. 将 `dist/数字资产管理器.exe` 复制到任意目录
2. 双击运行
3. 软件首次启动会自动在 EXE 同目录创建 `digital_assets.db` 数据库文件

### 方式二：源码运行

```bash
cd 数字化资产管理
python digital_assets_ui.py
```

前置条件：Python 3.8+，不需要额外安装包（Tkinter 和 SQLite3 均为 Python 标准库自带）。

---

## 界面说明

软件窗口分为两个区域：

### 左侧导航栏（深蓝底）
- **📥 导入归档**：三种资产的导入入口
- **📁 项目资产**：按项目浏览已封存的文件
- **📔 工作日志**：按时间线查看工作日志
- **📚 训练语料**：查看已导入的语料数据
- **🔍 全局搜索**：跨所有分类搜索
- **📤 导出报告**：导出 Markdown / JSONL

### 右侧内容区
根据左侧选择切换对应功能面板。

---

## 功能详解

### 1. 导入归档

导入页面分为三个独立的导入区域，每种资产分开导入：

#### 📁 导入项目资产

1. 点击「浏览」选择要封存的项目文件夹
2. 项目名留空 → 以子文件夹名自动创建项目；手动填写 → 全部文件归入该项目
3. 勾选「递归」→ 子文件夹各自成为一个独立项目
4. 点击「开始导入」

**支持的文件类型**：

| 类型 | 扩展名 | 处理方式 |
|------|--------|---------|
| 文档 | .md .txt | 读取全文内容存入，前10000字 |
| 源码 | .py .c .h .cpp .hpp | 读取全文，存入项目 |
| 配置 | .json .yaml .yml .ini .cfg .toml | 读取全文 |
| 数据 | .csv .log | 读取全文 |
| PDF | .pdf | 存路径和类型标签 |
| Office | .docx .xlsx .pptx | 存路径和类型标签 |
| 图片 | .png .jpg .jpeg .gif .bmp .svg | 存路径和类型标签 |
| 固件 | .bin .hex .elf .uf2 | 存路径和类型标签 |
| 电路 | .sch .brd .kicad_pcb .kicad_sch | 存路径和类型标签 |
| 压缩包 | .zip .rar .7z .gz | 存路径和类型标签 |
| 语料 | .jsonl | 自动解析为训练语料 |

> 文本文件超过 10000 字部分不会存入数据库，但原始文件不受影响。日志区会显示 `[WARN]` 提示。

#### 📔 导入工作日志

1. 选择包含日志文件的文件夹
2. 点击「开始导入」
3. 所有文件归入「工作日志」分类，按时间线排列

> 文件名含「日志/log/工作记录/周报/日报」关键词的，在导入项目资产时也会自动归入工作日志。

#### 📚 导入训练语料

1. 选择包含 `.jsonl` 文件的文件夹
2. 点击「开始导入」
3. 支持四种 JSONL 格式：

```json
{"question": "...", "answer": "..."}       → QA 类型
{"decision": "...", "conclusion": "..."}   → 决策类型
{"problem": "...", "solution": "..."}      → 踩坑类型
{任意其他字段}                                → 其他类型
```

> 每个 JSONL 文件生成一条语料记录，`record_count` 为文件内的有效行数，`type` 按数量最多的类型设置。

#### 导入历史

页面底部显示所有历史导入记录，包含日期、类型、项目名、文件数、摘要和源文件夹路径。每次软件启动自动加载。

---

### 2. 项目资产

- 顶部下拉框切换项目
- 表格显示该项目下所有文件（主题、类型、文件路径、摘要、导入日期）
- **双击表格行**查看文件完整内容
- 「删除项目」按钮可删除项目及其所有关联文件

---

### 3. 工作日志

- 按导入时间降序排列所有工作日志
- **双击行**查看日志全文
- 选中行按 Delete 键或点击「删除选中」移除

---

### 4. 训练语料

- 查看所有已导入的语料文件
- 显示日期、标签、文件路径、记录数、更新时间
- 选中后可按 Delete 删除

---

### 5. 全局搜索

- 输入关键词（空格分隔 = AND 逻辑）
- 结果分三个标签页显示：
  - 项目资产：搜索文件名和内容
  - 工作日志：搜索主题和内容
  - 训练语料：搜索标签和文件路径
- 实时搜索，输入即出结果

---

### 6. 导出报告

支持三种导出方式：

| 导出类型 | 格式 | 用途 |
|---------|------|------|
| 导出 MD | Markdown | 人阅读的完整项目报告 |
| 导出 JSONL | JSONL | 选中项目的结构化数据，可喂大模型 |
| 导出全部 JSONL | JSONL | 全部资产（项目+日志+语料）一次性导出 |

操作步骤：
1. 选择项目
2. 点击对应导出按钮
3. 在弹出窗口中选择保存位置
4. 左侧预览区显示导出内容

---

## 数据安全

- **数据库文件**：`digital_assets.db`，标准 SQLite3 格式
- **位置**：与 EXE 同目录
- **备份**：直接复制 `.db` 文件即可完成备份
- **迁移**：将 `.db` 文件和 EXE 一起复制到新电脑即可
- **隐私**：数据完全不联网，100% 本地存储

---

## 常见问题

**Q: 导入后原文件会怎样？**
A: 原文件不受任何影响。软件只读取内容存入数据库，不修改、不删除、不移动原始文件。

**Q: 数据库能存多少数据？**
A: SQLite 单库上限 140TB。单个文本文件存入前 10000 字，图片/PDF 等二进制文件只存路径。实测数千个项目、数万份文件毫无压力。

**Q: 能跨电脑使用吗？**
A: 将 EXE 和 `digital_assets.db` 文件复制到新电脑的同一目录即可，无需安装任何依赖。

**Q: 如何升级？**
A: 替换 EXE 文件即可。数据库文件 `.db` 向下兼容，旧数据不受影响。

**Q: 导入时闪退？**
A: 确认所选文件夹内确实有支持的文件类型。空文件夹或全是无后缀文件会直接跳过。

---

## 命令行补充

除了桌面版，还提供了命令行工具 `digital_assets_manager.py`：

```bash
# 初始化数据库
python digital_assets_manager.py init

# 递归导入文件夹
python digital_assets_manager.py import --dir "项目文件夹" --recursive

# 全文搜索
python digital_assets_manager.py search --keyword "ESP32 SPI"

# 按项目导出 Markdown
python digital_assets_manager.py export --project "电子宠物V1.0"

# 统计概览
python digital_assets_manager.py stats
```
