Ai

LlamaIndex APIで作る業務自動化:実装サンプルと設計の勘所

皆さんは、日々の業務で「あの資料、どこにあったっけ?」「過去の議事録から、今回のプロジェクトに関連する部分だけ要約したいけれど、数が多すぎて手作業では無理」といった悩みを抱えていませんか。

もし、社内にある膨大なPDF、Wordファイル、Slackのチャット履歴などを、まるで隣にいる優秀なアシスタントに話しかけるように検索し、答えさせてくれるシステムが作れるとしたらどうでしょうか。

それを実現するのが、今回解説する「LlamaIndex(ラマインデックス)」です。

AIブームの中で「ChatGPT」を使っている方は多いですが、ChatGPTはあなたの会社の内部事情を知りません。LlamaIndexを使えば、ChatGPTという「天才的な頭脳」に、自社の「教科書」を渡すことができます。これにより、業務効率は劇的に向上します。

この記事では、AI開発のプロフェッショナルな視点から、LlamaIndexの基礎知識、実際に動くコードのサンプル、そして業務レベルで運用するための設計の勘所までを、エンジニアではない方にも分かるように徹底解説します。


LlamaIndexとは? ChatGPTに「自社の記憶」を持たせる技術

まず、LlamaIndexとは何者なのかを明確にしましょう。

一言で言えば、「あなたの手持ちのデータ」と「大規模言語モデル(LLM)」をつなぐ、最強の仲介役です。

なぜChatGPTだけでは足りないのか

ChatGPTなどのLLM(大規模言語モデル)は、インターネット上の膨大な知識を学習していますが、以下のような弱点があります。

  • 最新情報を知らない: 学習データのカットオフ時期以降のニュースは知りません。
  • 非公開情報を知らない: あなたの会社の社内規定や、昨日作成した顧客レポートの内容は知りません。
  • 嘘をつく(ハルシネーション): 知らないことを聞かれると、もっともらしく嘘をつくことがあります。

LlamaIndexが解決する「RAG」という仕組み

ここで登場するのが**RAG(ラグ:Retrieval-Augmented Generation / 検索拡張生成)**という技術です。LlamaIndexはこのRAGを簡単に構築するためのフレームワークです。

イメージしてください。

  • LLM(ChatGPTなど): 非常に頭が良いが、教科書を持っていない学生。
  • LlamaIndex: 巨大な図書館から、質問に関連する本(社内データ)を瞬時に探し出し、学生に渡す司書。

あなたが質問をすると、LlamaIndex(司書)が関連する資料を探し出し、「この資料にこう書いてあるから、これを元に回答して」とLLM(学生)に指示を出します。その結果、LLMは社内データに基づいた正確な回答ができるようになるのです。


業務自動化においてLlamaIndexが選ばれる理由

似たようなツールに「LangChain」がありますが、業務データの活用という点ではLlamaIndexに一日の長があります。

1. データの取り込みが圧倒的に簡単

LlamaIndexには「LlamaHub」という、データ連携のためのプラグインのようなものが豊富に用意されています。

PDFやWordはもちろん、Notion、Slack、Googleドライブ、Discord、YouTubeの字幕など、あらゆるデータソースから数行のコードでデータを吸い上げることができます。

2. インデックス化(検索用データ作成)の精度が高い

単に文章を検索するだけでなく、「文章の意味」を理解して検索するベクトル検索の仕組みが高度に最適化されています。これにより、「単語は一致していないけれど、意味は同じ」という高度な検索が可能になります。

3. トークン節約によるコスト削減

LLMを利用する場合、文字数(トークン数)に応じて課金されます。LlamaIndexは、膨大な資料の中から「本当に必要な部分」だけを抽出してLLMに渡す機能が優れているため、無駄な読み込みを減らし、API利用料を抑えることができます。


【実践編】LlamaIndex APIで「社内ドキュメント検索AI」を作る

ここからは、実際に手を動かしてみたい方や、エンジニアに指示を出したい方向けに、最小限の構成で動く実装サンプルを紹介します。

