Skip to content

Commit 2b7bb0b

Browse files
committed
docs
1 parent 7147d80 commit 2b7bb0b

2 files changed

Lines changed: 102 additions & 12 deletions

File tree

.cursor/plans/Chats-OCR-Parsing-TechDoc.md

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -234,14 +234,49 @@ UI 上建议将 `.system` 以居中灰底的样式展示(类似微信),同
234234

235235
## 7. 调试与可观测性
236236

237-
- Debug overlay(未实现):
238-
- 在 UI 里叠加 bbox(候选消息 unionBBox + 原始 blocks bbox)
239-
- 展示方向判定结果(左/右簇中心、阈值)
240-
- 解析日志 ✅(2025-12-28 已实现):
241-
- 每张截图输出:输入 blocks 数、过滤后 blocks 数、候选消息数、左/右消息数
242-
- 使用 `LoggerService` 输出调试日志(可在 LoggerView 查看)
243-
- `ChatParseStatistics` 结构体记录所有统计指标
244-
- `parseWithStatistics()` 方法输出详细日志
237+
### 7.1 OCR Debug 测试功能 ✅(2025-12-29 已实现)
238+
239+
在 Settings → OCR Settings → Test OCR Recognition 中提供 Debug 测试功能:
240+
241+
- **图片导入**:点击按钮选择图片,或拖放图片到窗口
242+
- **实时识别**:导入后自动执行 OCR 识别
243+
- **结果展示**
244+
- **Statistics**:块数量、处理时间、语言模式、检测到的书写系统
245+
- **Block Details**:每个识别块的文本和 bbox 坐标
246+
247+
### 7.2 VisionOCRService 识别日志 ✅(2025-12-29 已实现)
248+
249+
`VisionOCRService` 输出详细的日志信息:
250+
251+
```
252+
[VisionOCR] Starting recognition, image size: 1080x1920
253+
[VisionOCR] Language mode: automatic, languages: zh-Hans, zh-Hant, en-US
254+
[VisionOCR] ✅ Recognition completed: 25 blocks (from 25 observations)
255+
[VisionOCR] 📊 Confidence: avg=0.95, min=0.82, max=0.99
256+
[VisionOCR] 🌐 Detected scripts: CJK (Chinese/Japanese Kanji), Latin (English/European)
257+
[VisionOCR] 📝 First 5 blocks:
258+
[VisionOCR] [1] "你好,今天天气真好" (conf: 0.98)
259+
[VisionOCR] [2] "是啊,适合出去走走" (conf: 0.95)
260+
```
261+
262+
日志内容包括:
263+
- 语言模式(automatic/manual)
264+
- 使用的语言列表
265+
- 识别统计(块数量、置信度分布)
266+
- 检测到的书写系统
267+
- 前 5 个识别结果预览
268+
269+
### 7.3 解析日志 ✅(2025-12-28 已实现)
270+
271+
- 每张截图输出:输入 blocks 数、过滤后 blocks 数、候选消息数、左/右消息数
272+
- 使用 `LoggerService` 输出调试日志(可在 LoggerView 查看)
273+
- `ChatParseStatistics` 结构体记录所有统计指标
274+
- `parseWithStatistics()` 方法输出详细日志
275+
276+
### 7.4 Debug overlay(未实现)
277+
278+
- 在 UI 里叠加 bbox(候选消息 unionBBox + 原始 blocks bbox)
279+
- 展示方向判定结果(左/右簇中心、阈值)
245280

246281
## 8. 隐私与安全
247282

Docs/Apple-Vision-OCR技术文档.md

