0
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?

複数資料から定型ドキュメントを自動作成するエージェントを作ってみた

0
Posted at

生成AIを使えば、文章の要約やドラフト作成を簡単に行えます。

一方で、実際の業務で活用しようとすると、単にAIへ資料を渡して文章を生成するだけでは不十分なことがあります。

たとえば、次のような作業です。

  • 複数の資料から必要な情報を集める
  • 情報の重複や不足を整理する
  • ページごとのテンプレートに内容を当てはめる
  • 書き方や粒度をそろえる
  • 生成された内容を確認する

これらを毎回手作業で行うと、思った以上に時間がかかります。

そこで今回は、複数の入力資料とページ別テンプレートをもとに、定型ドキュメントのドラフトを作成するエージェントを構築しました。

本記事では、ナレコムAI Agent Studioを使って作成したワークフローの構成と、実際に設計してみて分かったことを紹介します。

何を解決したいのか

定型ドキュメントの作成では、次のような課題が起こりがちです。

  • 参照する資料が複数のファイルに分かれている
  • 必要な情報がどの資料にあるのか分かりにくい
  • テンプレートへの転記や整形に時間がかかる
  • 作成者によって文章の粒度や表現がばらつく
  • 似たようなドキュメントを何度も作成している

つまり、問題は「情報が存在しないこと」ではありません。

複数の資料に分散している情報を集め、整理し、テンプレートに沿った文章へ変換する工程に負担があります。

この部分をAIに任せることで、ドキュメント作成の初稿を効率よく作成できるのではないかと考えました。

作成したエージェントの概要

今回作成したのは、複数の入力資料とページ別テンプレートをもとに、定型ドキュメントのドラフトを作成するエージェントです。

主に次のようなページの生成を想定しています。

  • 概要ページ
  • 構成ページ
  • 一覧ページ
  • 詳細ページ

このエージェントでは、入力資料をいきなりページごとの生成処理に渡すのではなく、まず複数資料の内容を整理・統合します。

その後、整理済みの情報をページ別テンプレートに反映し、各ページのドラフトを生成します。

入力から出力までの流れは次のとおりです。

  1. 入力資料を読み込む
  2. 文書からテキストを抽出する
  3. 複数資料の内容を整理・統合する
  4. ページ別テンプレートを読み込む
  5. 整理済み情報とテンプレートをもとにプロンプトを作成する
  6. ページごとのドラフトを生成する
  7. 生成結果を確認する

入力として必要なものは、主に次のとおりです。

  • ドキュメントの元となる資料
  • ページ別のテンプレート
  • 共通指示
  • ページ別の追加指示

利用の流れ

1. 入力資料を用意する

まず、ドキュメント作成に利用する資料を用意します。

たとえば、次のような資料です。

  • 仕様書
  • 構成資料
  • 機能一覧
  • 関係者からの補足資料

資料が複数に分かれていても、まとめて入力できる構成にしています。

2. ページ別テンプレートを指定する

次に、生成したいページのテンプレートを指定します。

たとえば、概要ページであれば次のような項目を持つテンプレートを用意します。

1. 概要
2. 目的
3. 対象範囲
4. 前提条件
5. 関連資料

詳細ページであれば、次のような構成です。

1. 機能概要
2. 入力
3. 処理内容
4. 出力
5. エラー時の動作
6. 注意事項

テンプレートを先に与えることで、ページごとの構成や必要な項目をそろえやすくなります。

3. 資料の内容を整理する

読み込んだ複数資料から、LLMを使って整理済み情報を作成します。

この段階では、最終的な文章を完成させるのではなく、後続のページ生成で利用しやすいように情報を整理します。

たとえば、次のような観点です。

  • 重要な情報は何か
  • 同じ内容が複数資料に書かれていないか
  • 資料間で内容に矛盾がないか
  • どのページに利用できる情報か
  • 資料に記載されていない情報は何か

4. ページ別のドラフトを生成する

整理済み情報とページ別テンプレートを組み合わせ、ページごとのドラフトを生成します。

概要ページ、構成ページ、一覧ページ、詳細ページで、それぞれ異なる指示を与えられるようにしています。

5. 生成結果を確認する

最後に、生成された内容を確認します。

AIの出力をそのまま完成版として利用するのではなく、次の点を確認します。

  • 入力資料にない内容が追加されていないか
  • 必要な項目が抜けていないか
  • ページの目的に合った粒度になっているか
  • 資料間の矛盾が正しく扱われているか
  • 表現や用語が統一されているか

