第05回 ナレッジデータの準備とAI活用Q&A化編

Ola-UI構築チュートリアル

【第5回】社内AIチャットシステムOla-UIを構築しよう!- ナレッジデータの準備とAI活用Q&A化編

はじめに

「社内AIチャットシステムOla-UI構築シリーズ」の第5回へようこそ!

前回(第4回)では、システムプロンプトを使ってAIの性格をカスタマイズする方法を学びました。今回は、実際の業務データをナレッジファイルとして準備し、AIを活用してQ&A形式に整形する実践的なテクニックを紹介します。

これまでのおさらい

第1〜3回

✅ Ollama環境構築
✅ PHP環境構築
✅ Ola-UI本体の設置と起動

第4回: システムプロンプトでAIの性格作り

✅ システムプロンプトの基本
✅ 部門別プロンプトの作成
✅ プロンプトのテストと切り替え

今回は、Ola-UIの心臓部であるナレッジデータを充実させます。


本記事の目標

第5回では、生の業務データをナレッジファイルに変換し、AIで効率的にQ&A化する方法を学びます。

所要時間

学べること


STEP 1: ナレッジデータとは?

1.1 ナレッジデータの種類

Ola-UIで活用できるナレッジデータには、以下のようなものがあります:

📄 社内文書

💼 業務データ

📚 知識・ノウハウ

1.2 ナレッジファイルの形式

Ola-UIでは、シンプルなテキストファイル(.txt)を使用します。

推奨フォーマット

# 大見出し

## 中見出し

本文の内容...

### 小見出し

詳細な説明...

💡 Tip: Markdown形式を使うと、階層構造が明確になります!


STEP 2: 既存データの収集と整理

2.1 データソースの特定

まず、社内のどこにデータがあるかを確認します。

よくあるデータの保管場所

2.2 データの抽出例

例1: Excelの顧客データ

元データ(Excel):

顧客ID | 企業名        | 担当者   | 連絡先           | 取引開始日
-----|-------------|---------|-----------------|------------
001  | 株式会社ABC  | 山田太郎 | 03-1234-5678   | 2025-01-15
002  | XYZ商事      | 佐藤花子 | 06-9876-5432   | 2025-03-20

テキスト化(コピー&ペースト):

顧客ID: 001
企業名: 株式会社ABC
担当者: 山田太郎
連絡先: 03-1234-5678
取引開始日: 2025-01-15

顧客ID: 002
企業名: XYZ商事
担当者: 佐藤花子
連絡先: 06-9876-5432
取引開始日: 2025-03-20

例2: PDF資料からのコピー

PDF文書をコピーして、テキストファイルに貼り付けます。

2.3 データのクリーニング

コピーしたデータには、不要な情報が含まれることがあります。

削除すべき要素


STEP 3: AIを使ったQ&A形式への変換

3.1 なぜQ&A形式が効果的か?

RAGシステムでは、Q&A形式のデータが最も検索されやすい形式です。

メリット

3.2 AIによる自動Q&A生成の手順

Ola-UI自身を使って、生データをQ&A形式に変換します!

ステップ1: 変換用プロンプトの作成

メモ帳で以下の内容の system_prompt_qa_generator.txt を作成:

あなたは「ナレッジQ&A生成AI」です。

【役割】
提供されたテキストデータから、想定される質問とその回答をQ&A形式で生成します。

【生成ルール】
1. 1つのトピックに対して3〜5個の質問を生成
2. 質問は実際のユーザーが聞きそうな自然な表現
3. 回答は簡潔で分かりやすく
4. 重要な数字や固有名詞は正確に記載
5. 以下の形式で出力:

Q: (質問文)
A: (回答文)

【質問のバリエーション】
- 基本的な質問(「〜とは何ですか?」)
- 手順に関する質問(「〜するにはどうすればいいですか?」)
- 詳細に関する質問(「〜の詳細を教えてください」)
- 比較に関する質問(「〜と〜の違いは何ですか?」)
- トラブルに関する質問(「〜がうまくいかない場合は?」)

【例】
元データ: 経費精算は毎月25日が締め切りです。経理部に申請書を提出してください。

生成結果:
Q: 経費精算の締め切りはいつですか?
A: 経費精算の締め切りは毎月25日です。

Q: 経費精算はどこに提出すればいいですか?
A: 経理部に申請書を提出してください。

Q: 経費精算の手順を教えてください
A: 申請書に必要事項を記入し、毎月25日までに経理部に提出してください。

