このボットは音声文字起こしデータをもとに、
あの日話した内容をピンポイントで引き出すことができます。
仕組みを「RAG(検索拡張生成)」と言います。
STEP 1
全体フロー
「事前準備(一度だけ)」と「質問時(毎回)」の2フェーズで動いています。事前に作ったベクトルDBを質問時に参照する仕組みです
事前準備フェーズ
一度だけ実行
1
音声データ
勉強会の録音
↓
2
文字起こし
全発言をテキスト化
↓
3
チャンク分割
16トピックに分割・メタデータ付与
↓
4
エンベディング生成
Gemini API で3072次元ベクトル化
↓
5
JSONに保存(ベクトルDB)
chunks-with-embeddings.json
参照
→
質問時フェーズ
毎回実行
1
質問入力
ユーザーが質問を送信
↓
2
質問をベクトル化
Gemini Embedding API(リアルタイム)
↓
3
コサイン類似度で検索
上位3チャンクを選択
↓
4
LLMに渡して生成
Gemini 2.5 Flash で回答作成
↓
5
自然な回答を返す
参照チャンク名・スコア付きで表示
STEP 2
チャンクの構成
1つのチャンク=1つのトピック。以下の6つのフィールドで構成されています
chunks-with-embeddings.json(1チャンクの例)
{
"id": "chunk_07",
"title": "大前提①:言葉が超重要",
"category": "AI基礎",
"keywords": ["言葉", "用語", "共通認識", "大前提", ...],
"content": "AIを使いこなすための大前提①は「言葉が超重要」...",
"source": "CCDD1日目 第1章 AI基礎",
"embedding": [0.012, -0.034, 0.091, ...] // 3072次元
}
フィールド
役割
使われ方
id
識別子
チャンクを一意に特定
title
トピック名
UI上の「参照チャンク」チップに表示
category
大分類
エンベディング生成時の補助情報
keywords
キーワード一覧
Embeddingが失敗した際のフォールバック検索
content
実際の当日内容
LLMに渡す素材。これを元に回答生成
source
出典
どのセッションの内容かを示す
embedding
ベクトル(3072次元)
セマンティック検索の核。事前計算済みで保存
STEP 3
カテゴリ一覧
16チャンクは9つのカテゴリに分類されています。これがボットの「知識DB」全体です
イントロ
1チャンク
01 CCDD概要・ゴール設定
哲学・背景
1チャンク
02 AIエネルギー無限論・時代背景
事例紹介
3チャンク
03 パクさん・広告自動運転概要
04 広告自動運転の成果・CPA改善
05 広告自動運転のリフレクションループ実装
講師紹介
1チャンク
06 石綿文太さんの自己紹介・実績
AI基礎
2チャンク
07 大前提①:言葉が超重要
08 大前提②:設計が超重要
エージェント構造
4チャンク
09 AIエージェント最小構成(LLM+Tools)
10 AIエージェント拡張7要素
11 エージェンティックループの仕組み
12 Triggerの3種類
LLM・モデル
2チャンク
13 LLMモデル比較と設計思想
14 Claudeモデル使い分け(Opus vs Sonnet)
実践Tips
1チャンク
15 実践Tips(メモリ・Visualize・音声入力)
アクション
1チャンク
16 アクションアイテム・2日目に向けて
STEP 4
検索の流れ(クエリ時)
質問が来てから回答が返るまでの処理ステップ
①
質問文をベクトル化
Gemini Embedding API(gemini-embedding-001)で質問をリアルタイムにエンベディング。3072次元のベクトルに変換する。
リアルタイム
↓
②
コサイン類似度を計算
16チャンク全ての事前計算済みembeddingと、質問のembeddingとのコサイン類似度をサーバーで計算。「意味の近さ」を数値化する。
サーバー処理
↓
③
上位3チャンクを取得
類似度スコアの高い順に上位3チャンクを選択。UIにはチャンク名とスコア(%)が表示される。
Top-K検索
↓
④
LLMに「当日の内容」として渡す
取得した3チャンクのcontentをシステムプロンプトに追加。LLMは「同じ勉強会に出た仲間」として、この内容を自然な会話で使う。
RAGの核心
↓
⑤
自然な回答を生成
Gemini 2.5 Flashが「パクさんが〜って言ってたじゃないですか」「文太さんが例に出してたのが〜」のように、当日の文脈を使って自然に回答する。
Gemini 2.5 Flash
コサイン類似度の例(「リフレクションループとは?」という質問の場合)
広告自動運転のリフレクションループ実装
76.5%
選択
エージェンティックループの仕組み
71.1%
選択
CCDD概要・ゴール設定
63.2%
選択
AIエージェント拡張7要素
51.0%
スキップ
大前提①:言葉が超重要
44.3%
スキップ
TECH
技術スタック
E
Gemini Embedding
gemini-embedding-001
3072次元ベクトル生成
3072次元ベクトル生成
G
Gemini 2.5 Flash
RAGコンテキストを元に
自然言語で回答生成
自然言語で回答生成
C
Cloudflare Pages
サーバーレス関数で
API処理
API処理
S
コサイン類似度
クエリと全チャンクの
意味的距離を計算
意味的距離を計算