SlideShare a Scribd company logo
Cloud Run, Firestore, LangGraph
を使ったAgentic Chatbot
久保田 崇文
※ Opinions are my own.
久保田 崇文
出身:東京(〜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
デモ画面
なぜ、複数AIチャットなのか?
多様な視点、多角的な議論 Agenticシステムへの第一歩
システムアーキテクチャ
システムアーキテクチャ
選定理由、活用方法、はまりどころなどを紹介
Cloud Runの選定理由
Cloud Run Compute Engine (VM) レンタルサーバー
種類 コンテナベースのサーバーレス
コンピューティング
仮想マシン (IaaS) 共有/VPS/専用サーバー
費用 従量課金(リクエスト数と
リソース使用量)
※ゼロスケール可能
仮想マシンの
スペックと稼働時間
月額固定
(プランによる)
HTTPSリンク 自動で生成 設定が必要 (ロード
バランサ、証明書等)
プランによる (自動、
または手動設定)
ちょっとしたWebアプリを作るのに最適
デプロイ先候補
Cloud Runのはまりどころ
・Streamlitで作成したアプリは、ブラウザを閉じないとゼロスケールしない。
→ Streamlit自体が定期的にリクエストを送ってしまう仕様のため。
・環境変数やシークレットは別途登録必要
→ 特にシークレットはシークレットマネージャーという別プロダクトの利用が必要
Firestoreの選定理由
Firestore Cloud SQL SQLite
種類 NoSQL リレーショナル リレーショナル
費用 リクエストに応じた従量課金
※ 無料枠あり
リソースに応じた従量課金
※ 無料枠あり
無し
Cloud Runとの相性 〇 〇 ×(コンテナ停止で
データが消える。)
Web上の情報量が多い傾向にあったFirestoreに決定
データベース候補
Firestoreの活用方法
・Local Storage を使った会話履歴管理
→ブラウザに任意のuser_idを記憶させておき、Firestoreで履歴を管理
LangGraphの選定理由
LangGraph 素のAPI Dify
種類 Pythonライブラリ Pythonライブラリ ローコードツール
柔軟性 〇(条件分岐、
繰り返しが柔軟に可能)
◎(LLM毎に提供している
最新機能は全て使える。)
△(痒いところに
手が届かない。)
容易さ 〇(グラフ構造の
コーディングで直観的)
△(LLM毎にインター
フェースが異なる。)
◎(コーディングなしで
実装可能)
柔軟性と容易さのバランスが良いLangGraphを採用
生成AIシステム構築方法の候補
LangGraphのはまりどころ
・Grounding with Google Search の機能が見当たらなかった。
→この部分だけ素のAPIで実装
・Message型の調整が必要
→複数AIに答えさせる都合上、AIMessage ↔ HumanMessage 型に変換
(ChatMessage型も使えたかもしれない。)
Grounding with Google Search の選定理由
Grounding with Google Search Tavily
検索方式 Google の検索エンジン(キーワード検索、
セマンティック検索、ナレッジグラフ、
ランキングアルゴリズムなど)
ベクトル検索とキーワード検索の
組み合わせと想定される。
料金 従量課金制(リクエスト数やトークン数)
※無料枠あり
無料プランと有料プランを提供。
無料プランは月間 1000 クエリまで。
精度が高そうなGrounding with Google Searchを選定
Web検索グラウンディングの候補
Grounding with Google Search の活用方法
・Grounding機能は単体では使えないので、返却文をChatLLMに渡すようにした。
・プロンプトを工夫することで検索先を日本語のWebページに限定させた。
ご清聴ありがとうございました!
X
@kubornetes
Zennの記事
【AI Agent Hackathon】AIとワイワイ雑談!
複数AIがあなたの悩みを解決する、
新感覚グループチャットアプリ

More Related Content

PDF
Langfuse_v3をGoogleCloud上にTerraformでサクッとホスト
PDF
Gemini_Live_APIでAIと会話しながらブログを作成するアプリを作ってみた
PDF
[Whisper論文紹介]Robust Speech Recognition via Large-Scale Weak Supervision
PPTX
関西Itコミュニティ集まれ!デブサミ名物コミュニティlt大会(発表版)
PPTX
SIGGRAPH 2019 Report
PDF
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
PDF
[DojoCon Japan 2018]自分にできる貢献のしかたを見つけよう by CoderDojo光
PDF
今時のオンプレなgithubクローン環境構築
Langfuse_v3をGoogleCloud上にTerraformでサクッとホスト
Gemini_Live_APIでAIと会話しながらブログを作成するアプリを作ってみた
[Whisper論文紹介]Robust Speech Recognition via Large-Scale Weak Supervision
関西Itコミュニティ集まれ!デブサミ名物コミュニティlt大会(発表版)
SIGGRAPH 2019 Report
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
[DojoCon Japan 2018]自分にできる貢献のしかたを見つけよう by CoderDojo光
今時のオンプレなgithubクローン環境構築

Similar to Cloud Run, Firestore, LangGraphを使ったAgentic Chatbot (20)

PPTX
シビックテックセミナーinJAIST発表資料
PDF
[OSC2018広島]自分にできる貢献のしかたを見つけよう(OSC2018広島Ver)
PDF
Io t,ai時代のソフトウェア
PDF
発見から納品へ
PPTX
初学者に優しいプログラミング言語とは?
PDF
もう一度Kotlinの話をしよう #ndsmeetup4
PPTX
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
PDF
ニコニコアプリ開発
PPTX
C# Tokyo ガイド 2020/02
PDF
Twitterでみる社会のトレンド
PDF
VS Code Live Share ~ 東京と大阪を繋いでみよう!
PPTX
Devil is in the Edges: Learning Semantic Boundaries from Noisy Annotations
PDF
.NET の今 ~ 最新アップデートと 2019 年の展望
PPTX
Watanabe civictechforum
PDF
.NET の今と今後に思うこと (Tokyo Ver.)
PDF
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
PPT
Jag神戸3(共有用)
PDF
Pythonを始めよう
PDF
アウトプットのすすめ
PDF
Pythonを始めよう
シビックテックセミナーinJAIST発表資料
[OSC2018広島]自分にできる貢献のしかたを見つけよう(OSC2018広島Ver)
Io t,ai時代のソフトウェア
発見から納品へ
初学者に優しいプログラミング言語とは?
もう一度Kotlinの話をしよう #ndsmeetup4
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
ニコニコアプリ開発
C# Tokyo ガイド 2020/02
Twitterでみる社会のトレンド
VS Code Live Share ~ 東京と大阪を繋いでみよう!
Devil is in the Edges: Learning Semantic Boundaries from Noisy Annotations
.NET の今 ~ 最新アップデートと 2019 年の展望
Watanabe civictechforum
.NET の今と今後に思うこと (Tokyo Ver.)
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
Jag神戸3(共有用)
Pythonを始めよう
アウトプットのすすめ
Pythonを始めよう
Ad

Cloud Run, Firestore, LangGraphを使ったAgentic Chatbot