Slide 1

Slide 1 text

Cloud Run, Firestore, LangGraph を使ったAgentic Chatbot 久保田 崇文 ※ Opinions are my own.

Slide 2

Slide 2 text

久保田 崇文 出身:東京(〜3才) → 埼玉(〜小2) →    東京(〜大学)→ 千葉(〜現在) 趣味:ギター、作曲 経歴:  ・大学:無機 EL(LEDの親戚)の研究  ・新卒:大手メーカーで評価解析技術の研究開発  ・現在:Web系企業で生成AIエンジニア 登壇経験:  ・ Google Cloud Next Tokyo ’23   ・ 求人ボックスにおける Vertex AI Vector Search を利用したレコメンド  ・Generative AI Summit Tokyo ’24   ・自然言語処理における生成 AI の活用事例の紹介  ・言語処理学会第31回年次大会(NLP2025)※予定   ・ 大規模言語モデルベースの日本語固有表現抽出における Self-ReflectionとFew-Shot学習による精度改善 X:@kubornetes

Slide 3

Slide 3 text

デモ画面

Slide 4

Slide 4 text

なぜ、複数AIチャットなのか? 多様な視点、多角的な議論 Agenticシステムへの第一歩

Slide 5

Slide 5 text

システムアーキテクチャ

Slide 6

Slide 6 text

システムアーキテクチャ 選定理由、活用方法、はまりどころなどを紹介

Slide 7

Slide 7 text

Cloud Runの選定理由 Cloud Run Compute Engine (VM) レンタルサーバー 種類 コンテナベースのサーバーレス コンピューティング 仮想マシン (IaaS) 共有/VPS/専用サーバー 費用 従量課金(リクエスト数と リソース使用量) ※ゼロスケール可能 仮想マシンの スペックと稼働時間 月額固定 (プランによる) HTTPSリンク 自動で生成 設定が必要 (ロード バランサ、証明書等) プランによる (自動、 または手動設定) ちょっとしたWebアプリを作るのに最適 デプロイ先候補

Slide 8

Slide 8 text

Cloud Runのはまりどころ ・Streamlitで作成したアプリは、ブラウザを閉じないとゼロスケールしない。  → Streamlit自体が定期的にリクエストを送ってしまう仕様のため。 ・環境変数やシークレットは別途登録必要  → 特にシークレットはシークレットマネージャーという別プロダクトの利用が必要

Slide 9

Slide 9 text

Firestoreの選定理由 Firestore Cloud SQL SQLite 種類 NoSQL リレーショナル リレーショナル 費用 リクエストに応じた従量課金 ※ 無料枠あり リソースに応じた従量課金 ※ 無料枠あり 無し Cloud Runとの相性 〇 〇 ×(コンテナ停止で データが消える。) Web上の情報量が多い傾向にあったFirestoreに決定 データベース候補

Slide 10

Slide 10 text

Firestoreの活用方法 ・Local Storage を使った会話履歴管理  →ブラウザに任意のuser_idを記憶させておき、Firestoreで履歴を管理

Slide 11

Slide 11 text

LangGraphの選定理由 LangGraph 素のAPI Dify 種類 Pythonライブラリ Pythonライブラリ ローコードツール 柔軟性 〇(条件分岐、 繰り返しが柔軟に可能) ◎(LLM毎に提供している 最新機能は全て使える。) △(痒いところに 手が届かない。) 容易さ 〇(グラフ構造の コーディングで直観的) △(LLM毎にインター フェースが異なる。) ◎(コーディングなしで 実装可能) 柔軟性と容易さのバランスが良いLangGraphを採用 生成AIシステム構築方法の候補

Slide 12

Slide 12 text

LangGraphのはまりどころ ・Grounding with Google Search の機能が見当たらなかった。  →この部分だけ素のAPIで実装 ・Message型の調整が必要  →複数AIに答えさせる都合上、AIMessage ↔ HumanMessage 型に変換   (ChatMessage型も使えたかもしれない。)

Slide 13

Slide 13 text

Grounding with Google Search の選定理由 Grounding with Google Search Tavily 検索方式 Google の検索エンジン(キーワード検索、 セマンティック検索、ナレッジグラフ、 ランキングアルゴリズムなど) ベクトル検索とキーワード検索の 組み合わせと想定される。 料金 従量課金制(リクエスト数やトークン数) ※無料枠あり 無料プランと有料プランを提供。 無料プランは月間 1000 クエリまで。 精度が高そうなGrounding with Google Searchを選定 Web検索グラウンディングの候補

Slide 14

Slide 14 text

Grounding with Google Search の活用方法 ・Grounding機能は単体では使えないので、返却文をChatLLMに渡すようにした。 ・プロンプトを工夫することで検索先を日本語のWebページに限定させた。

Slide 15

Slide 15 text

ご清聴ありがとうございました! X @kubornetes Zennの記事 【AI Agent Hackathon】AIとワイワイ雑談! 複数AIがあなたの悩みを解決する、 新感覚グループチャットアプリ