ステップ2: Ola-UIでプロンプトを適用

  1. config.ini を編集: ini [SystemPrompt] default_file = system_prompt_qa_generator.txt

  2. サーバーを再起動

ステップ3: 生データを入力

Ola-UIのチャット画面に、以下のように入力:

以下のデータからQ&Aを生成してください:

---
製品名: Ola-UI RAGシステム
価格: 初期費用20万円、月額保守費用なし
特徴: ローカル環境で動作、複数のナレッジセット対応、ハイブリッド検索
導入期間: 約1週間
サポート: 初期設定サポート、カスタマイズ相談、運用サポート
実績: 大企業の知財管理、製造業の技術文書管理、金融機関のコンプライアンス管理
---

ステップ4: AI生成結果を取得

AIの出力例:

Q: Ola-UI RAGシステムの価格はいくらですか?
A: 初期費用は20万円で、月額保守費用は不要です。

Q: Ola-UIの特徴を教えてください
A: 主な特徴は以下の3つです:
1. ローカル環境で動作するためセキュア
2. 複数のナレッジセット対応で部門別に活用可能
3. ハイブリッド検索(ベクトル + BM25)で高精度

Q: 導入にはどのくらいの期間がかかりますか?
A: 約1週間で導入が完了します。

Q: どのようなサポートが受けられますか?
A: 初期設定サポート、カスタマイズ相談、運用サポートを提供しています。

Q: 導入実績はありますか?
A: 大企業の知財管理、製造業の技術文書管理、金融機関のコンプライアンス管理など、多数の実績があります。

Q: Ola-UIはどこで動作しますか?
A: ローカル環境(社内のサーバーやPC)で動作します。外部のクラウドサービスは不要です。

ステップ5: 結果を保存

生成されたQ&Aをコピーして、knowledge_products.txt として保存します。


STEP 4: ナレッジファイルの作成

4.1 ファイルの命名規則

knowledge1.txt  ← 会社概要・基本情報
knowledge2.txt  ← 製品情報
knowledge3.txt  ← 営業ナレッジ
knowledge4.txt  ← 技術サポート
knowledge5.txt  ← 経理・総務
knowledge6.txt  ← 顧客情報
knowledge7.txt  ← FAQ
knowledge8.txt  ← 社内規則
knowledge9.txt  ← プロジェクト情報
knowledge10.txt ← その他

4.2 実践例: 製品情報ナレッジの作成

knowledge2.txt(製品情報)

# 製品情報ナレッジ

## Ola-UI RAGシステム

### 基本情報

Q: Ola-UI RAGシステムとは何ですか?
A: 社内データと対話できるAIチャットシステムです。ローカル環境で動作し、セキュアで低コストを実現します。

Q: Ola-UIの価格はいくらですか?
A: 初期費用は20万円で、月額保守費用は不要です。一度導入すれば、追加コストなしで継続利用できます。

### 技術仕様

Q: どのような技術を使っていますか?
A: Ollama(ローカルLLM)、ベクトル検索、BM25検索を組み合わせたハイブリッド検索を採用しています。

Q: 必要なスペックを教えてください
A: 
- CPU: Intel Core i7以上(Ryzen 7以上)
- メモリ: 16GB以上(32GB推奨)
- GPU: NVIDIA RTX 3060以上(RTX 4060推奨)
- ストレージ: SSD 50GB以上

Q: どのOSで動作しますか?
A: Windows 10/11(64bit)で動作します。将来的にはLinux、macOSにも対応予定です。

### 導入・サポート

Q: 導入期間はどのくらいですか?
A: 標準的な構成で約1週間です。カスタマイズが多い場合は2〜3週間かかることがあります。

Q: サポート内容を教えてください
A: 以下のサポートを提供しています:
- 初期設定サポート
- ナレッジファイル作成支援
- カスタマイズ相談
- 運用サポート
- トラブルシューティング

Q: トライアルはできますか?
A: 2週間の無料トライアルをご利用いただけます。詳しくはお問い合わせください。

### 導入効果

Q: どのような効果が期待できますか?
A: 
- 時間短縮: 情報検索時間が90%削減(30分→2分)
- コスト削減: 年間3,600万円削減(100名規模の場合)
- ROI: 1.2ヶ月で投資回収

Q: 導入実績はありますか?
A: 以下のような実績があります:
- 大企業の知財管理システム
- 製造業の技術文書管理
- 金融機関のコンプライアンス管理
- WebサイトのFAQシステム

### 競合との比較

