Skip to content

Commit b100e55

Browse files
committed
docs: 重写根 README 并补全 BUSL-1.1 许可证
README 面向 GitHub 访客:产品定位/核心能力/技术栈/仓库结构/快速开始/分支发布/文档导航/当前状态;LICENSE 沿用旧版 BUSL-1.1 协议并适配当前项目
1 parent 94dafd3 commit b100e55

2 files changed

Lines changed: 254 additions & 0 deletions

File tree

‎LICENSE‎

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
Business Source License 1.1
2+
3+
Parameters
4+
5+
Licensor: KeBan (课伴) Copyright Holder
6+
Licensed Work: Entropydecrease (熵减) - 视频知识提取与持久化桌面应用
7+
The Licensed Work is (c) 2026 Entropydecrease Contributors.
8+
Additional Use Grant: You may make use of the Licensed Work, provided that
9+
you do not use the Licensed Work for a Production
10+
Purpose that competes with the Licensed Work.
11+
"Production Purpose" means any use that is intended
12+
for or directed to commercial advantage or monetary
13+
compensation. Non-commercial personal use, educational
14+
use by students, and internal evaluation are permitted.
15+
Change Date: Four years from the date the Licensed Work is
16+
published.
17+
Change License: Apache License, Version 2.0
18+
19+
For information about alternative licensing arrangements for the Software,
20+
please contact the Licensor.
21+
22+
Notice
23+
24+
The Business Source License (this document, or the "License") is not an Open
25+
Source license. However, the Licensed Work will eventually be made available
26+
under an Open Source License, as stated in this License.
27+
28+
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
29+
"Business Source License" is a trademark of MariaDB Corporation Ab.
30+
31+
-----------------------------------------------------------------------------
32+
33+
Business Source License 1.1
34+
35+
Terms
36+
37+
The Licensor hereby grants you the right to copy, modify, create derivative
38+
works, redistribute, and make non-production use of the Licensed Work. The
39+
Licensor may make an Additional Use Grant, above, permitting limited
40+
production use.
41+
42+
Effective on the Change Date, or the fourth anniversary of the first publicly
43+
available distribution of a specific version of the Licensed Work under this
44+
License, whichever comes first, the Licensor hereby grants you rights under
45+
the terms of the Change License, and the rights granted in the paragraph
46+
above terminate.
47+
48+
If your use of the Licensed Work does not comply with the requirements
49+
currently in effect as described in this License, you must purchase a
50+
commercial license from the Licensor, its affiliated entities, or authorized
51+
resellers, or you must refrain from using the Licensed Work.
52+
53+
All copies of the original and modified Licensed Work, and derivative works
54+
of the Licensed Work, are subject to this License. This License applies
55+
separately for each version of the Licensed Work and the Change Date may
56+
vary for each version of the Licensed Work released by Licensor.
57+
58+
You must conspicuously display this License on each original or modified copy
59+
of the Licensed Work. If you receive the Licensed Work in original or
60+
modified form from a third party, the terms and conditions set forth in this
61+
License apply to your use of that work.
62+
63+
Any use of the Licensed Work in violation of this License will automatically
64+
terminate your rights under this License for the current and all other
65+
versions of the Licensed Work.
66+
67+
This License does not grant you any right in any trademark or logo of
68+
Licensor or its affiliates (provided that you may use a trademark or logo of
69+
Licensor as expressly required by this License).
70+
71+
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
72+
AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
73+
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
74+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
75+
TITLE.
76+
77+
MariaDB hereby grants you permission to use this License's text to license
78+
your works, and to refer to it using the trademark "Business Source License",
79+
as long as you comply with the Covenants of Licensor below.
80+
81+
Covenants of Licensor
82+
83+
In consideration of the right to use this License's text and the "Business
84+
Source License" name and trademark, Licensor covenants to MariaDB, and to all
85+
other recipients of the licensed work to be provided by Licensor:
86+
87+
1. To specify as the Change License the GPL Version 2.0 or any later version,
88+
or a license that is compatible with GPL Version 2.0 or a later version,
89+
where "compatible" means that software provided under the Change License
90+
can be included in a program with software provided under GPL Version 2.0
91+
or a later version. Licensor may specify additional Change Licenses without
92+
limitation.
93+
94+
2. To either: (a) specify an additional grant of rights to use that does not
95+
impose any additional restriction on the right granted in this License, as
96+
the Additional Use Grant; or (b) insert the text "None".
97+
98+
3. To specify a Change Date.
99+
100+
4. Not to modify this License in any other way.