必要に応じて内容を修正したり、指示を見直して再生成したりします。


ワークフローの構成

今回使用した主なノードは、次のとおりです。

ノード 役割
document 入力資料やテンプレートを読み込む
documentExtractor 文書からテキストを抽出する
promptTemplate LLMに渡すプロンプトを組み立てる
llm 情報の整理やドラフトの生成を行う
input 共通指示やページ別の追加条件を受け取る
output 生成結果を出力する

全体の流れは、概念的には次のようになります。

【入力資料の整理】
入力資料① ─→ documentExtractor ─┐
入力資料② ─→ documentExtractor ─┼→ 統合用 promptTemplate → llm → 整理済み情報
入力資料③ ─→ documentExtractor ─┘                         



【ページ別のドラフト生成】
概要テンプレート ─→ documentExtractor ─┐→ 概要用 promptTemplate → llm → 概要ページ
共通指示 ─────────────────────────────┼         ↑
概要ページ用指示 ──────────────────────┘     整理済み情報

構成テンプレート ─→ documentExtractor ─┐→ 構成用 promptTemplate → llm → 構成ページ
共通指示 ─────────────────────────────┼         ↑
構成ページ用指示 ──────────────────────┘     整理済み情報

一覧テンプレート ─→ documentExtractor ─┐→ 一覧用 promptTemplate → llm → 一覧ページ
共通指示 ─────────────────────────────┼         ↑
一覧ページ用指示 ──────────────────────┘     整理済み情報

詳細テンプレート ─→ documentExtractor ─┐→ 詳細用 promptTemplate → llm → 詳細ページ
共通指示 ─────────────────────────────┼         ↑
詳細ページ用指示 ──────────────────────┘     整理済み情報

ポイントは、複数の入力資料を一度整理してから、ページごとの生成処理へ渡していることです。

中間成果物を作る理由

今回の構成では、入力資料と最終的なページの間に「整理済み情報」という中間レイヤーを置いています。

複数の入力資料をそのまま各ページの生成処理へ渡すと、次のような問題が起きやすくなります。

  • 同じ情報がページごとに重複する
  • ページによって記述内容が変わる
  • 資料の読み取り処理をページごとに繰り返す必要がある
  • 情報の整理と文章生成の責務が混在する

そこで、まず資料全体を整理し、その結果を各ページで再利用する構成にしました。

このようにすると、ページ別の生成処理では、資料の内容を一から読み解くのではなく、整理済み情報をテンプレートに反映することに集中できます。

また、生成結果に問題があった場合も、次のように原因を切り分けやすくなります。

  • 文書の抽出結果に問題がある
  • 統合整理の内容に問題がある
  • テンプレートの構成に問題がある
  • ページ別の指示が不足している

テンプレートを使う理由

AIに白紙の状態からドキュメントを書かせると、自然な文章は生成できても、定型ドキュメントとしては使いにくいことがあります。

たとえば、次のような問題です。

  • 必要な項目が抜ける
  • ページごとに章立てが変わる
  • 説明の長さが安定しない
  • 想定していた粒度と合わない

そこで、ページごとのテンプレートを読み込ませ、既存の構成に沿って内容を生成する形にしました。

AIに構成をすべて任せるのではなく、人が定義した枠組みに沿って内容を整理させることで、出力のばらつきを抑えやすくなります。

定型ドキュメントでは、自由度を高くするよりも、適切な制約を設けた方が実務で使いやすい結果になると感じました。

共通指示とページ別指示

今回のワークフローでは、共通指示とページ別の指示を分けています。

共通指示

全ページで共通して適用するルールです。

たとえば、次のような指示を設定できます。

  • 入力資料にない内容は推測で補わない
  • 不明な情報は「不明」と記載する
  • 用語や表記を統一する
  • 事実と推測を区別する
  • テンプレートの項目を省略しない

ページ別指示

ページごとに必要な観点を指定します。

たとえば、次のような指示です。

  • 概要ページでは全体像を簡潔に説明する
  • 構成ページでは要素同士の関係を整理する
  • 一覧ページでは項目を表形式で整理する
  • 詳細ページでは処理内容や注意事項を具体的に記載する

共通指示とページ別指示を分けることで、プロンプトの重複を減らし、後から修正しやすくなります。