※ここではPythonというプログラミング言語を使用しますが、コードの内容が読めなくても「何をしているか」の流れだけ掴んでいただければ大丈夫です。

準備するもの

  • OpenAI API Key(ChatGPTをシステムから利用するための鍵)
  • Pythonが実行できる環境
  • 読み込ませたいデータ(今回は data フォルダに入れたPDFファイルを想定)

ステップ1:必要なライブラリのインストール

まず、LlamaIndexとOpenAIを使うためのツールをパソコンに入れます。

Bash

pip install llama-index openai

ステップ2:数行のコードで検索エンジンを構築

驚くべきことに、基本的な検索システムはわずか5行〜10行程度で書けてしまいます。

Python

import os
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader

# 1. APIキーの設定(ここにあなたのキーを入れます)
os.environ["OPENAI_API_KEY"] = "sk-xxxxxxxxxxxxxxxx"

# 2. データの読み込み
# 'data'というフォルダにあるファイルを全部読み込みます
documents = SimpleDirectoryReader("data").load_data()

# 3. インデックスの作成
# 読み込んだデータを、AIが検索しやすい形式(ベクトル)に変換します
index = VectorStoreIndex.from_documents(documents)

# 4. 検索エンジンの作成
query_engine = index.as_query_engine()

# 5. 質問をする
response = query_engine.query("当社の2025年のテレワーク規定について教えて")

# 6. 回答の表示
print(response)

このコードが行っていること(解説)

  • SimpleDirectoryReader: フォルダ内のファイルを自動で認識し、テキストデータとして吸い上げます。PDFでもテキストファイルでも自動判別します。
  • VectorStoreIndex: ここが心臓部です。吸い上げた文章を、AIが理解できる「数値の羅列(ベクトル)」に変換し、辞書のように整理します。
  • query_engine.query: ユーザーの質問に関連する情報を辞書から探し出し、ChatGPTに「この情報を使って回答して」と依頼し、その結果を返します。

たったこれだけで、社内規定PDFに基づいた回答をするチャットボットの原型が完成します。


プロが教える「業務レベル」で運用するための設計の勘所

上記のサンプルは「動く」レベルですが、実務で数千ページのマニュアルや契約書を扱ったり、全社員で使ったりするには、いくつかの「設計の壁」があります。ここからは、プロが現場で意識している重要なポイントを解説します。

1. チャンク化戦略(文章の区切り方)

AIにデータを渡す際、長い文章をそのまま渡すことはできません。適切なサイズに分割する必要があります。これを「チャンク(Chunk)」と呼びます。

  • なぜ重要か: チャンクが大きすぎると、無関係な情報までAIに混ざってしまい回答精度が落ちます。逆に小さすぎると、文脈が途切れて意味が通じなくなります。
  • プロの対策: デフォルトの設定に頼らず、扱う文書の種類によって区切り方を調整します。例えば、契約書なら「条文ごとに区切る」、マニュアルなら「見出しごとに区切る」といった工夫が必要です。LlamaIndexには、この分割サイズを調整する機能が備わっています。

2. メタデータの活用

単にテキストを検索するだけでなく、「誰が」「いつ」「何の目的で」書いた文書かという「メタデータ」を付与することが極めて重要です。

  • 失敗例: 「最新の営業方針を教えて」と聞いたのに、3年前の古い議事録を拾って回答してしまった。
  • プロの対策: ファイル名から「作成日」や「部署名」を自動抽出し、インデックスに埋め込みます。そして検索時に「2024年以降のデータに限る」といったフィルタリングをかけることで、精度の高い回答を引き出します。

3. ベクトル検索とキーワード検索のハイブリッド

LlamaIndexの得意な「ベクトル検索(意味検索)」は万能ではありません。「A-123」のような型番や、特定の固有名詞の検索は苦手な場合があります。

  • プロの対策: 意味を理解する「ベクトル検索」と、文字そのものを探す「キーワード検索」を組み合わせる「ハイブリッド検索(Hybrid Search)」を実装します。これにより、「製品ID(キーワード)について、不具合の対処法(意味)を知りたい」といった複雑なニーズに応えられます。

