重复工作的开始
昨天早上,团队的一位成员大喊出来。「这些运单号码,每次都得手动打字吗?」
情况是这样的。经营 B2B 业务时,每天都会收到 20~30 份配送相关文件。PDF 和图像格式的运单,必须逐个手工提取追踪号码,然后输入到电子表格中。大约每天 8 小时。鼠标点击几百次。
这一刻就是打开 Claude Code 的信号。
第一次尝试:从图像中读取文字
Claude Code 的视觉功能(图像识别)可以读取照片中的文字。想法很简单。
1. 指定运单图像文件夹。
2. Claude Code 读取每张图像。
3. 用正则表达式寻找运单号码模式。
4. 自动输入到电子表格。
第一段代码是这样的。
import anthropic
import base64
import json
from pathlib import Path
def extract_tracking_numbers(image_folder_path):
client = anthropic.Anthropic()
results = []
for image_file in Path(image_folder_path).glob('*.png'):
with open(image_file, 'rb') as f:
image_data = base64.standard_b64encode(f.read()).decode('utf-8')
message = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": image_data,
},
},
{
"type": "text",
"text": "请从这张图像中找出运单号码。只提取数字。"
}
],
}
],
)
tracking_num = message.content[0].text.strip()
results.append({"file": image_file.name, "tracking_number": tracking_num})
return results
第二道障碍:准确度之墙
有趣的事发生了。Claude 确实能读取图像,但有时会把「TRK-12345」读成「TRK 12345」,或把「1」识别成「l」(小写的 L)。
每份数字文件的扫描方式略有不同。来自无线传真机的图像尤其严重。
解决方案?给 Claude 更详细的指示。
"text": """请从这张图像中找出运单号码。
规则:
1. 找出只包含数字和大写英文的内容。
2. 长度通常是 10~20 位。
3. 如果看到 'l'(小写 L),请再次确认是否应该是「1」(数字一)。
4. 结果请用 JSON 格式返回 {"tracking_number": "数字", "confidence": "高/低"}。
"""
准确度从 94% 提升到 98.5%。
第三阶段:与电子表格连结
连接了 Google Sheets API,将提取的号码自动输入到电子表格中。这部分比预期要复杂。因为必须确保不与现有数据重复。
from google.oauth2.service_account import Credentials
import gspread
def append_to_sheet(spreadsheet_id, sheet_name, tracking_data):
creds = Credentials.from_service_account_file('credentials.json')
gc = gspread.authorize(creds)
worksheet = gc.open_by_key(spreadsheet_id).worksheet(sheet_name)
existing_numbers = worksheet.col_values(1)
for data in tracking_data:
if data["tracking_number"] not in existing_numbers:
worksheet.append_row([data["tracking_number"], data["timestamp"]])
意外的发现:Windows 设备的性能
一开始在 Mac mini 上测试时速度很慢。但当在团队成员的 Windows 设备上执行相同代码时,速度快了 3 倍。可能是网络频宽的原因。
发现后,我们将所有大量处理都排定在 Windows 环境中执行。
结果:72 小时的变化
• 之前:1 天 8 小时,手动输入
• 现在:1 天 15 分钟,自动化 + 验证
• 错误率:既有 3~5% → 0.5% 以下
• 团队成员满意度:「终于从这项工作中解放了」
最好的部分是什么?现在可以把那 8 小时用在其他工作上了。
跟着做:迈出第一步
如果有类似的重复工作,可以按这个顺序开始。
1. 打开 Claude Code 并说明问题。「我想从图像中提取文字」
2. 用一张范例图像测试。检查准确度。
3. 用正则表达式明确化模式。
4. 考虑电子表格或数据库连结。
5. 先用小文件夹(5~10 个文件)进行自动化。
还有一个提示。如果图像品质低,Claude 也会困扰。如果可能的话,用原始文件或提高扫描分辨率,就能大幅提升准确度。