重複工作的開始
昨天早上,團隊的一位成員大喊出來。「這些運單號碼,每次都得手動打字嗎?」
情況是這樣的。經營 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 也會困擾。如果可能的話,用原始檔案或提高掃描解析度,就能大幅提升準確度。