🍳 レシピカード
要確認検証 2026/5/17
ツール
dify
難易度
上級
対象読者
エンジニア

チャットボット案件(スプレッドシート×埋め込みモデル) 検証してみた

📋 プロジェクト概要

  • カテゴリ: チャットボット / 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. コストとリソース

人的リソース

  • リサーチに1H、実装に5H

金銭的コスト

  • 埋め込みモデルとLLMで別軸のAPI利用料が発生する

コスト対効果

  • (マニュアルに従って動くだけの)チャットオペレータの人件費が割愛できるコスト効果
👁 19👍 1🔖 1

コメント1

ログイン してコメントする
田中省伍@s-tanaka-4e4010·

テストコメント