DioDocs for PDFのAIアシスタントを利用して要約とアウトラインを作成する

今回は「DioDocs for PDF(ディオドック)」の最新バージョン「V8J SP2」では「AIアシスタント機能」が追加されています。

先日のブログ記事では、Azure OpenAIを利用してPDFファイルの内容を要約する方法をご紹介しましたが、この際にはPDFファイル内のテキストをすべて読み込むといった実装が必要でした。

「V8J SP2」でDioDocsに追加された同機能の利用では、こうした読込処理を簡略化できるほか、アウトライン(目次)の作成なども可能です。今回はこのAIアシスタント機能の使用方法を紹介します。

AIアシスタント機能

DioDocs for PDFのAIアシスタントでは、以下の機能を提供しています。

  • PDFドキュメントの要約および概要の生成
  • PDFドキュメントのアウトライン(目次)の生成
  • PDFドキュメントからテーブルデータの抽出

AIアシスタントはDioDocs.Pdf.AI.jaパッケージを追加して利用できます。OpenAIサービスと連携する以下の2つのクラスがGrapeCity.Documents.Pdf.AI名前空間で提供されており、各機能を実装しています。

今回はAzureOpenAIDocumentAssistantクラスを使用して、Azure OpenAIと連携する方法を使用します。

AIアシスタント機能を実装する

前提条件

  • Azure OpenAIのリソースを作成してAIモデルをデプロイしておきます(参考)。今回はgpt-5-miniを使用します。
  • Azure CLIを使用してAzureのサブスクリプションに認証を通しておきます(参考
  • 内容の要約に使用するPDFファイルを用意します(今回はこちらにある2025年デジタル庁活動報告を使用します。こちらのPDFファイルは44ページあるので、全体を要約するにはDioDocs for PDFのトライアル版か製品版のライセンスキーが必要です)

アプリケーションの作成

Visual Studioでコンソールアプリケーションを作成します。

アプリケーションの作成

NuGetパッケージマネージャーから以下のパッケージをインストールします。

  • DioDocs.Pdf.ja
  • DioDocs.Pdf.AI.ja
  • Azure.Identity
アプリケーションの作成

AIアシスタントの作成

Program.csに以下のコードを追加します。AzureOpenAIClientクラスを使用してAzure OpenAIにデプロイしたリソースに接続し、AzureOpenAIDocumentAssistantクラスを使用してAIアシスタントを作成します。その際に使用するAIモデルを設定します。

using Azure.AI.OpenAI;
using Azure.Identity;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Pdf.AI;

// Azure OpenAIクライアントの作成
var azureClient = new AzureOpenAIClient(
    new Uri("https://mescius-azure-openai-test-1.openai.azure.com/"),
    new DefaultAzureCredential());

// AIアシスタントの作成
var assistant = new AzureOpenAIDocumentAssistant(azureClient)
{
    Model = "mescius-gpt-5-mini-test",
};

要約を取得するコードを追加

続けて以下のコードを追加します。GetAbstractMessageGetSummaryMessageプロパティでプロンプトを設定し、GetAbstractGetSummaryメソッドで簡潔な要約と詳細な要約を取得します。

// PDFファイルを読み込み
using var fs = File.OpenRead("20250905_activity_report.pdf");
var doc = new GcPdfDocument();
doc.Load(fs);

// プロンプトを設定
assistant.GetAbstractMessage = "PDFを分析して文書の簡潔な要約を返してください。";

// GetAbstractで要約を取得
string abstractResult = await assistant.GetAbstract(doc);

// プロンプトを設定
assistant.GetSummaryMessage = "PDFを分析して文書の詳細な要約を返してください。";

// GetSummaryで要約を取得
string summaryResult = await assistant.GetSummary(doc);

// 取得した結果をコンソールに表示
Console.WriteLine("---------------------------");
Console.WriteLine("Abstract:");
Console.WriteLine(abstractResult );
Console.WriteLine("---------------------------");
Console.WriteLine("Summary:");
Console.WriteLine(summaryResult);
Console.WriteLine("---------------------------");

実行するとコンソールに結果が返されます。

要約を取得するコードを追加
要約を取得するコードを追加

アウトライン(目次)を作成するコードを追加

今回使用しているPDFファイル(2025年デジタル庁活動報告)ですが、以下のように目次が適切に設定されているとは言えない状態になっています。

アウトライン(目次)を作成するコードを追加

AIアシスタントでは、このようなPDFファイルにBuildOutlinesメソッドを使用してアウトラインを作成することができます。

// すべてのアウトラインノードを削除
doc.Outlines.Clear();

// アウトラインを作成
await assistant.BuildOutlines(doc);
doc.Save("outline-result.pdf");

実行すると以下のように、出力したPDFファイルにアウトラインが設定されていることが確認できます。

アウトライン(目次)を作成するコードを追加

今回紹介したAIアシスタント機能については以下のデモやヘルプで詳細を確認いただけます。

DioDocsの最新バージョン「V8J SP2」の新機能については、以下のページで紹介していますのでこちらも是非ご覧ください。

さいごに

弊社Webサイトでは、製品の機能を気軽に試せるデモアプリケーションやトライアル版も公開していますので、こちらもご確認いただければと思います。

また、ご導入前の製品に関するご相談やご導入後の各種サービスに関するご質問など、お気軽にお問合せください。

\  この記事をシェアする  /