4. コストと速度のバランス

毎回GPT-4のような最高性能モデルを使うと、回答は賢いですがコストが高く、動作も遅くなります。

  • プロの対策:
    • 要約や単純な検索: 高速で安価な「GPT-3.5 Turbo」や「GPT-4o mini」を使用。
    • 複雑な推論や契約書のチェック: 高性能な「GPT-4」を使用。
    • このように、タスクに応じてモデルを使い分ける設定をLlamaIndex側で行います。

明日から使える具体的な活用アイデア3選

LlamaIndexを導入することで、具体的にどのような業務が自動化できるのか。すぐに効果が出るユースケースを3つ提案します。

アイデア1:新人教育・社内ヘルプデスクの自動化

  • 課題: 総務や情シスに「経費精算のやり方は?」「Wi-Fiのパスワードは?」といった同じ質問が殺到し、担当者が疲弊している。
  • 解決策: 社内規定、マニュアル、過去のFAQ集をLlamaIndexに読み込ませ、SlackやTeams上のチャットボットとして公開。
  • 効果: 質問対応の工数を70%〜80%削減。新入社員も気兼ねなく24時間質問できるようになります。

アイデア2:製造業・建設業での技術伝承

  • 課題: ベテラン社員の頭の中にしかない知識や、過去数十年分の膨大な「事故報告書」「技術報告書」が活用されず、似たようなトラブルが再発する。
  • 解決策: 過去の報告書(スキャンしたPDFなど)をすべてOCR(文字認識)にかけてLlamaIndex化。「ポンプから異音がする場合の原因は?」と聞けば、過去50件の事例から「ベアリング摩耗の可能性が高い」と根拠付きで提示。
  • 効果: 技術情報の検索時間が数日から数秒に短縮。属人化の解消。

アイデア3:契約書・法務チェックのアシスト

  • 課題: 法務部が契約書のレビューに追われている。過去の類似契約との整合性チェックが大変。
  • 解決策: 過去の全契約書をデータベース化。新しい契約書のドラフトを読み込ませ、「過去の当社基準と比較して、リスクがある条項(損害賠償の上限など)を指摘して」と指示。
  • 効果: ダブルチェックの精度向上と、一次レビューの自動化によるスピードアップ。

導入にあたっての注意点とセキュリティ

夢のような技術ですが、導入にはリスク管理も必要です。

データのセキュリティ(一番重要です)

「社外秘のデータをAIに渡して大丈夫?」という懸念は当然です。

OpenAIのAPI(法人利用)や、Azure OpenAI Serviceを利用する場合、送信されたデータはAIの学習には使われないという規約になっています。しかし、無料版のChatGPTの画面にコピペして貼り付けるのはNGです。必ずAPI経由で、セキュアな環境を構築して利用しましょう。

AIの回答を鵜呑みにしない

RAGを使っても、AIが間違える可能性はゼロではありません。「必ず元データの参照元(出典)を提示させる」設定にすることが重要です。LlamaIndexには「回答と一緒に、参照したドキュメントのページ数を表示する」機能があります。これを有効にし、最後は人間がソースを確認するフローを残しましょう。


まとめ:データは「探す」時代から「対話する」時代へ

これまで、私たちは業務時間の約20%〜30%を「情報を探す時間」に費やしていると言われてきました。

フォルダの階層を辿り、ファイルを開き、Ctrl+Fでキーワード検索をする…。そんな「検索作業」は、LlamaIndexを使えば過去のものになります。

「資料を探す」のではなく、「資料と会話する」。

このパラダイムシフトこそが、AIによる業務自動化の本質です。

今回ご紹介したコードは、エンジニアであれば1時間もあればプロトタイプを作れるレベルのものです。まずは、部署内のマニュアル数冊を読み込ませて、その威力体感してみることから始めてみてはいかがでしょうか。

あなたの会社の眠れるデータ資産が、LlamaIndexによって頼れる相棒へと進化する瞬間を、ぜひ体験してください。

TOP