Skip to content

ストリーミング AI Chat ​

3つのレイアウトはテーマ色のフローティングボタンから遅延読み込みの /ai/chat を開きます。共有 UI は packages/mobile-ui/src/ChatPage.vue にあり、各アプリが token と endpoint を渡します。Chat、Login、Cart、Details では非表示です。UI は英語を初期値として中国語・日本語にも対応します。AI 出力は翻訳辞書ではなく、信頼できないコンテンツとして扱います。

/ai/chat はベンダー非依存の ChatProvider を使います。FetchChatProvider が POST /api/ai/chat の SSE を ReadableStream で読み、useStreamingChat がメッセージ、状態、再試行、再生成、AbortController を管理します。

Mock も実際に chunk を順次送ります。Markdown は DOMPurify でサニタイズしてから表示し、AI Key は必ずサーバー側に置きます。OpenAI、Claude、Gemini、DeepSeek は UI を変えずに adapter で接続できます。

Companion AI service を使う ​

ソースリポジトリ:

クローンと設定の手順はバックエンドモードを参照してください。

vue-h5-template-ai-service を既定の AI_PROVIDER=mock でポート 8001 に起動し、pnpm dev:services:vant を実行します。Vite は /api/ai/chat を SSE のまま転送し、ログイン済みの場合は FetchChatProvider が Business Service の Bearer Token を付与します。両サービスの JWT 設定を同一にすれば AI_AUTH_REQUIRED=true も利用できます。

実モデルを使う場合、AI_PROVIDER=openai-compatible、AI_BASE_URL、AI_API_KEY、AI_MODEL は AI service 側だけに設定します。アプリの VITE_* に秘密情報を入れず、ブラウザー契約は変更しません。

Released under the MIT License.