Q: クラウド型RAGシステムとの違いは何ですか?
A: 
【Ola-UI(ローカル型)】
- 初期費用: 20万円
- 月額費用: 0円
- セキュリティ: 高(社内完結)
- カスタマイズ: 自由

【クラウド型】
- 初期費用: 0〜50万円
- 月額費用: 50〜200万円
- セキュリティ: 中(外部サービス依存)
- カスタマイズ: 制限あり

Q: ChatGPTと何が違いますか?
A: ChatGPTは汎用的な知識を持つAIですが、Ola-UIは社内の専門的なデータに特化しています。機密情報も安心して扱えます。

### トラブルシューティング

Q: 応答が遅い場合はどうすればいいですか?
A: 以下を確認してください:
1. GPUが正しく認識されているか
2. メモリが十分か(32GB推奨)
3. config.iniのtop_k設定を下げる(10→5)

Q: 検索精度が低い場合は?
A: 
1. ナレッジファイルの内容を充実させる
2. similarity_thresholdを調整(0.3→0.25)
3. Q&A形式でデータを整備する

STEP 5: ナレッジセットの設定

5.1 knowledge_manager.json の編集

各ナレッジファイルにメタデータを設定します。

C:\ola-ui\knowledge_manager.json を編集:

{
  "datasets": [
    {
      "id": 1,
      "name": "会社概要",
      "description": "会社の基本情報、沿革、組織図など",
      "file": "knowledge1.txt",
      "enabled": true,
      "category": "基本情報",
      "tags": ["会社概要", "基本情報", "組織"]
    },
    {
      "id": 2,
      "name": "製品情報",
      "description": "Ola-UIシステムの仕様、価格、導入事例",
      "file": "knowledge2.txt",
      "enabled": true,
      "category": "製品",
      "tags": ["製品", "価格", "仕様", "導入事例"]
    },
    {
      "id": 3,
      "name": "営業ナレッジ",
      "description": "営業手法、顧客対応、提案書テンプレート",
      "file": "knowledge3.txt",
      "enabled": true,
      "category": "営業",
      "tags": ["営業", "提案", "顧客対応"]
    },
    {
      "id": 4,
      "name": "技術サポート",
      "description": "トラブルシューティング、技術FAQ",
      "file": "knowledge4.txt",
      "enabled": true,
      "category": "技術",
      "tags": ["技術", "サポート", "トラブル"]
    }
  ]
}

5.2 dataset_metadata.json の更新

検索用のメタデータを設定します。

{
  "1": {
    "fields": ["会社名", "設立日", "所在地", "代表者", "事業内容"],
    "date_fields": ["設立日"],
    "description": "会社の基本的な情報"
  },
  "2": {
    "fields": ["製品名", "価格", "特徴", "スペック", "導入期間"],
    "date_fields": [],
    "description": "製品に関する詳細情報"
  },
  "3": {
    "fields": ["顧客名", "担当者", "案件名", "進捗状況", "金額"],
    "date_fields": ["商談日", "契約予定日"],
    "description": "営業活動の記録"
  },
  "4": {
    "fields": ["問題", "原因", "解決策", "対応日時"],
    "date_fields": ["対応日時"],
    "description": "技術サポートの履歴"
  }
}

STEP 6: ベクトル化とインデックス作成

6.1 自動ベクトル化スクリプトの実行

第3回で作成した initialize_vectors.php を実行します。

cd C:\ola-ui
php initialize_vectors.php

実行結果例:

=== ベクトルストア初期化 ===

Ollama Endpoint: http://127.0.0.1:11434
埋め込みモデル: mxbai-embed-large
ナレッジファイル数: 10

[1] 📄 knowledge1.txt を処理中...
[1] チャンク数: 15
...
[1] ✅ 完了: vector_store1.jsonl(15件のベクトル)

[2] 📄 knowledge2.txt を処理中...
[2] チャンク数: 42
..................
[2] ✅ 完了: vector_store2.jsonl(42件のベクトル)

...

=== 初期化完了 ===
合計: 120件のベクトルを生成

6.2 ベクトルストアファイルの確認

C:\ola-ui\
  ├── vector_store1.jsonl  ← knowledge1.txtのベクトル
  ├── vector_store2.jsonl  ← knowledge2.txtのベクトル
  ├── vector_store3.jsonl
  └── ...

各ファイルは以下の形式:

