Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gemini の Structured Output を活用したクラウド設計支援システム

Gemini の Structured Output を活用したクラウド設計支援システム

クラウドアーキテクチャ設計は、技術要素とビジネス要件を統合する複雑なタスクです。弊社では、事業ごとに専門のインフラチームがレビューしますが、最終決定までには相互コミュニケーションに時間を要しています。これに対して、GeminiのStructured Outputを活用した「Cloud Architect Buddy」を開発しました。Geminiとユーザーのインタラクションにより、アーキテクチャ提案から代替案の提示までを自動化し、事業の開発効率を向上した取り組みを紹介します。

Avatar for kargo113

kargo113

May 01, 2025
Tweet

More Decks by kargo113

Other Decks in Technology

Transcript

  1. Contents 01 What is AI Tech Studio? 02 Our Motivation

    03 Cloud Architect Buddy 04 User Feedback 05 Summary 2
  2. 4 サイバーエージェント全体 インターネット広告事業 デジタルマーケティング全般の研究・開発 - 30 を超える AI・DX 関連のサービス開発 -

    AI 研究専門組織「AI Lab」 - 主に技術職が所属 デジタルマーケティングの提供・運用 - 国内トップシェア - あらゆる領域の DX コンサルティング - 主にビジネス・クリエイター職が所属 AI 事業本部 インターネット広告代理事業
  3. Data Science Center データ サイエンティストの横断組織 事業へのデータサイエンスの応用・実装 アドテク 協業リテールメディア 協業 DX

    オペレーションテクノロジー AI クリエイティブ 株式会社AI Shift AI Lab AI 技術の研究開発を行う専門組織 国際学会への論文投稿など学術貢献にも活発 横断組織 株式会社MG-DX AI オペレーション室 ※関連部署 AI 事業本部の組織体制 5
  4. 極シリーズ・LLM AI クリエイティブ BPO 事業 独自開発の「極予測 AI」を BPO サービスとして企業ご とにカスタマイズ提供し、企業のクリエイティブ

    DX を支 援する事業。デジタル広告などオンライン媒体のみな らず、DM やカタログなどオフライン媒体まで、企業が 必要とするあらゆるクリエイティブ制作のマーケティン グ効果向上と制作効率化を支援。 AI ローカライズ事業 AI を活用し漫画などの海外展開に向けたローカライズ を支援する専門組織。漫画やアニメ、ゲームなどの海 外展開における国や地域の文化や特性を考慮した戦 略策定・実行等を支援。また多言語対応や文脈理解 の AI 研究を強化し、各配信国や地域に合わせたロー カライズも強化。 AI で効果の高いクリエイティブを制作 実績:2.6 倍の広告効果・制作効率 5.6 倍 AI で検索連動型広告文を自動生成 実績:2.3 倍の広告効果 AI で広告効果予測値の高い LP(ランディングページ)を制作 大規模言語モデル(LLM)開発 6
  5. 株式会社 AI Shift 【AI コールセンター事業】 【AI エージェント事業】 企業の AI 活用を加速させるプラットフォーム開発

    公開事例数 No.1 ボイスボット チャット専業の BPO サービス 大規模言語モデルの連携により人間らしい対話エンジンを実現 <導入事例> ワクチン接種予約の完全自動化・ FAQ 対応・代表電話の一次受付 カスタマーサポート向け 高品質チャットボット 7
  6. 9 AI Lab 研究組織「AI Lab」は、デジタルマーケティング全般に関わる幅広い AI 技術の研究開発を目的に 2016 年に設立。 AI

    領域を中心に 100 名近い研究員が所属しており、多くの研究成果 を学術コミュニティへ発表。 ※右グラフでは査読付き国際会議への採択数を示しています。 2024年 論文採択数 約 87 本 ※査読付のみ 実証実験 プロダクト 実データ利用 研究のみにとどまらず、社外連携先を巻き込んだ実証実験や、プロダクト応用、実データを利用した研究成果の発表 など、民間企業研究組織として幅広い事業貢献。
  7. 構成要素 Proposal Overview Inspection Inquiry • 必要なクラウドサー ビスの列挙 • それぞれの役割や

    設定を説明 • アーキテクチャの要 約 • Mermaid による全 体の可視化 • 想定される懸念点 の列挙 • 代替案の提案 • 優先度順に質問を 提示 • ユーザーの好みを 自由に反映 16
  8. User-System Interaction User State - Architecture State を State Control

    17 ユーザー要件の 初期化 User State Subject Host jupyter on cloud … Preferences Architecture State Services Summary Inspection Inquiry User State Subject Host jupyter on cloud … Preferences Architecture State Services EC2, VPC Summary Inspection Inquiry User State Subject Host jupyter on cloud … Preferences Architecture State Services EC2, VPC Summary Security OK Inspection No volumes Inquiry User State Subject Host jupyter on cloud … Preferences Architecture State Services EC2, VPC Summary Security OK Inspection No volumes Inquiry Save data? User State Subject Host jupyter on cloud … Preferences Save data? Y Architecture State Services EC2, VPC Summary Security OK Inspection No volumes Inquiry Save data? アーキテクチャ (再)提案 アーキテクチャ 要約・検証 問い合わせ項目の 生成 設定の更新 設定に基づきアーキテクチャを再提案 Cloud Architect Buddy の処理 1 1 2 2 3 4 5 5 4 3
  9. Cloud Service の一覧 Pin 機能で固定できる Service View 18 (a) Services

    View サービス・用途・設定 👈 クリックでサービスを評価
  10. システム アーキテクチャ 22 Access Application & Presentation Storage GenAI Cloud

    Storage IAP Gemini CloudRun Firestore 2 3 1 4 Monitoring Logging Cloud Run ベースの シンプルな構成 Stateの格納 Gemini Request Auto Scaling Access Control Monitoring
  11. Structured Output • 構造化された JSON で返り値を制約 • State Control 上の

    IF となる • Gemini-2.0 Flash / Pro ともに対応 23 async def parse( prompt: str, response_format: BaseModel, *, instruction: str | None = None, model: str = "gemini-2.0-flash", ) -> GenerateContentResponse: client = genai.Client( vertexai=True, project="aitech-example-project", location="us-central1" ) resp = await client.aio.models.generate_content( model="gemini-2.0-flash", contents=prompt, config=GenerateContentConfig( system_instruction=[instruction], response_mime_type="application/json", response_schema=response_format, ), ) return resp tools=[google_search_tool] Google 検索によるグラウンディング
  12. GenAI SDK • Gemini API / Vertex AI ともに対応 ◦

    今回は Vertex AI を利用 • Pydantic で Format を指定 24 from google import genai client = genai.Client( vertexai=True, project="aitech-example-project", location="us-central1" ) class Architecture(BaseModel): ID_PREFIX: ClassVar[str] = "arc" session_id: Annotated[str, Field(description="The session ID of the architecture")] version: Annotated[int, Field(description="The version of the architecture")] services: Annotated[ List[CloudService], Field(description="List of cloud services in the architecture"), ] class CloudService(BaseModel): name: Annotated[ str, Field(description="The name of cloud service (e.g., EC2, BigQuery, etc.)") ] usage: Annotated[ str, Field(description="Descriptive passage of how the service is used") ] …
  13. Output Example • 返り値は全て JSON 25 { "session_id": "AI_AGENT_SUMMIT_001", "version":

    1, "services": [ { "name": "Cloud SQL", "usage": "顧客情報やトランザクションデータのデータベースとして使用し、データの一貫性と性能を確保します。", "category": "database", "settings": [ { "name": "データベースの種類", "value": "Cloud SQL", "notes": [ "スケーリングと高可用性" ] } ] } ...
  14. 単一コンテナ内通信 • Python 側は FastAPI の REST で設計 • Nuxt.js

    側は State を保持 しない • BFF 層を緩衝材に BFF 層による単一コンテナ内での通信制御 Service Client Server Middleware 29 States Views
  15. フィードバック 自由な入力とディスカッション (8) 意図を自由に反映できる 非構造化テキストで理解が困難 (6) 大規模なサービス提案が把握しづらい 32 直感的な設計意図の反映 (4)

    回答に基づく更新が便利 ChatGPT Cloud Architect Buddy × 視覚的な図表が全体理解を助ける (9) 一目でアーキテクチャが明確に 要件指定の柔軟性の制限 (7) テキストで具体的な修正を指示したい 特定のトピックの深堀が困難 (6) 対話でより深く掘り下げたかった 効果的な質問の作成に専門知識が必要 (7) 次に何を質問すべきか判断が難しい 馴染みやすく単純な対話モデル (3) シンプルなチャット形式が快適
  16. 良い点 - 網羅性の担保 - より直感的な設計 - 構造化による可視性 - 柔軟性の低さ -

    技術選定理由の不足 - 意図の反映のしづらさ 改善すべき点 → Hybrid Approach 33
  17. Structured Output は Agent を 活用する上で重要な枠組み Agent による制約と User の柔軟性の

    バランスを取る Agent-Centric 時代に向けて、ユーザー の役割を明確にする 01 02 03 40