AI学习平台

Way Back Home是一个沉浸式AI学习平台,通过叙事方式教授Google Cloud AI技术,帮助参与者构建智能代理以解决实际问题。

  • by gca-americas
  • Python
  • 本地部署
  • 100 星标
  • 更新于
在 GitHub 查看 ayoisio/way-back-home

使用说明

  • 🚀 回家的路

一个沉浸式的人工智能工作坊平台,参与者可以在这里学习构建智能代理,同时营救一名搁浅的太空探险家。

《回家之路》是一个实践性的研讨会体验,通过引人入胜的叙述来教授谷歌云人工智能技术。参与者迫降在一个外星星球上,必须使用人工智能来识别自己、分析周围环境并协调救援工作。

🎮 体验

你是一名太空探险家,他的飞船坠毁在一个未知的星球上。你的救援信标已离线,你和其他幸存者分散在水面上。要回家,你必须:

级别 任务 学习的人工智能技能
级别0 生成您的探险家身份 双子座(Nano Banana)多回合图像生成
级别1 确定崩溃位置 多代理系统、MCP服务器、ADK、并行处理
2级 处理传入的SOS信号 事件驱动代理,A2A通信 (即将推出)
级别3 协调小组救援 代理编排、共识协议 (即将推出)
级别4 协调小组救援 代理编排、共识协议 (即将推出)
五级 协调小组救援 代理编排、共识协议 (即将推出)

🛠️ 技术栈

组件 技术
前端 Next.js 14、Three.js、React三纤维、顺风CSS
后端 FastAPI、Firestore、Firebase存储、云运行
AI/ML 顶点AI,双子座2.5闪光,Veo 3.1
代理 谷歌ADK、MCP(模型上下文协议)、谷歌云MCP服务器
基础设施 谷歌云运行、云构建、工件注册表

🚀 快速开始

研讨会参与者

  1. 访问云外壳 在 console.cloud.google.com

  2. 克隆和设置:

    git clone https://github.com/google-americas/way-back-home.git
    cd way-back-home
    
  3. 从0级开始:

    ./scripts/setup.sh
    cd level_0
    
  4. 遵循代码实验室: 0级指令

研讨会主持人

看 部署指导 下面是运行您自己的实例。

📚 文档

组件 描述
0级自述 基于多轮图像人工智能的阿凡达生成
第1级自述 多智能体碰撞现场分析
后端自述 任务控制API文件
前端自述 三维地图可视化

🏗️ 架构概述

┌─────────────────────────────────────────────────────────────────────────┐
│                           Way Back Home                                  │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│   Participant Journey                                                    │
│   ───────────────────                                                    │
│                                                                          │
│   ┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐         │
│   │ Level 0  │───▶│ Level 1  │───▶│ Level 2  │───▶│ Level 3  │         │
│   │ Identity │    │ Location │    │   SOS    │    │  Rescue  │         │
│   └──────────┘    └──────────┘    └──────────┘    └──────────┘         │
│        │               │                                                 │
│        ▼               ▼                                                 │
│   ┌─────────────────────────────────────────────────────────────┐       │
│   │                    Backend API (Cloud Run)                   │       │
│   │  • Participant registration    • Evidence storage            │       │
│   │  • Location confirmation       • Event management            │       │
│   └─────────────────────────────────────────────────────────────┘       │
│        │               │                                                 │
│        ▼               ▼                                                 │
│   ┌──────────┐    ┌──────────┐    ┌──────────────────────────┐         │
│   │Firestore │    │ Firebase │    │      Frontend (Next.js)   │         │
│   │          │    │ Storage  │    │  • 3D planet visualization │         │
│   │• events  │    │• avatars │    │  • Real-time participant   │         │
│   │• users   │    │• evidence│    │    tracking                │         │
│   └──────────┘    └──────────┘    └──────────────────────────┘         │
│                                                                          │
└─────────────────────────────────────────────────────────────────────────┘

🌐 部署

