一、实训时间

2026年6月8日 - 2026年6月12日

二、阶段工作目标

对OCR识别功能进行全面优化,提升识别速度、完善提示词策略、优化前端展示效果、修复遗留Bug,使OCR功能达到生产可用状态。

三、识别速度优化

(一)模型选择与测试

通过curl命令行测试多个豆包模型的响应速度:

curl https://ark.cn-beijing.volces.com/api/v3/chat/completions \ -H "Authorization: Bearer $API_KEY" \ -d "{\"model\": \"doubao-seed-2-0-lite-260215\", \"messages\": [{\"role\": \"user\", \"content\": \"你好\"}]}"
测试结果对比

模型

响应速度

准确度

选用

doubao-seed-2-0-pro-260215

⭐⭐⭐⭐⭐

doubao-seed-2-0-lite-260215

⭐⭐⭐⭐

doubao-seed-2-0-mini-260428

较快

⭐⭐⭐⭐

✅ 最终选用

最终选择doubao-seed-2-0-mini-260428作为默认模型,在速度和准确度间取得最佳平衡。

(二)图片压缩参数优化

优化项

优化前

优化后

效果

最大宽度

1000px

400px

图片尺寸减少60%

JPEG质量

0.5

0.3

文件大小再减40%

压缩阈值

50KB

30KB

更小图片也压缩

最终大小

100-200KB

30-60KB

传输时间减60%

(三)提示词精简

第一步提示词优化

✏️ 优化前: "你是一个专业的OCR识别助手。请仔细识别图片中的文字内容,自动判断文字排版方向..."

优化后: "直接输出图片中的文字内容,保留原文的断句和换行,不要任何解释。"

第二步提示词优化

✏️ 优化前: 大段系统提示词 + 详细格式说明

优化后: 极简JSON格式要求 + "用大白话翻译(像朋友聊天一样通俗易懂)"

优化效果: 总耗时从30-50秒降至15-35秒,减少约50%。

四、识别质量提升

(一)大白话翻译

提示词从"现代文翻译"改为"用大白话翻译(像朋友聊天一样通俗易懂)"。

效果对比

优化前

优化后

怀素籍贯长沙,自幼侍奉佛法

怀素是长沙人,小时候就当了和尚

(二)标点符号自动添加

在第二步JSON格式中新增originalTextWithPunctuation字段,要求模型为无标点古文添加标点。

效果对比

优化前

优化后

天地玄黄宇宙洪荒日月盈昃辰宿列张

天地玄黄,宇宙洪荒。日月盈昃,辰宿列张。

(三)断句保留

第一步提示词增加"保留原文的断句和换行",前端CSS使用white-space: pre-wrap保留换行符,使识别结果保持原有段落结构。

五、前端体验优化

(一)图片对照展示

在结果对话框中增加左侧图片展示区域(占40%宽度),与右侧原文形成左右对照。图片使用el-image组件,支持点击放大预览(preview-teleported)。

(二)实时状态细化

将处理状态从简单的"处理中"细化为:

  • PROCESSING:显示"识别原文中...",进度0-45%

  • ORIGINAL_READY:显示"翻译生成中...",进度60-90%

  • COMPLETED:显示"已完成",进度100%

每个状态对应不同的loading文案和进度条颜色。

(三)按钮对齐修复

.action-buttons { display: flex; align-items: center; justify-content: center; gap: 6px; white-space: nowrap; }

(四)空值保护

全面添加null安全检查:

  • record.originalFileName || '-':表格显示

  • currentOCR.originalFileName || '未知':对话框

  • const file = uploadForm.value.file:上传前保存引用

六、Bug修复清单

问题

代码层面原因

修复方案

401认证失败

@ConfigurationProperties(prefix = "ocr")读取不到ocr.api.key

改为prefix = "ocr.api"

图片接口403

SecurityConfig未放行GET请求

添加.antMatchers(HttpMethod.GET, "/api/ocr/image/**").permitAll()

error_message溢出

@Column默认VARCHAR(255)

截断500字符 + 数据库ALTER TABLE改为TEXT

翻译内容挤在一起

vocabArr解析异常导致整个try-catch失败

各字段独立getStr,单字段失败不影响其他

按钮不对齐

el-button直接放el-table-column中

外层div + flex容器

Cannot read properties of null

uploadForm.value.file.name在resetUploadForm()后为null

上传前const file = uploadForm.value.file保存引用

七、阶段项目成果

(一)性能优化成果

  • 识别速度提升50%:总耗时从30-50秒降至15-25秒

  • 模型升级:从Lite版升级到Mini版,速度更快,精度不降

  • 图片压缩优化:传输体积减少70%,API响应更快

  • 提示词精简:减少冗余指令,提升AI处理效率

(二)体验优化成果

  • 大白话翻译:翻译更接地气,用户更容易理解

  • 自动加标点:无标点古文自动断句,阅读体验大幅提升

  • 图片对照:左右分栏展示,原文与图片对照查看

  • 细化状态:多阶段进度展示,用户感知更清晰

(三)Bug修复成果

  • 修复认证、权限、字段溢出等6个影响稳定性的Bug

  • 全面添加null安全检查,系统鲁棒性大幅提升

  • 修复UI布局问题,视觉体验更统一

八、阶段总结与后续规划

(一)阶段总结

在6月8日至6月12日的实训周期内,我对OCR功能进行了全面优化与完善。通过模型选型优化、图片压缩参数调优、提示词精简等手段,将识别速度提升了约50%;通过大白话翻译、自动标点添加、图片对照展示等优化,大幅提升了用户体验;同时修复了认证、权限、字段溢出等6个影响稳定性的Bug。目前OCR功能已达到生产可用状态,能够稳定、高效地完成古籍、碑帖、书法等各类图片文档的识别与结构化输出任务。

(二)下一步工作计划

  • 增加用户反馈机制,持续优化提示词策略

  • 集成手写体识别模型,扩展应用场景

  • 进一步完善历史轨迹和OCR两个模块

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