🥽

【Dify】Upstageプラグインを開発してOCR技術をアプリに組み込む

に公開

はじめに

こんにちは。Fusicの大宮です🫡

いきなりですが、Upstageの提供するOCR/DocumentAI技術を、
ノーコードで生成AIサービスを開発できるプラットフォームであるDifyに組み込めれば幸せですよね👀

今回はそれを実現するプラグインの開発をしたので紹介します。
20251207現在、Dify公式にPRを送信しているので、
承認されたタイミングでDify Marketplace上でのインストールが可能になります。

パッケージ/PR作成

  • Dify公式に従ってパッケージテンプレートを取得/開発/公開します。
  • 開発工程では、実際のコードとプラグイン/ツールの説明を書きます。
  • 公開工程では、Dify公式の手順に従います。

プラグインの機能紹介

1. Document Parse Tool(文書解析)

  • 複雑なドキュメントを大規模言語モデル(LLM)がシームレスに処理できる形式に変換する機能
  • PDF、スキャン画像、入れ子テーブル、グラフ等をHTMLやMarkdownなどの構造化形式に変換可能
  • テキスト、表、グラフ、手書きの要素を含む PDF、スキャンした画像、スプレッドシート等に対応
  • 公式:https://www.upstage.ai/products/document-parse

2. Information Extract Tool(情報抽出)

  • 様々な形式のドキュメントから情報を抽出し、構造化データにする機能
  • 特徴は、追加のトレーニングやカスタマイズなしでドキュメントから情報を処理・抽出可能である点
    • プラグイン上では、入力としてスキーマを定義するだけで使用可能です。
  • 申請フォームや契約書/報告書といった非構造化ドキュメントから情報を抽出することが可能
  • 詳細は、こちらのブログでFusicのレオナ氏が紹介しているのでご覧ください。
  • 公式:https://www.upstage.ai/products/information-extract

成果物サンプル(名刺情報解析アプリ)

サンプルとして作成してみたアプリケーションの説明をします。

処理の流れ

ワークフロー

1. 名刺画像を入力

私の名刺です。多少斜めっていても問題なし!

2. UpstageのInformation Extractで、名刺画像から特定の情報だけを抽出

【Toolへの設定】

嬉しいポイントは以下の通りです。

  • 特定の情報だけを抽出できる点
    • 後にLLMで処理させる際にノイズとなる余計な情報を除いたデータだけを構造化して渡す。
  • スキーマ定義だけで利用できる点
    • Upstage APIの設定,知識のキャッチアップが不要(プラグインがラップ)
 {
    "name": "Extract the full name of the individual, including first and last name",
    "company": "Extract the company or organization name where the person works",
    "title": "Extract the job title, position, or role of the person",
    "email": "Extract the email address in standard format",
    "phone": "Extract all phone numbers including mobile, office, and fax numbers",
    "address": "Extract the complete business address including street, city, state, and postal code"
}

【抽出結果jsonデータ】

しっかりと名刺画像から情報を抽出することができましたね。

{
  "text": "",
  "files": [],
  "json": [
    {
      "address": "福岡市中央区天神4-1-7第3明星ビル6F",
      "company": "株式会社 Fusic, Fusic",
      "email": "omiya@fusic.co.jp",
      "name": "大宮佑仁, Yujin Omiya",
      "phone": "092-737-2616",
      "title": "エンジニア"
    }
  ]
}

3. 人物検索Agent,会社検索AgentがWEB情報収集

ここはプラグイン部分と直接関連しないので割愛します。
後の記事で紹介するのでおたのしみに!

4. 要約Agentが結果をまとめて出力

ここはプラグイン部分と直接関連しないので割愛します。

出力結果

内容を確認しましたが、正しい内容を返せているようです。

【人物】
  元陸上自衛官で、独学で培った技術力とAWS認定資格を活かし、株式会社Fusicでクラウドエンジニアとして活躍する人物。

  **人物概要:**
  *   **氏名:** 大宮 佑仁 (Omiya Yujin)
  *   **所属:** 株式会社Fusic 事業本部/クラウドエンジニアリング部門 エンジニア
  *   **パーソナリティ:** せっかくの人生をとことん楽しみたい性格で、関心のある物事に対して全身全霊で取り組む。日々の新しい出会いや学びを大切にし、成長し続けたいと考えている。
  *   **略歴:**
      *   北海道生まれ、関東で陸上自衛隊へ入隊。
      *   自衛隊でネットワーク・システム運営の任務に携わりながら、プログラミングとサイバーセキュリティを独学。
      *   モノ作りで社会貢献したい想いから、2025年2月にFusicに入社。
      *   入社わずか3ヶ月で「2025 Japan AWS All Certifications Engineers」を取得。
  *   **担当・スキル:**
      *   主にPHP/Laravel等の技術を用いたWeb開発やインフラ構築を担当。
      *   自衛隊での経験とスキルを活かし、真心と誠実さをもってお客様の課題に向き合う。
  *   **資格:**
      *   AWS認定 (2025 Japan AWS All Certifications Engineers など)
      *   情報処理安全確保支援士試験合格 (IPA)
      *   Linux技術者認定試験 (LPIC) Level2
  *   **プライベート:**
      *   休日はランニングや筋力トレーニングで自分と向き合う。
      *   四季折々の自然を観に行くのが好き。

【企業】
  クラウド、AI、IoTなどを軸に、システム開発やコンサルティングを提供する福岡拠点のIT企業。

  **企業概要:**
  *   **会社名:** 株式会社Fusic (フュージック)
  *   **所在地:** 福岡県福岡市中央区 (本社)
  *   **ブランドスローガン:** OSEKKAI × TECHNOLOGY
  *   **事業内容:**
      *   クラウド、AI・機械学習、IoT、Webアプリ開発、UI/UXデザインなどを組み合わせる「技術結合力」を強みとする。
      *   システム開発および技術コンサルティングを提供。
      *   近年は宇宙・衛星開発企業向けのクラウド基盤構築や衛星データ解析支援など、宇宙ビジネスにも注力。
  *   **事業展開:**
      *   **クロステクノロジー:** クラウド環境構築、システム開発、IoTデータ収集、AI・機械学習データ分析、Webシステム、UI/UXデザインなどを統合的に提供。
      *   **MSP (マネージドサービスプロバイダ):** システムおよびクラウド環境の保守・運用、AWSを中心としたパブリッククラウドの再販サービス。
      *   **プロダクト事業:** 360度評価ツール「360」、連絡サービス「sigfy」。
  *   **特徴:**
      *   プライム案件を基本とし、すべてのプロセスを内製化。
      *   お客様の課題解決に寄り添い、期待を超える価値を提供することを大切にしている。
      *   フラットな組織文化。
      *   一次請け・上流工程から関わることにこだわりを持つ。
  *   **上場情報:** 2023年3月、東京証券取引所グロース市場及び福岡証券取引所Q-Boardに上場。
  *   **その他:** ASEAN地域での海外プロジェクトも複数受注しており、シンガポールを拠点に事業を拡大中。

まとめ

Upstageの提供するOCR/DocumentAI技術をDifyに組み込むことで、
高精度なドキュメント解析技術をシンプルな操作でアプリに搭載する例をご紹介しました。

Upstageの高精度な文書解析/情報抽出を扱うためにはAPI関連の知識が必要になりますが、
プラグインの開発によってそれを省略することができます。

マーケットプレイスへの公開までまだ時間はかかるかと思いますが、
公開後も継続的に整備、改良していきたいと思います。

ではまた!

Fusic 技術ブログ

Discussion