はじめに:PDFのデータ入力、まだ手作業ですか?
こんにちは!請求書や契約書のPDFを開いて、金額や日付を1つずつExcelに転記する作業…正直、しんどいですよね。Snowflake Document AI を使えば、PDFファイルから必要な項目をAIが自動で読み取り、SQLで扱えるテーブルとして取り出せます。
この記事では、Document AIとは何か、どんな手順でPDFからデータを抽出するのかを、初心者の方にも分かりやすく解説していきます。読み終わるころには「これ、うちの会社でも使えそう!」と思えるはずです。

Snowflake Document AIってなに?
Document AI は、PDFや画像などの非構造化ドキュメントから、AI(大規模言語モデルベースの「Arctic-TILT」というモデル)を使ってテキストや値を抽出するSnowflakeの機能です。特徴を3つあげると…
- 質問形式で抽出指示:「請求金額はいくら?」と日本語で聞く感覚で項目を定義できます
- 少量データでファインチューニング可能:数件のサンプルをレビューするだけで精度が上がります
- SQLから呼び出せる:抽出ロジックを関数化して、通常のテーブル操作と同じように使えます
同じCortex系の機能である Snowflake Cortex EXTRACT_ANSWERで文書から自動で答えを抽出しよう はテキストデータが対象ですが、Document AIは PDFや画像そのもの を扱える点が大きな違いです。
抽出までの全体フロー
Document AIの使い方は、ざっくり次の4ステップです。
- Snowsightで ビルド(モデル) を作成
- サンプルPDFをアップロードして 抽出したい項目を質問形式で定義
- 数件レビュー&公開して モデルをパブリッシュ
- SQLから PREDICT関数 を呼び出して本番PDFに適用
ステップ1:Snowsightでビルドを作成
Snowsightの左メニューから「AI & ML」→「Document AI」を開き、「+ Build」をクリックします。名前(例: invoice_extractor)とデータベース・スキーマを指定して作成しましょう。

ステップ2:質問を定義してサンプルをアップロード
ビルドの編集画面で、抽出したい項目を 質問の形 で登録します。たとえば請求書なら…
invoice_number: 請求書番号は何ですか?total_amount: 合計金額(税込)はいくらですか?issue_date: 発行日はいつですか?vendor_name: 請求元の会社名は?
その後、サンプルPDFを20〜50件アップロードし、AIの回答を画面で確認しながら間違いを訂正します。これがいわゆる「ファインチューニング」の役割を果たします。
ステップ3:モデルをパブリッシュ
レビューが終わったら「Publish version」をクリック。これでSQLから呼び出せる関数 your_build_name!PREDICT が使えるようになります。
ステップ4:SQLでPDFを推論
本番のPDFはステージ(内部ステージ)に置いておきます。GET_PRESIGNED_URL でURL化し、PREDICT関数に渡すのが基本パターンです。
-- ステージにPDFを置いた後の例
SELECT
relative_path,
invoice_extractor!PREDICT(
GET_PRESIGNED_URL(@my_pdf_stage, relative_path), 1
) AS extracted
FROM DIRECTORY(@my_pdf_stage);
結果はJSON(VARIANT型)で返ってくるので、必要な項目をフラット化して取り出します。
SELECT
relative_path,
extracted:invoice_number[0].value::STRING AS invoice_no,
extracted:total_amount[0].value::NUMBER AS total,
extracted:issue_date[0].value::DATE AS issued_at,
extracted:invoice_number[0].score::FLOAT AS confidence
FROM (
SELECT relative_path,
invoice_extractor!PREDICT(
GET_PRESIGNED_URL(@my_pdf_stage, relative_path), 1) AS extracted
FROM DIRECTORY(@my_pdf_stage)
);
score(信頼度)も一緒に返るので、「0.8未満は人間が再確認する」といった運用ルールも作りやすいですね。
こんなユースケースで活躍します
- 請求書の自動仕訳:経理部門の入力作業を削減できます
- 契約書のメタデータ管理:契約期間・更新日を一覧化してアラート通知につなげられます
- 納品書の照合:発注データとの差分チェックを自動化できます
- 申込書のデータ化:紙ベースのフォームをDB登録する流れに乗せられます
使うときの注意点
- Document AIは特定リージョンでのみ利用可能なので、利用前に対応リージョンを確認しましょう
- PDFサイズや1ファイルあたりのページ数に上限があります(数十ページ程度が目安です)
- 料金はクレジット消費型で、ページ数とモデル種別に応じて課金されます。コストは
ACCOUNT_USAGEビューで確認できます - 機密書類を扱う場合は、ステージへのアクセス権限(RBAC)を必ず絞り込みましょう
まとめ
Snowflake Document AIは、これまで人手に頼っていたPDFのデータ入力作業を、SQLベースでサクッと自動化できる強力な機能です。Snowsightで質問を定義してPublish、あとはPREDICT関数を呼ぶだけ…という驚くほどシンプルな手順でスタートできます。
まずは社内に転がっている請求書や申込書を10件ほど集めて、試しにビルドを作ってみるのがおすすめです。「ここまで自動化できるんだ!」という感動をぜひ味わってみてください。
参考リンク
関連記事
- Snowflake Cortex EXTRACT_ANSWERで文書から自動で答えを抽出しよう – テキストデータからQ&A形式で値を抜き出す関数の解説です
- Snowflake Cortexとは?生成AI機能の全体像と料金をやさしく解説 – Cortex全体像と料金の入門記事です
- Snowflake Cortex LLM関数まとめ|COMPLETE・SUMMARIZE・TRANSLATE・SENTIMENTの使い方 – 他のAI関数と組み合わせて文書処理を強化できます

