---
title: "チャットボット案件（スプレッドシート×埋め込みモデル） 検証してみた"
author: "田中省伍"
author_username: s-tanaka-4e4010
published_at: 2026-05-17T08:45:10.468+00:00
verified_at: 2026-05-17T12:00:00+00:00
models: ["claude-haiku-4-5"]
tools: ["dify"]
tasks: ["Dify", "RAG", "チャットボット"]
domain: "業務効率化"
difficulty: advanced
target_audience: engineer
canonical_url: https://ai-katsu.jp/articles/xksd7h
---
# チャットボット案件（スプレッドシート×埋め込みモデル） 検証してみた



📋 プロジェクト概要
* カテゴリ: チャットボット / RAG（簡易ベクトル検索）
* 期間: 2026/05/17 -（検証中）

---

## 1. 背景と目的
* 新規チャットボット案件。利用者が3つの選択肢から順に回答し、最後に質問を入力するフローが求められている。
* クライアントはDifyのナレッジベースを直接操作せず、Googleスプレッドシート上でのデータ管理を希望。Difyの操作をせずスプレッドシートのみで完結する運用を求めている。
* 本案件はLINEでの利用を想定。リッチメニュー経由での質問受付を確認しつつ、質問入力用の画面が別途必要という整理。
* Difyのナレッジ機能を使わずに、どう回答精度を担保するかが議論の中心的な論点。

---

## 2. 取り組み内容

### 実施した施策・活動
* チャットボット案件の技術構成と運用要件を協議し、Googleスプレッドシート＋埋め込みモデルを用いた実装方針を決定。
* Difyの開始ブロックにプルダウン形式の入力フィールドを追加しカテゴリ選択させる設定を、実機で確認。
* 3段階の開発工程（①スプレッドシート項目定義 ②埋め込みモデル呼び出しGAS構築 ③全体統合）を確認・合意。

### 使用したツール・技術
* Googleスプレッドシート（データ管理＋簡易ベクトルDB）
* Google Apps Script（GAS）：差分検知・埋め込みAPI呼び出し・ベクトル処理・OpenAI API直叩き
* 埋め込みモデル（Embedding Model）：テキストの数値化・意味の近さ判定
* 大規模言語モデル（LLM／OpenAI API）：抽出候補の最終判定
* Dify：開始ノードでカテゴリ選択入力、Web公開URLでLINE→Web回答画面へ誘導
* LINE：リッチメニュー／チャット画面からの導線

### 主要な意思決定とその理由
* スプレッドシート＋GASを軸としたシステム構成を採用（クライアント要件＝Dify非操作・スプレッドシート完結のため）。
* DifyのWeb公開URL機能を利用し、LINEのチャット画面からWebの回答画面へ誘導する仕様に合意。Difyの開始ノードからGASへデータを中継する構成で実装。
* キーワード検索の限界に対し、埋め込みモデルでベクトル化＋コサイン類似度で回答候補を抽出する方式を導入。
* 抽出した上位候補（例：5件）に対しLLMで適切性を判定。マッチングスコアが一定（例：0.7以上）を超えた場合のみ回答を返す制御。
* スプレッドシートの差分を監視し、埋め込みモデルでベクトル化して保存する構成。数百行規模ならGAS運用が可能。
* データ更新はリアルタイム不要。1日1回等の定期実行、または運用担当者の手動実行で対応。
* OpenAI APIはK W社アカウントの余剰枠を活用するため、GAS側から直接呼び出す構成とする。
* Dify開始ブロックのカテゴリ選択入力を必須化し、入力ミス防止とデータ整理を両立。

---

## 3. 進捗と成果

### 達成できたこと
* GAS／スプレッドシート／埋め込みAPI／LLMを組み合わせたシステム全体像と開発フローのイメージが明確化。
* 3ステップの開発工程と次回までの役割分担を合意。

### 定量的な成果
* （情報なし）

### 定性的な成果
* 今回の議論を通じてシステム構築のイメージ・全体像が明確になり、今後の進め方の見通しが立ったとの確認。

---

## 4. 学びとナレッジ

### うまくいったこと（Good）
* 埋め込みモデル＋コサイン類似度の導入で、単純なキーワード一致より高い正答率が期待できるという方針整理ができた。
* 実機でDify開始ブロックのプルダウン設定を確認でき、認識を揃えられた。

### うまくいかなかったこと（Bad）
* （情報なし）

### 改善ポイント（Improve）
* （随時更新）

### 技術的な発見・Tips
* 埋め込みモデルはキーワード一致でなく「意味の近さ」を数値で判定でき、関連性の高い回答抽出に有効。
* スプレッドシートを簡易ベクトルDBとして使い、数百行規模ならGASで運用可能。データ増加時もベクトルDBに近い検索へ寄せられる余地がある。
* 抽出候補に対するLLM判定＋スコア閾値（例：0.7）で、回答可否を制御できる。

---

## 5. 課題と対応

### 発生した課題
* ユーザーの質問がスプレッドシート上の既存データと完全一致しないケースの判定方法。単純なキーワード検索では限界がある。
* GPT／GeminiのAPIを都度呼び出すと将来的にコストが増大するリスク。
* 埋め込みモデルとLLMは異なる軸で運用され、それぞれにAPI利用料が発生（二重課金）。埋め込みモデルを選択できない環境ではコスト・運用の複雑さが課題。
* LLM利用は検索品質が上がるが管理が煩雑、キーワード検索は品質が下がるが管理が容易、というトレードオフ。

### 対応方法
* 埋め込みベクトル化＋コサイン類似度＋LLM最終判定の三段構えで精度とコストを両立させる方針。
* LLMのAPI利用に集約する選択肢も比較検討対象とし、現構成と運用コストの観点で最適解を継続検討。

### 未解決の課題
* 埋め込みモデルとLLMの最終的なコスト配分・構成の最適解

---

## 6. コストとリソース

### 人的リソース
* リサーチに１H、実装に５H

### 金銭的コスト
* 埋め込みモデルとLLMで別軸のAPI利用料が発生する

### コスト対効果
* （マニュアルに従って動くだけの）チャットオペレータの人件費が割愛できるコスト効果