{"id":0,"text":"Q: Ola-UI RAGシステムとは何ですか?\nA: 社内データと対話できる...","embedding":[0.123, -0.456, 0.789, ...]}
{"id":1,"text":"Q: Ola-UIの価格はいくらですか?\nA: 初期費用は20万円で...","embedding":[0.234, -0.567, 0.890, ...]}

STEP 7: 検索精度の向上テクニック

7.1 Q&A形式の最適化

❌ 悪い例

Ola-UIは20万円です。

✅ 良い例

Q: Ola-UIの価格はいくらですか?
A: Ola-UI RAGシステムの初期費用は20万円です。月額保守費用は不要です。

7.2 キーワードのバリエーション

同じ内容でも、複数の表現でQ&Aを作成します。

Q: Ola-UIの料金を教えてください
A: 初期費用は20万円で、月額費用は0円です。

Q: Ola-UIはいくらで導入できますか?
A: 20万円で導入可能です。追加の月額費用はかかりません。

Q: Ola-UIのコストはどのくらいですか?
A: 初期投資20万円のみで、ランニングコストは不要です。

7.3 コンテキスト情報の追加

単独で意味が分かるように、背景情報を含めます。

❌ 不十分

Q: 価格は?
A: 20万円です。

✅ 十分

Q: Ola-UI RAGシステムの価格はいくらですか?
A: Ola-UI RAGシステムの初期費用は20万円です。この金額には、システム本体、初期設定サポート、導入トレーニングが含まれます。月額保守費用は不要で、一度導入すれば追加コストなしで利用できます。

7.4 数字と単位の明記

❌ たくさん削減できます
✅ 年間3,600万円削減できます(100名規模の場合)

❌ すぐに使えます
✅ 約1週間で導入完了し、すぐに使い始められます

❌ 効率が上がります
✅ 情報検索時間が90%削減(30分→2分)

STEP 8: ナレッジの動作確認

8.1 Ola-UIサーバーの起動

cd C:\ola-ui
start_server(ローカルの場合の起動バッチ).bat

8.2 ナレッジ管理画面で確認

  1. ブラウザで http://localhost:8000/knowledge_manager.html を開く
  2. 各ナレッジセットの状態を確認
  3. 有効化されているか確認

8.3 検索テスト

テスト1: 基本的な質問

Ola-UIの価格を教えてください

期待される応答:

Ola-UI RAGシステムの初期費用は20万円です。月額保守費用は不要です。

【参考情報】
- 初期費用: 20万円
- 月額費用: 0円
- 含まれるもの: システム本体、初期設定サポート、導入トレーニング

【出典】
製品情報ナレッジ(knowledge2.txt)

テスト2: 詳細な質問

Ola-UIとクラウド型RAGシステムの違いを教えてください

期待される応答:

Ola-UIとクラウド型RAGシステムの主な違いは以下の通りです:

【Ola-UI(ローカル型)】
- 初期費用: 20万円
- 月額費用: 0円
- セキュリティ: 高(社内完結)
- カスタマイズ: 自由

【クラウド型】
- 初期費用: 0〜50万円
- 月額費用: 50〜200万円
- セキュリティ: 中(外部サービス依存)
- カスタマイズ: 制限あり

【コスト比較(3年間)】
- Ola-UI: 20万円
- クラウド型: 1,800〜7,200万円

Ola-UIは3年間で最大7,000万円以上のコスト削減が可能です。

【出典】
製品情報ナレッジ(knowledge2.txt)

テスト3: ナレッジ絞込機能のテスト

  1. 「ナレッジ絞込」セクションを展開
  2. キーワード「価格」を入力して絞込
  3. 絞り込まれた結果のみが検索対象になります

STEP 9: ナレッジの継続的な更新

9.1 記憶機能を使った追加

チャット中に新しい情報を記憶させることができます。

使い方

この情報を記憶してください:
Ola-UIは、2026年10月の大改修(バージョン2.0相当の進化)を提供済みです。
新機能として、音声入力とマルチモーダル対応が追加されます。

AIが応答:

承知しました。以下の情報を記憶しました:

【記憶内容】
- リリース時期: 2026年4月
Ola-UIは、2026年10月の大改修(バージョン2.0相当の進化)を提供済みです。
- 製品: Ola-UI バージョン2.0
- 新機能: 音声入力、マルチモーダル対応

この情報はナレッジに追加され、今後の質問で活用されます。

9.2 定期的なベクトル再生成

ナレッジファイルを更新したら、ベクトルストアを再生成します。

cd C:\ola-ui
php initialize_vectors.php

9.3 バージョン管理

