APIキーの取得など
こちらの記事の通りにAPIキーを取得します。
DifyのモデルプロバイダーでAPIキーの設定
モデルプロバイダーのAmazon Bedrockをインストールと設定をします。
Authentication MethodはBedrock API Keyを指定し、Bedrock API KeyのフォームにBedrock側で発行したAPIキーを指定します。
AWS ReaginonもAPIキーを発行した際のリージョンにします。
今回はAsia Pacific (Tokyo)を指定。
ハローワールド
Difyで簡単なフローを組みます。ワークフローで作成してユーザー入力スタートとします。
LLMモジュールでAmazon Novaを選択します。Claudeなども選べますが折角なのでNovaを利用
オウム返し的な処理ができました。
APIキーをしてするだけなので楽ですね。
OCR機能を試す
Novaのモデルはビジョンが使えるので、レシートなどの文字抽出をしてみます。入力でファイルを指定します。
値をそんなに決めずにJSON出力を指示してみます。
USERのプロンプトにファイルの変数を指定し、ビジョンをONにします。
Amazonの領収書でOCRしてみる
Aamzon Bedrokの利用ということなので、AmazonでmineoのSIM買ってみた領収書にしてみます。
なんとなく値が取れました。
日付の誤認識: 精度を上げる
試したところ何個かうまく認識してくれませんでした。
Amazonの領収書だと左上が印刷した日付で注文日は領収書という文字の下に表示されます。
この内容だと注文日は2025年12月8日なのに12月11日と出力されてしまっていました。
また、2023年となっていますね。
あと、金額も350円なのに3500円となっています。
改善: 構造化出力をONにして対応
構造化出力の機能を使うとアウトプットのJSONを指定できます。モデルによっては使えないかも。型も決められます。
このようにpayment_dateとoutput_dateをスキーマ定義しつつ、total_priceは数値型(number)を指定します。
改善: プロンプト
2023年などの読み込みはミスなので、2025年だということを明示的に指定し、日付の表記揺れ対策で形式も指定しました。
## 役割
- あなたはOCR機能付きのAIアシスタントです
- ユーザーから送られてくる領収書を読み込み値を抽出してください。
## 出力時の注意
### 日付の扱い
注文日や決済日を読み込み、paymend_dateに出力してください。"YYYY年MM月DD日 HH:mm"で出力すること。2025年の日付となります。一番左上にある日付は注文日ではなく印刷日なので注意してください。
- payment_date: 注文日や決済日
- output_date: 領収書を印刷した日
出力結果
無事に出力されました。金額や日付もいい感じです。
終わりに。再検討要素など
割と手軽にできたのと精度もそれなりに良さそうなのでOCRの選択肢に良いかもしれません。
payment_dateの注文日はこの領収書的に時間が無いのですが、"YYYY年MM月DD日 HH:mm"で出力することとして形式を指定してしまったので、注文日の時間はハルシネーションが発生してしまってますね(11:59という架空の時間を出力している)。ここは要調整です。
- その他 たまにうまくいかなかった時
金額を型指定をミスってenumにしていたら3000などよくわからない数字になったりしたので型指定は大事そうですね。














