Google ADK + AlloyDB AI

AIショッピング
アシスタント

日本のECサイト向けAIチャットボット。ハイブリッドベクトル+テキスト検索で、商品の検索・比較・探索をサポートします。

日本のEC向けに設計

ハイブリッド検索、マルチテナント分離、リアルタイムストリーミングを備えた、完全なAIショッピングアシスタント。

ハイブリッド検索 (RRF)

ベクトル検索(ScaNN)、バイグラムテキスト検索(pg_bigm)、完全一致を組み合わせたReciprocal Rank Fusionで、日本語商品を高精度で発見。

マルチテナント

クライアントごとにパーティション分離されたデータ、個別のJWTシークレット、オリジンチェック、カスタマイズ可能なウィジェットテーマ。

SSEストリーミング

リアルタイムServer-Sent Events。ツール進捗、商品カード、テキストチャンク、サジェストチップなど豊富なイベントタイプを配信。

Shadow DOM ウィジェット

CSS分離された埋め込みチャットウィジェット。グラスモーフィズムデザイン、ダークモード、カスタムマスコット対応。ホストページへの干渉ゼロ。

メモリバンク

Vertex AI搭載の長期記憶。ユーザーの好み、名前、過去のやり取りをセッションを超えて記憶します。

AIフィルター&サマリー

動的フィルター生成、レビュー分析による観点別リランキング、AI生成の商品サマリー。

技術構成

Google ADK、AlloyDB、FastAPIを基盤としたプロダクションレディな技術スタック。

エージェント基盤
Google ADK
LLM
GPT-5.4-mini
データベース
AlloyDB (PostgreSQL)
ベクトル検索
ScaNN (cosine)
テキスト検索
pg_bigm
埋め込みモデル
Gemini Embedding
バックエンド
FastAPI + Uvicorn
フロントエンド
Vanilla JS + Vite
認証
JWT (HS256)
記憶
Vertex AI Memory Bank

SSEイベントタイプ

リアルタイムUI更新のための豊富なストリーミングイベント。

session tool_call tool_result text suggestions error done

エンドポイント一覧

ドメインごとにグループ化された15のRESTfulエンドポイント。認証とヘルスチェック以外はJWT必須。

認証
メソッドパス認証説明
POST /api/auth/token Origin 検証済みクライアントにJWTトークンを発行
ヘルスチェック
メソッドパス認証説明
GET /api/health なし サーバーヘルスチェック
ページ検証
メソッドパス認証説明
GET /api/check-page JWT カテゴリ/商品の存在確認
セッション管理
メソッドパス認証説明
POST /api/sessions JWT ページコンテキスト付きセッションの作成/再利用
GET /api/sessions/list JWT ユーザーのセッション履歴一覧
GET /api/sessions/{id}/history JWT ページネーション付きチャット履歴の取得
GET /api/sessions/{id} JWT セッションメタデータの取得
DELETE /api/sessions/{id} JWT セッションの削除
チャット
メソッドパス認証説明
POST /api/chat JWT SSEストリーミングチャット
POST /api/chat/sync JWT 非ストリーミングJSONチャット
AI機能
メソッドパス認証説明
POST /api/ai-filters JWT ハイブリッド検索による商品リランキング
POST /api/ai-filters/get-labels JWT 動的フィルター軸の生成
POST /api/ai-filters/viewpoint-rank JWT レビュー観点スコアによるリランキング
POST /api/ai-summary JWT AIサマリー+レコメンデーション
検索連携
メソッドパス認証説明
POST /api/search-linked/init JWT キーワード検索連動チャットの初期化

実際に試す

Haldataデフォルトテーマを使用した、実際のEC Chatウィジェットをこのページに埋め込んでいます。

導入方法

1つのscriptタグでECサイトの任意のページにウィジェットを埋め込めます。認証、ページコンテキスト検出、セッション管理を自動で処理します。

HTML
<!-- ECサイトに追加 -->
<script async defer
  src="https://tv-chat.stg.trend-viewer.com/loaders/haldata.js"
></script>
config.js
export default {
  appName: 'haldata',
  apiBaseUrl: 'https://tv-chat.stg.trend-viewer.com',
  theme: {
    primaryColor: '#1677FF',
    mascot: importedMascot,
    welcomeActions: [
      { label: '商品を探す', query: '...' },
    ],
  },
  extractPageContext() {
    // URLからカテゴリ/商品IDを取得
    return { category_id: '1972' };
  },
};

ウィジェットはこのページの右下に
フローティングバブルとして表示されます。

Chat API: STG — tv-chat.stg.trend-viewer.com(このオリジンはクライアントの allowed_origins に登録済みである必要があります)