ナレッジファイルは定期的にバックアップします。

C:\ola-ui\backups\
  ├── knowledge2_20260129.txt  ← 2026年1月29日版
  ├── knowledge2_20260205.txt  ← 2026年2月5日版
  └── ...

STEP 10: 大量データの効率的な処理

10.1 バッチ処理スクリプト

大量のExcelデータをQ&A化するスクリプトを作成します。

batch_qa_generator.php

<?php
/**
 * バッチQ&A生成スクリプト
 */

// Excelファイルからデータを読み込み(簡易版: CSV想定)
$csv_file = 'customer_data.csv';
$output_file = 'knowledge6_generated.txt';

if (!file_exists($csv_file)) {
    die("Error: {$csv_file} が見つかりません\n");
}

$fp_out = fopen($output_file, 'w');
fwrite($fp_out, "# 顧客情報ナレッジ(自動生成)\n\n");

$fp_in = fopen($csv_file, 'r');
$header = fgetcsv($fp_in); // ヘッダー行をスキップ

$count = 0;
while (($row = fgetcsv($fp_in)) !== false) {
    $customer_id = $row[0];
    $company = $row[1];
    $contact = $row[2];
    $phone = $row[3];
    $start_date = $row[4];

    // Q&A生成
    $qa = <<<EOT
## 顧客ID: {$customer_id}

Q: 顧客ID {$customer_id} の企業名を教えてください
A: {$company} です。

Q: {$company} の担当者は誰ですか?
A: {$contact} です。連絡先は {$phone} です。

Q: {$company} との取引開始日はいつですか?
A: {$start_date} から取引を開始しました。


EOT;

    fwrite($fp_out, $qa);
    $count++;
}

fclose($fp_in);
fclose($fp_out);

echo "✅ 完了: {$count}件の顧客データをQ&A化しました\n";
echo "出力ファイル: {$output_file}\n";
?>

実行方法

php batch_qa_generator.php

トラブルシューティング

Q1: ベクトル化が失敗する

原因: Ollamaが起動していない、またはメモリ不足

解決策: 1. ollama serve を実行 2. 他のアプリケーションを終了してメモリを解放 3. knowledge.txtのサイズを小さくする(分割する)

Q2: 検索精度が低い

原因: Q&A形式になっていない、またはキーワードが不足

解決策: 1. AIを使ってQ&A形式に変換 2. キーワードのバリエーションを増やす 3. config.iniのsimilarity_thresholdを下げる(0.3 → 0.25)

Q3: 日本語が正しく検索されない

原因: トークナイザーの問題

解決策: 1. JapaneseTokenizerLib.php が存在するか確認 2. 日本語専用の埋め込みモデルを使用(nomic-embed-text等)

Q4: ナレッジが多すぎて遅い

原因: ベクトル検索の対象が多すぎる

解決策: 1. ナレッジセットを分割(部門別など) 2. 不要なナレッジセットを無効化 3. top_k を減らす(10 → 5)


まとめ

本記事で学んだこと

✅ ナレッジデータの種類と収集方法
✅ AIを使ったQ&A自動生成
✅ ナレッジファイルの作成とフォーマット
✅ ナレッジセットの設定
✅ ベクトル化とインデックス作成
✅ 検索精度向上のテクニック
✅ 記憶機能を使った継続的更新
✅ 大量データのバッチ処理

所要時間


シリーズ完結!

おめでとうございます!🎉

これで、Ola-UIシステムの構築から実践的な活用までを完全にマスターしました!

全5回のまとめ

第1回: Ollama環境構築編

第2回: PHP環境構築編

第3回: Ola-UI本体の設置と起動編

第4回: システムプロンプトでAIの性格を作る編

第5回: ナレッジデータの準備とAI活用Q&A化編(本記事)


今後の発展

さらに学びたい方へ


参考リンク


著者: Ola-UI サポートチーム
公開日: 2026年1月29日
更新日: 2026年1月29日
カテゴリ: チュートリアル, ナレッジマネジメント, AI, Ola-UI


💬 この記事への質問・コメント

シリーズを最後までご覧いただき、誠にありがとうございました!

ご質問やご意見がありましたら、以下までお気軽にお問い合わせください:

📧 Email: support@ola-ui.com
🐦 Twitter: @OlaUI_Official
💼 LinkedIn: Ola-UI


タグ

#OlaUI #ナレッジマネジメント #RAG #AI #Q&A生成 #データ整備 #チュートリアル #完結

📚 記事一覧に戻る