Lines changed: 59 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -525,8 +525,42 @@ request.recognitionLanguages = configStore.selectedLanguageCodes // 用户选
525525
| 文件 | 描述 |
526526
|-----|------|
527527
| `OCRConfigStore.swift` | 语言配置存储(`OCRLanguageMode``OCRLanguage`,30 种语言) |
528-
| `VisionOCRService.swift` | 根据 `OCRConfigStore` 动态设置语言参数 |
529-
| `OCRSettingsView.swift` | 简洁的语言选择 UI(下拉菜单 + 语言选择 Sheet) |
528+
| `VisionOCRService.swift` | 根据 `OCRConfigStore` 动态设置语言参数,输出详细日志 |
529+
| `OCRSettingsView.swift` | 简洁的语言选择 UI(下拉菜单 + 语言选择 Sheet + Debug 测试) |
530+
531+
#### OCR 识别日志
532+
533+
`VisionOCRService` 会输出详细的日志信息,帮助调试和验证识别结果:
534+
535+
```
536+
[VisionOCR] Starting recognition, image size: 1080x1920
537+
[VisionOCR] Language mode: automatic, languages: zh-Hans, zh-Hant, en-US
538+
[VisionOCR] ✅ Recognition completed: 25 blocks (from 25 observations)
539+
[VisionOCR] 📊 Confidence: avg=0.95, min=0.82, max=0.99
540+
[VisionOCR] 🌐 Detected scripts: CJK (Chinese/Japanese Kanji), Latin (English/European)
541+
[VisionOCR] 📝 First 5 blocks:
542+
[VisionOCR] [1] "你好,今天天气真好" (conf: 0.98)
543+
[VisionOCR] [2] "是啊,适合出去走走" (conf: 0.95)
544+
...
545+
```
546+
547+
日志内容包括:
548+
- **语言模式**:自动检测(automatic)或手动选择(manual)
549+
- **使用的语言列表**:实际传递给 Vision 的语言代码
550+
- **识别统计**:块数量、置信度分布(平均/最小/最大)
551+
- **检测到的书写系统**:CJK、Hiragana、Katakana、Hangul、Arabic、Cyrillic、Thai、Latin
552+
- **前 5 个识别结果预览**:文本内容和置信度
553+
554+
#### Debug 测试功能
555+
556+
在 Settings → OCR Settings 中提供 Debug 测试功能("Test OCR Recognition"),支持:
557+
558+
1. **导入图片**:点击按钮选择图片,或拖放图片到窗口
559+
2. **实时识别**:导入后自动执行 OCR 识别
560+
3. **结果展示**
561+
- 统计信息:块数量、处理时间、语言模式、检测到的书写系统
562+
- 识别文本:完整的识别文本内容
563+
- 块详情:每个识别块的文本和 bbox 坐标
530564

531565
### 6.5 自定义词汇 (customWords)
532566

@@ -667,10 +701,10 @@ Vision 框架返回的数据映射到 `OCRBlock` 结构:
667701

668702
| 文件 | 描述 |
669703
|-----|------|
670-
| `VisionOCRService.swift` | Vision OCR 服务实现 |
704+
| `VisionOCRService.swift` | Vision OCR 服务实现(含详细识别日志) |
671705
| `OCRConfigStore.swift` | 语言配置存储(`OCRLanguageMode``OCRLanguage`、30 种语言) |
672706
| `OCRModels.swift` | 数据模型(`OCRResult``OCRBlock`)和协议定义 |
673-
| `OCRSettingsView.swift` | 设置界面(语言模式选择、语言列表) |
707+
| `OCRSettingsView.swift` | 设置界面(语言模式选择、语言列表、Debug 测试|
674708
| `DIContainer.swift` | 服务注册 |
675709

676710
### 9.2 OCRAPIServiceProtocol 协议
@@ -705,6 +739,27 @@ protocol OCRAPIServiceProtocol {
705739

706740
### 10.3 调试技巧
707741

742+
**使用内置 Debug 工具**
743+
744+
1. 打开 Settings → OCR Settings
745+
2. 点击 "Test OCR Recognition" 按钮
746+
3. 导入测试图片(支持拖放)
747+
4. 查看识别结果、统计信息和块详情
748+
749+
**查看日志**
750+
751+
打开 Settings → Logs 窗口,过滤 `[VisionOCR]` 查看识别日志:
752+
753+
```
754+
[VisionOCR] Starting recognition, image size: 1080x1920
755+
[VisionOCR] Language mode: automatic, languages: zh-Hans, zh-Hant, en-US
756+
[VisionOCR] ✅ Recognition completed: 25 blocks
757+
[VisionOCR] 📊 Confidence: avg=0.95, min=0.82, max=0.99
758+
[VisionOCR] 🌐 Detected scripts: CJK, Latin
759+
```
760+
761+
**代码调试**
762+
708763
```swift
709764
// 打印支持的语言
710765
if let languages = try? VNRecognizeTextRequest.supportedRecognitionLanguages(for: .accurate, revision: VNRecognizeTextRequestRevision3) {

0 commit comments

Comments
 (0)