2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon NovaモデルをDifyで利用して領収書読み取りをやってみた

Posted at

APIキーの取得など

こちらの記事の通りにAPIキーを取得します。

DifyのモデルプロバイダーでAPIキーの設定

モデルプロバイダーのAmazon Bedrockをインストールと設定をします。

CleanShot 2025-12-11 at 18.06.17.png

Authentication MethodはBedrock API Keyを指定し、Bedrock API KeyのフォームにBedrock側で発行したAPIキーを指定します。

image.png

AWS ReaginonもAPIキーを発行した際のリージョンにします。

今回はAsia Pacific (Tokyo)を指定。

ハローワールド

Difyで簡単なフローを組みます。ワークフローで作成してユーザー入力スタートとします。

LLMモジュールでAmazon Novaを選択します。Claudeなども選べますが折角なのでNovaを利用

CleanShot 2025-12-11 at 18.08.58.png

オウム返し的な処理ができました。

CleanShot 2025-12-11 at 18.10.22.png

APIキーをしてするだけなので楽ですね。

OCR機能を試す

Novaのモデルはビジョンが使えるので、レシートなどの文字抽出をしてみます。入力でファイルを指定します。

CleanShot 2025-12-11 at 18.12.28.png

値をそんなに決めずにJSON出力を指示してみます。

CleanShot 2025-12-11 at 18.45.12.png

USERのプロンプトにファイルの変数を指定し、ビジョンをONにします。

CleanShot 2025-12-11 at 18.46.39.png

Amazonの領収書でOCRしてみる

Aamzon Bedrokの利用ということなので、AmazonでmineoのSIM買ってみた領収書にしてみます。

CleanShot 2025-12-11 at 18.00.55.png

なんとなく値が取れました。

CleanShot 2025-12-11 at 18.27.10.png

日付の誤認識: 精度を上げる

試したところ何個かうまく認識してくれませんでした。

Amazonの領収書だと左上が印刷した日付で注文日は領収書という文字の下に表示されます。

CleanShot 2025-12-11 at 18.34.33.png

この内容だと注文日は2025年12月8日なのに12月11日と出力されてしまっていました。

また、2023年となっていますね。

CleanShot 2025-12-11 at 18.37.09.png

あと、金額も350円なのに3500円となっています。

改善: 構造化出力をONにして対応

構造化出力の機能を使うとアウトプットのJSONを指定できます。モデルによっては使えないかも。型も決められます。

CleanShot 2025-12-11 at 18.50.43.png

CleanShot 2025-12-11 at 18.49.08.png

このようにpayment_dateとoutput_dateをスキーマ定義しつつ、total_priceは数値型(number)を指定します。

改善: プロンプト

2023年などの読み込みはミスなので、2025年だということを明示的に指定し、日付の表記揺れ対策で形式も指定しました。

## 役割
- あなたはOCR機能付きのAIアシスタントです
- ユーザーから送られてくる領収書を読み込み値を抽出してください。

## 出力時の注意

### 日付の扱い
注文日や決済日を読み込み、paymend_dateに出力してください。"YYYY年MM月DD日 HH:mm"で出力すること。2025年の日付となります。一番左上にある日付は注文日ではなく印刷日なので注意してください。

- payment_date: 注文日や決済日
- output_date: 領収書を印刷した日

出力結果

無事に出力されました。金額や日付もいい感じです。

CleanShot 2025-12-11 at 18.53.15.png

終わりに。再検討要素など

割と手軽にできたのと精度もそれなりに良さそうなのでOCRの選択肢に良いかもしれません。

payment_dateの注文日はこの領収書的に時間が無いのですが、"YYYY年MM月DD日 HH:mm"で出力することとして形式を指定してしまったので、注文日の時間はハルシネーションが発生してしまってますね(11:59という架空の時間を出力している)。ここは要調整です。

  • その他 たまにうまくいかなかった時

金額を型指定をミスってenumにしていたら3000などよくわからない数字になったりしたので型指定は大事そうですね。

CleanShot 2025-12-11 at 18.33.36.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?