部署您自己的实例

  1. 先决条件:

    • 启用计费的Google Cloud项目
    • Firebase项目(火库+存储+身份验证)
    • 域名(可选,用于自定义URL)
  2. 克隆和配置:

    git clone https://github.com/google-americas/way-back-home.git
    cd way-back-home
    
    # Configure your project
    gcloud config set project YOUR_PROJECT_ID
    
  3. 运行基础结构设置:

    ./scripts/setup-infrastructure.sh
    
  4. 部署所有服务:

    注: 在您首次部署时,Cloud Run将为您的服务生成唯一的URL。构建完成后,您 必须 使用这些特定的URL再次重新部署前端,以确保3D地图可以与API通信。

    # First deployment (to generate URLs)
    gcloud builds submit --config cloudbuild.yaml
    
    # Get and save your URLs
    export API_BASE_URL=$(gcloud run services describe way-back-home-api --format='value(status.url)')
    export MAP_BASE_URL=$(gcloud run services describe way-back-home-frontend --format='value(status.url)')
    
    # Redeploy frontend with the actual URLs
    gcloud builds submit --config cloudbuild.yaml \
      --substitutions=_API_BASE_URL=$API_BASE_URL,_MAP_BASE_URL=$MAP_BASE_URL,_DEPLOY_BACKEND=false
    

环境配置

创建一个 set_env.sh 在项目根目录中:

export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value project)
export REGION="us-central1"
export API_BASE_URL=$(gcloud run services describe way-back-home-api --format='value(status.url)')
export MAP_BASE_URL=$(gcloud run services describe way-back-home-frontend --format='value(status.url)')

🎓 工作坊主办指南

研讨会前

  1. 将后端和前端部署到您的GCP项目中。确保将Cloud Run服务URL传递给 substitutions 旗在 gcloud builds submit.

  2. 配置管理员访问权限: API要求在 admins 消防仓库收藏。

    • 首选 Firebase控制台 > 四大.
    • 创建一个名为的集合 admins.
    • 创建一个文档,其中 文档编号 是您的电子邮件(例如。, your-name@google.com).
    • 添加字段 active: true (布尔值)。
  3. 使用以下方法之一创建事件:

方法A:Firestore(手动-建议快速启动)

在中创建文档 events 具有以下结构的集合:

  • 收藏: events
  • 文档ID: bwai-mycity (或您选择的事件代码)
  • 领域:
    • active: true (布尔值)
    • code: "bwai-mycity" (字符串)
    • created_at: [Current Timestamp] (时间戳)
    • created_by: "admin" (字符串)
    • description: "" (字符串)
    • max_participants: 500 (编号)
    • name: "Build With IA - GDG SJC" (字符串)
    • participant_count: 0 (编号)

方法B:CLI(建议用于自动设置)

使用提供的Python脚本,使用您的身份验证直接在Firestore中创建事件 gcloud 资格证书:

python3 scripts/create_event.py your-event-code "Your Workshop Name" --project YOUR_PROJECT_ID

方法C:API

  1. 从终端检索Firebase ID令牌:

    # 1. Get your Google Identity Token
    ID_TOKEN=$(gcloud auth print-identity-token)
    
    # 2. Exchange it for a Firebase ID Token (requires Firebase Web API Key)
    # You can find your API Key in the Firebase Console > Project Settings
    API_KEY="YOUR_FIREBASE_WEB_API_KEY"
    
    curl -s -X POST "https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=${API_KEY}" \
      -H "Content-Type: application/json" \
      -d "{\"postBody\": \"id_token=${ID_TOKEN}&providerId=google.com\", \"requestUri\": \"http://localhost\", \"returnIdpCredential\": true, \"returnSecureToken\": true}" | jq -r .idToken
    
  2. 调用管理员API:

    curl -X POST https://api.yourdomain.dev/admin/events \
      -H "Authorization: Bearer $FIREBASE_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"code": "your-event-code", "name": "Your Workshop Name"}'
    
  3. 生成指向您活动URL的二维码。

  4. 用样本参与者测试整个流程。

工作坊期间

  1. 与参与者共享事件代码
  2. 引导他们到 0级代码实验室
  3. 在以下位置监控实时地图 https://yourdomain.dev/e/your-event-code
  4. 当灯塔照亮整个星球时,庆祝吧!

成本估算

组件 大致成本
0级(每位参与者) ~0.08美元(2张图片)
一级(每位参与者) ~0.15美元(图片+视频+客服电话)
云运行(空闲) ~$0/月(缩放到零)
消防站(500名参与者) <1美元/月

🤝 贡献

欢迎投稿!请在提交PR之前阅读我们的投稿指南。

开发设置

# Backend
cd dashboard/backend
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8080

# Frontend
cd dashboard/frontend
npm install
npm run dev

📄 许可证

Apache 2.0-请参阅 许可证 了解详情。

🙏 致谢


准备好回家了吗? 从...开始 级别0 🚀