‎README.md‎

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
# 熵减 · Entropydecrease
2+
3+
> 面向**技能自学者**的视频知识提取与持久化桌面应用 —— 把「看完就忘」变成「学完即得」。
4+
> 观看教学视频(B 站 / 网课 / YouTube)自学化妆、编程、乐理、绘画等任何技能时,课堂助手自动捕获屏幕与音频,本地转写 + 本地识别 + 内容拼接,一键产出结构化笔记;数据全程留在本机。
5+
6+
[![CI](https://github.com/Aparencia/Entropydecrease/actions/workflows/pr-check.yml/badge.svg?branch=dev)](https://github.com/Aparencia/Entropydecrease/actions/workflows/pr-check.yml)
7+
[![License: BUSL-1.1](https://img.shields.io/badge/license-BUSL--1.1-orange.svg)](LICENSE)
8+
[![Tauri 2](https://img.shields.io/badge/Tauri-2-24C8DB?logo=tauri&logoColor=white)](https://tauri.app)
9+
[![Rust](https://img.shields.io/badge/Rust-stable-dea584?logo=rust&logoColor=white)](https://www.rust-lang.org)
10+
11+
---
12+
13+
## 核心理念
14+
15+
| 原则 | 含义 |
16+
|------|------|
17+
| **本地优先** | ASR / OCR / 拼接 / 存储全部本地完成,无网络也能用 |
18+
| **数据不出本机** | 音频、转写、OCR、笔记全部存于本地 SQLite;AI 调用需用户显式授权且默认关闭 |
19+
| **AI 为增强层** | 云端多模态仅做「精修 / 知识补充」等增强,失败自动降级到纯本地拼接路径 |
20+
21+
产品文档:[PRD](docs/product/prd.md) · [痛点图谱](docs/product/pain-points.md) · [MVP 画布](docs/product/mvp-canvas.md)
22+
23+
## ✨ 核心能力
24+
25+
### 课堂助手(视频知识提取)
26+
27+
```
28+
屏幕关键帧捕获 ─┐
29+
├─► 本地 ASR 转写 ─► 双源融合 ─► 内容拼接 ─► 笔记初稿
30+
系统音频捕获 ───┘ (有字幕则跳过 ASR,字幕优先)
31+
```
32+
33+
- **本地流式 ASR**:sherpa-onnx(流式 Zipformer + Silero VAD + SenseVoice 两遍解码 + hotwords 热词)
34+
- **本地 OCR**:PaddleOCR PP-OCRv5/v6(关键帧文字检测识别,GPU 可卸载)
35+
- **字幕优先策略**:检测到字幕先走 OCR 字幕,无字幕才启动 ASR,节省算力
36+
- **双源融合**:转写 + OCR 按时间线纯本地规则拼接为笔记初稿(无 LLM 依赖)
37+
- **视频档案四维解耦**(v0.9.0):形态 7 类 × 画面价值 4 档 × 领域 15 类 × 语言;画面价值三信号自动检测、动态调档、领域热词预热
38+
39+
### 笔记体系(知识持久化)
40+
41+
- 会话 → 笔记一键落库,Markdown 渲染 / 源码编辑双模式
42+
- **版本链**:每次编辑自动建版本快照,diff 对比、一键回滚(50 版上限)
43+
- **AI 增强**(可选):AI 精修双模式(预览 / 落库同基线)+ 知识补充九子项,采纳前 diff 预览、成本确认、全程审计
44+
- **时间戳回链**(v0.10.0):笔记段落 ↔ 会话视频时间点双向跳转
45+
- FTS5 全文搜索、标签、大纲面板、任务列表勾选
46+
47+
### 数据主权
48+
49+
- 全部数据存本地 SQLite(`notes` / `sessions` / `notes_versions` / `ai_usage`…)
50+
- AI 密钥经 Windows DPAPI 加密存储,明文永不落盘
51+
- 云端能力(AI 精修 / 知识补充)默认关闭,授权后才可用,且只上传最小文本上下文
52+
53+
## 🏗 技术栈
54+
55+
| 层 | 选型 |
56+
|----|------|
57+
| 桌面壳 | **Tauri 2**(替代原 Electron 版) |
58+
| 前端 | React 19 + TypeScript + Vite |
59+
| 后端 / 系统层 | Rust(Tauri 主进程,引擎池常驻线程) |
60+
| 本地 ASR | sherpa-onnx crate(流式 Zipformer + Silero VAD + SenseVoice 两遍解码) |
61+
| 本地 OCR | paddle-ocr-rs(PaddleOCR PP-OCRv5/v6 ONNX) |
62+
| 本地数据库 | SQLite(rusqlite,含 FTS5) |
63+
| AI 增强 | 云端多模态(Qwen-VL 系,SiliconFlow 网关),不用本地 LLM |
64+
| 模型分发 | 随安装包捆绑 + 首启同步;开发期脚本下载 |
65+
66+
## 📁 仓库结构
67+
68+
```
69+
├── app/ # Tauri 桌面应用
70+
│ ├── src/ # React 19 前端(页面/组件/类型)
71+
│ └── src-tauri/ # Rust 主进程(引擎池/ASR/OCR/捕获/存储/AI)
72+
├── server/ # 服务端部署配置(docker-compose / nginx / deploy.sh,不含业务代码)
73+
├── docs/ # 文档体系(见「文档导航」)
74+
├── scripts/ # 辅助脚本(docs-check / version-bump / 学习会话检测)
75+
├── .github/workflows/ # CI/CD:pr-check(前端/Rust/文档三 job)+ release(NSIS 打包)
76+
├── .husky/ # 提交门禁(commitlint + lint-staged)
77+
└── package.json # 仓库级发布工具链(semantic-release)
78+
```
79+
80+
## 🚀 快速开始
81+
82+
### 前置要求
83+
84+
- Windows 10/11(当前主力平台;WASAPI 环回 / DXGI 屏幕捕获为 Windows 原生能力)
85+
- [Rust stable](https://www.rust-lang.org/tools/install)(含 MSVC 工具链)
86+
- [Node.js 20+](https://nodejs.org/) 与 npm
87+
88+
### 开发运行
89+
90+
```bash
91+
cd app
92+
npm install
93+
94+
npm run tauri dev # Tauri 开发模式(前端 + Rust 热重载)
95+
npm run build # 前端类型检查 + 构建(tsc + vite build)
96+
```
97+
98+
### Rust 侧验证
99+
100+
```bash
101+
cd app/src-tauri
102+
cargo build # 编译
103+
cargo test # 单元测试(拼接 / 切片 / 版本链 / 成本估算等纯逻辑)
104+
cargo clippy # lint(要求零警告)
105+
```
106+
107+
> 单测不依赖真实模型文件(模型相关用集成测试标注);`AI_REFINE_MOCK=1` / `AI_ENRICH_MOCK=1` 可离线走 AI 链路开发。
108+
109+
### 模型下载(开发期)
110+
111+
模型文件不提交仓库,通过脚本下载后放入 `app/src-tauri/models/`:
112+
113+
```bash
114+
# 流式 ASR 模型 / 标点模型 / 说话人模型 / ffmpeg(按需执行)
115+
node app/scripts/download-streaming-asr.mjs
116+
node app/scripts/download-punctuation.mjs
117+
```
118+
119+
> 网络注意:本机存在 TLS 拦截时 Rust 侧在线下载预编译库可能失败;sherpa-onnx 已通过 `sherpa-archive/` 本地库 + `.cargo/config.toml` 解决。
120+
121+
## 🔀 分支与发布
122+
123+
| 分支 | 用途 |
124+
|------|------|
125+
| `dev` | 日常开发主线(默认分支),所有功能开发在此进行 |
126+
| `main` | 发布线:合并后由 semantic-release 依据 Conventional Commits 自动版本化,生成 CHANGELOG 并触发 Tauri NSIS 打包发布 |
127+
| `old` | 旧 Electron 版代码存档(只读,仅作参照) |
128+
129+
- 提交规范:[Conventional Commits](https://www.conventionalcommits.org/zh-hans/)(`<type>(<scope>): <subject>`),husky + commitlint 强制门禁
130+
- 大功能(>2 天)开 `feature/*` 分支,完成后合入 `dev`
131+
132+
## 🧭 文档导航
133+
134+
| 入口 | 内容 |
135+
|------|------|
136+
| [docs/](docs/README.md) | 文档体系总览(维护节奏 / 写作规范) |
137+
| [docs/product/](docs/product/README.md) | 产品文档:PRD / 痛点图谱 / MVP 画布 / 需求池 |
138+
| [docs/adr/](docs/adr/README.md) | 架构决策记录(ADR-001 ~ ADR-016) |
139+
| [docs/standards/](docs/standards/README.md) | 工程规范(ai-coding / testing / git-workflow / security 等 20+ 篇) |
140+
| [docs/versions/](docs/versions/README.md) | 版本深度文档(v0.1.0 ~ v0.10.0) |
141+
| [docs/archive/](docs/archive/README.md) | 归档机制(每日快照 + 技术债滚动清单) |
142+
| [CHANGELOG.md](CHANGELOG.md) | 全量变更流水账 |
143+
144+
## 🗺 当前状态
145+
146+
重构进行中:原 Electron 版已存档至 `old` 分支,当前为 Tauri 2 全量重写。
147+
148+
- **已交付**:本地提取链路(ASR + OCR + 拼接 + 笔记)→ 系统实时捕获(WASAPI + DXGI + 流式 ASR + 字幕 OCR + 双源融合 + 会话)→ AI 精修 / 知识补充 / 版本链 / 成本与审计 → 视频档案四维解耦 v2(v0.9.0,cargo test 1352 全绿 + clippy 零警告)
149+
- **进行中**:v0.10.0 笔记能力建设(Markdown 渲染 / 编辑 / 时间戳回链 / 标签)——[规划文档](docs/versions/v0.10.0.md)
150+
- **后续**:间隔重复闪卡(SM-2)、回顾流、AI 问答等
151+
152+
## 📜 许可证
153+
154+
本项目采用 **BUSL-1.1**([Business Source License 1.1](https://opensource.org/license/busl-1-1)),全文见根目录 [LICENSE](LICENSE)。

0 commit comments

Comments
 (0)