どういう場面で使うのか

このエージェントは、次のような場面で利用できます。

既存資料からの概要作成

複数の仕様書や関連資料をもとに、概要をまとめたい場合に利用できます。

資料を一つずつ読みながら要点を整理する作業を減らし、概要ページの初稿を作成できます。

構成資料の作成

構成要素や関連資料をもとに、説明するページを作成できます。

構成情報を整理してからページ化するため、情報の抜けや重複を確認しやすくなります。

機能一覧や項目一覧の作成

複数の資料に分散している機能や項目を集約し、一覧ページとして整理できます。

特に、資料ごとに異なる表記で記載されている情報を統一する際に役立ちます。

詳細仕様のドラフト作成

機能仕様や処理内容をもとに、詳細ページの初稿を作成できます。

入力、処理、出力、エラー時の動作など、テンプレートに沿った項目を埋める作業を効率化できます。

引き継ぎ資料の作成

既存の設計資料や運用資料をもとに、次の担当者向けの説明資料を作成できます。

担当者が変わっても、一定の形式で情報を整理しやすくなります。

既存ドキュメントの再整理

古い資料や形式の異なる資料を、現在利用しているテンプレートに合わせて整理し直す場合にも利用できます。

AIを使用する意味

今回の仕組みで重視したのは、AIに文章を書かせることだけではありません。

複数の資料に分散している情報を、テンプレートに沿った「使える文章」へ変換することが目的です。

AIを使うことで、次のような効果が期待できます。

  • 複数資料の内容を一度に整理できる
  • ページごとの構成に沿ってドラフトを作成できる
  • 作成者による表現のばらつきを抑えられる
  • 初稿作成にかかる時間を短縮できる
  • ドキュメント作成の手順を標準化できる

これまで人が行っていた「資料を読む」「情報を整理する」「テンプレートに転記する」という作業を、AIを含むワークフローとして組み直すことがポイントです。

AIは単なる文章生成機能ではなく、ドキュメント作成の前処理から初稿作成までを支援する仕組みとして活用できます。

作ってみて分かったこと

中間成果物を持つと改善しやすい

最終ページだけを確認するのではなく、途中で作成された整理済み情報も確認できるため、問題の原因を追いやすくなります。

どの段階で情報が不足したのか、どの段階で表現が変わったのかを確認できます。

テンプレートが品質に影響する

AIの性能だけでなく、テンプレートの設計も出力品質に大きく影響します。

項目の粒度が揃っていなかったり、ページの目的が曖昧だったりすると、生成結果も安定しません。

完全自動化よりもレビュー前提が現実的

生成された文章をそのまま完成版として利用するのではなく、レビュー用の初稿として扱う方が運用しやすいと感じました。

特に、入力資料にない情報をAIが推測していないか、重要な情報が抜けていないかは、人が確認する必要があります。

なお、実際の業務資料を扱う際は、機密情報をマスキングするなど、入力する情報の範囲や取り扱いに注意して利用する必要があります。

ナレコムAI Agent Studioを使ってみて

ナレコムAI Agent Studioを使うことで、複数の入力処理やLLMによる整理、ページ別の文章生成を一つのワークフローとして組み立てられました。

今回のような、日々の業務で繰り返し発生するドキュメント作成作業にも適用しやすく、複雑な実装を意識しすぎずに試せる点が良いと感じています。

まずは小さな業務から試し、テンプレートや指示を改善しながら、実運用に使える形へ近づけていけるのも利点です。

まとめ

複数の資料をもとに定型ドキュメントを作成する作業は、情報の整理やテンプレートへの転記に多くの時間がかかります。

今回作成したエージェントでは、入力資料をそのままページごとの生成処理に渡すのではなく、いったん整理済み情報を作成し、その内容をページ別テンプレートへ反映する構成にしました。

この構成にすることで、次のような効果が期待できます。

  • 複数資料の整理を効率化できる
  • ページごとの構成をそろえられる
  • ドキュメント作成の初稿を早く作成できる
  • 作成者による表現のばらつきを抑えられる
  • レビューしやすい形で情報をまとめられる

AI活用で重要なのは、単発で文章を生成することではなく、入力から整理、生成、レビューまでの業務フローを設計することだと感じました。

同じように、複数資料から定型ドキュメントを作成する作業を効率化したい方の参考になればうれしいです。

0
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
0
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?