Gemini 示例应用全景指南:generative-ai 仓库 sample-apps 目录的端到端云端实战参考
【免费下载链接】generative-aiSample code and notebooks for Generative AI on Google Cloud, with Gemini Enterprise Agent Platform项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai
本指南以 gemini/sample-apps/README.md 为骨架,系统梳理该目录下全部 Gemini 示例应用:从金融领域的多模型数据库检索、可信 GenAI 特性落地,到幻觉评估、多智能体科研工具与零代码智能体部署,逐一给出应用定位、技术栈、部署要点与源码级证据。读完本文,你将能根据业务场景在 16+ 个参考实现中准确选型,并掌握统一的 Cloud Shell 环境初始化流程、Cloud Run 部署范式以及每类应用的核心源码入口。
目录定位:Sample Applications 在仓库中的作用
gemini/sample-apps/是 generative-ai 仓库中面向「完整可运行应用」的目录。与大量仅演示单点 API 能力的 Notebook(例如gemini/getting-started/下的模型介绍、gemini/function-calling/下的函数调用示例)不同,这里每个子目录都是一个端到端参考实现——包含前端、后端、部署配置乃至数据准备脚本,直接演示如何在 Gemini Enterprise Agent Platform 上把 Gemini API 组合进真实业务系统。
目录本身附带三个基础设施文件:
- README.md:全部应用的一览索引(本指南的主体)。
- SETUP.md:所有应用共用的自定进度环境搭建指南,涵盖 GCP 项目创建、Cloud Shell 初始化、API 启用与仓库克隆。
- LICENSE:Apache License 2.0 协议文本,所有示例代码均可在此协议下自由使用、修改与分发(演示代码以 "AS IS" 提供,未做生产级加固,详见下文注意事项)。
需要特别说明的是:README 索引中的accelerating_product_innovation/、fixmycar/、llamadeploy-on-cloud-run/、llamaindex-rag/四个条目在当前仓库快照中未包含对应目录(可能在其他分支或已独立托管),本指南将聚焦当前快照中实际存在、可验证的 15 个应用目录,并在文末给出缺失条目的说明。
环境准备:所有示例应用共用的初始化流程
在运行任意示例应用之前,先完成 SETUP.md 规定的四步准备工作。这是下面所有部署步骤的共同前提,请务必先执行。
第一步:创建或选择 Google Cloud 项目并启用计费
- 登录 Google Cloud Console,新建项目或复用已有项目(若没有 Gmail 或 Google Workspace 账号,需先注册)。
- 明确三个容易混淆的值:
- Project name:项目的显示名称,仅用于展示,可随时修改,不参与 API 调用。
- Project ID:全局唯一、创建后不可变更,后续所有命令行操作(
PROJECT_ID)都引用它。 - Project Number:部分 API 使用的数字标识。
- 在控制台启用计费(Billing)。本教程的示例应用运行成本通常很低;新用户可参与 $300 USD Free Trial 试用计划。教程结束后删除创建的资源或直接删除项目即可避免后续计费。
第二步:启动 Cloud Shell 并确认认证
Cloud Shell 是运行在 Google Cloud 上的命令行环境,自带开发工具、持久的 5GB 主目录,并已预置认证。从控制台右上角点击 Cloud Shell 图标即可进入。连接后验证认证状态:
gcloud auth list期望输出(当前账号处于 active 状态):
Credentialed accounts: - <myaccount>@<mydomain>.com (active)确认当前项目:
gcloud config list project期望输出:
[core] project = <PROJECT_ID>如果项目未设置,手动指定:
gcloud config set project <PROJECT_ID>Cloud Shell 还会预置GOOGLE_CLOUD_PROJECT环境变量,可用echo $GOOGLE_CLOUD_PROJECT查看,后续应用的 Vertex AI 初始化会用到它。
第三步:启用所需的 Google Cloud API
在 Cloud Shell 中执行(一条命令同时启用构建、函数、运行、日志、存储与 AI Platform 六大 API):
gcloud services enable cloudbuild.googleapis.com cloudfunctions.googleapis.com run.googleapis.com logging.googleapis.com storage-component.googleapis.com aiplatform.googleapis.com执行成功后应看到类似输出:
Operation "operations/acf.5c5ef4f6-f734-455d-b2f0-ee70b5a17322" finished successfully.第四步:克隆仓库
将仓库克隆到 Cloud Shell(所有示例位于sample-apps目录下):
git clone https://gitcode.com/GitHub_Trending/ge/generative-ai.git克隆后按需进入对应子目录,例如cd generative-ai/gemini/sample-apps/finance-advisor-spanner/。
示例应用全景总览
下表汇总了当前仓库快照中实际存在的应用目录、核心定位与关键技术栈(信息来自各子目录 README):
| 应用目录 | 定位 | 关键技术栈 |
|---|---|---|
| finance-advisor-spanner | 金融投顾演示:Spanner 多模型检索(全文/向量/图) | Spanner、Vertex AI(text-embedding-005)、Cloud Run、Dataflow、Streamlit |
| genwealth | 虚构金融公司的可信 GenAI 特性落地 | AlloyDB AI、Vertex AI(gemini-2.0-flash-001、textembedding-gecko@003)、Agent Builder、Document AI、Cloud Run、Cloud Functions、Eventarc、Pub/Sub、LangChain、Angular 17 |
| gemini-hallcheck | 置信度目标化、可弃权感知的幻觉评估器 | google-genai SDK、Gemini 2.5 Flash-Lite(评判器)、CSV / MMLU 数据源 |
| gemini-mesop-cloudrun | Mesop UI 框架 + Gemini API on Cloud Run | Mesop、Vertex AI、Cloud Run |
| gemini-streamlit-cloudrun | Streamlit 框架 + Gemini API on Cloud Run | Streamlit、Vertex AI、Cloud Run |
| gemini-quart-cloudrun | Quart 异步框架 + Gemini Live API 非阻塞对话 | Quart(ASGI)、Gemini Live API、WebSocket、Cloud Run |
| gemini-live-telephony-app | 实时双向语音电话 AI 助手 | Twilio、FastAPI、Gemini Live API、python-samplerate、Cloud Run |
| image-bash-jam | 纯 Bash 命令行测试 Gemini(图像/音频) | Bash 脚本、gcloud、Gemini API、lolcat(可选) |
| photo-discovery | 拍照识物 + Agent 对话(Flutter 多端) | Flutter、Vertex AI Search、Agent Engine(Reasoning Engine) |
| prism-science-explainer | 科学问题 → 交互式模拟器的多智能体科研工具 | FastAPI + Google ADK、Gemini 3.7 Flash、Google Search grounding |
| rosetta-agent-porter | 把 LangGraph/CrewAI/AutoGen 智能体移植为原生 ADK 智能体 | FastAPI + Google ADK、Gemini 3.7 Flash、agents-cli |
| quickbot | 零编码部署全栈 AI Agent 应用到自有 GCP 账号 | Angular 前端、FastAPI 后端、Cloud Run、Gemini/Imagen/Agent Builder |
| swot-agent | 自动化 SWOT 战略分析 Web 应用 | Gemini 2.0 Flash、Pydantic AI、FastAPI、HTMX、Tailwind CSS |
| photo-discovery 之外的 e2e-gen-ai-app-starter-pack | 端到端 GenAI 应用启动包(已迁移) | 见迁移说明(README 中仅剩指向新仓库的说明) |
金融领域实战:多模型数据库与可信 GenAI
Finvest:用 Spanner 把关系、文本、向量、图四类检索统一到单一数据库
finance-advisor-spanner/README.md 描述了一个完整的金融投顾场景:投资经理需要从结构化数据(费率、基金收益)、复杂数据(资产持仓、行业板块)与非结构化数据(投资理念、客户目标)中筛选合适的基金。演示应用 Finvest 展示了 Spanner 如何把这四类形态的数据放进同一个多模型数据库。
场景推演(README 中的四条检索路径):
- 关系 + 全文检索:客户要求「北美和欧洲、投资衍生品」的基金,Spanner 执行关系查询加文本检索返回基金列表。
- 模糊匹配(子串全文检索):只记得经理姓名像是 "Liz Peters",Spanner 用 Full Text Search 的子串匹配定位到由 Elizabeth Peterson 管理的基金。
- 向量检索(语义匹配):勾选向量搜索后,输入 "socially responsible"(社会责任)能返回 ESG 基金——这是 KNN 向量相似度匹配的效果。
- 图检索(穿透式行业敞口计算):基金可再投资于其他基金(fund of funds),Spanner 通过资产知识图谱遍历基金及其持仓的嵌套关系,计算客户对某行业的实际敞口,例如筛选出科技板块敞口 ≥ 20% 的基金。
技术栈:Spanner、Vertex AI LLM(text-embedding-005同时承担嵌入与文本补全)、Cloud Run、Dataflow、Streamlit(前端,见 home.py 中的st.set_page_config宽屏布局与 FinVest Advisor 页面设置)。
部署步骤(核心命令完整保留):
- 在控制台创建 Spanner 实例并记下实例名。
- 从公开 GCS Bucket(
github-repo/generative-ai/sample-apps/finance-advisor-spanner/spanner-fts-mf-data-export/)导入数据,记下数据库名。 - 执行目录下的 Schema-Operations.sql 附加 DDL。首先必须把嵌入模型的 endpoint 改为你自己的项目与实例所在区域:
ALTER MODEL EmbeddingsModel SET OPTIONS ( endpoint = '//aiplatform.googleapis.com/projects/'YOUR PROJECT ID HERE'/locations/'YOUR SPANNER INSTANCE LOCATION HERE'/publishers/google/models/text-embedding-005' ) ;其余 DDL 语句无需修改即可继续执行。
- 编辑同目录下的
.env文件,填入步骤 1、2 记录的名称:instance_id='YOUR INSTANCE ID' database_id='YOUR DATABASE ID' - 构建并部署:
gcloud builds submit --tag gcr.io/'YOUR PROJECT ID HERE'/finance-advisor-app gcloud run deploy finance-advisor-app --image gcr.io/'YOUR PROJECT ID HERE'/finance-advisor-app --platform managed --region 'YOUR SPANNER REGION' --allow-unauthenticated
源码级纵深:Schema-Operations.sql如何支撑上述四种检索
这份 DDL(Schema-Operations.sql)是理解 Spanner 多模型能力的关键证据:
- 全文检索的基石——TOKENLIST 生成列:为
fund_name、category、investment_strategy、investment_managers、fund_benchmark、morningstar_benchmark、top5_regions、top5_holdings等列创建TOKENIZE_FULLTEXT分词列(HIDDEN 隐藏列),供全文搜索使用。 - 子串模糊匹配的两种形态:
TOKENIZE_SUBSTRING(investment_managers)提供普通子串分词;更精细的 NGRAM 变体使用ngram_size_min=>2, ngram_size_max=>3,并限定relative_search_types=>["word_prefix","word_suffix"]——这正是演示中输入 "Liz Peters" 能命中 "Elizabeth Peterson" 的实现原理。 - 向量检索的底座:大量
UPDATE EU_MutualFunds SET investment_strategy_Embedding_vector = ...语句把预生成的嵌入向量回填到表中。 - 检索加速:对每个 TOKENLIST 列创建
SEARCH INDEX(见同文件 L65-L80 的CREATE SEARCH INDEX category_Tokens_IDX ON EU_MutualFunds(category_Tokens)等语句)。
前端侧,pages 目录按功能拆分为四个 Streamlit 页面:1_Asset_Search.py(资产搜索)、2_Semantic_Search.py(语义搜索)、3_Graph_Visualization.py(图可视化)、4_Exposure_Check.py(行业敞口核查),与 README 中演示的四种检索路径一一对应;后端查询逻辑集中在database.py与graph_viz.py。
清理资源:演示完成后删除项目即可彻底清理(注意该命令会永久销毁项目内所有资源,务必确认 PROJECT_ID 无误):
PROJECT_ID='YOUR PROJECT ID HERE' gcloud projects delete ${PROJECT_ID}GenWealth:在存量应用中叠加三个可信 GenAI 特性
genwealth/README.md 演示了如何用「已有的数据 + 已有的技能」组合 AlloyDB AI、Vertex AI、Cloud Run 与 Cloud Functions,为虚构金融公司 GenWealth 的现有投资顾问软件新增三个 GenAI 特性:
- 投资搜索体验升级:面向理财顾问,基于 AlloyDB AI 的语义搜索。
- 客户分群:面向市场分析师,识别新产品/服务的潜在客户。
- GenAI 聊天机器人:面向理财顾问的 RAG 助手,以应用数据为 grounding 提升生产力。
技术栈(README 明确列出):AlloyDB for PostgreSQL 14+;Vertex AI LLM(gemini-2.0-flash-001与textembedding-gecko@003);Vertex AI Agent Builder;Document AI(OCR 处理器);Cloud Run(第二代);Cloud Functions(Python 3.11+);Cloud Storage;Eventarc;Pub/Sub;LangChain 0.1.12+;Node 20+;Angular 17+。
部署入口:项目根目录提供install.sh、env.sh(环境变量配置)、deployment/(9 个部署脚本)、function-scripts/(4 个 Cloud Functions 脚本)、api/(TypeScript 后端)、ui/(Angular 前端)、database-files/(SQL 建库脚本)与alternate-configs/(替代配置)。部署同样从创建新项目开始,其余步骤参见其 README 与 SETUP.md。
可靠性工程:面向幻觉的可弃权评估器 gemini-hallcheck
gemini-hallcheck/README.md 是一个置信度目标化(confidence-targeted)、可弃权感知(abstention-aware)的 Gemini 幻觉评估器,基于google-genaiSDK 实现。它把 Kalai 等人论文中的思想工程化落地:「只有当你置信度 > t 时才回答,否则输出 IDK」(论文编号 arXiv:2509.04664,详见其 README 的 Citation 一节)。
核心打分机制:
- 以弃权感知损失函数给每个条目打分:回答且正确 = +1;回答但错误 = −t/(1−t);弃权(IDK)= 0。
- 输出风险–覆盖率曲线(risk–coverage curve):x 轴为覆盖率(模型实际作答、没说 IDK 的条目占比),y 轴为条件准确率(作答时答对的频率),曲线上每个点都标注对应的 t 值。
判读规则:t 升高 ⇒ 覆盖率下降、条件准确率上升。若「t 对应的条件准确率远低于 t」,说明模型过度自信或未遵守弃权指令,此时应提高 t、加固提示词、引入检索或转交机制、或重新校准。
安装与认证:
python -m venv .venv && source .venv/bin/activate pip install -e .Gemini API(开发者 API)方式:
export GOOGLE_API_KEY=YOUR_KEY # 或 GEMINI_API_KEYVertex AI 方式(两者二选一,勿同时设置 API Key):
export GOOGLE_GENAI_USE_VERTEXAI=true export GOOGLE_CLOUD_PROJECT=your-gcp-project export GOOGLE_CLOUD_LOCATION=us-central1 # 或 europe-west1 等快速开始(CSV 模式):
gemhall run --data examples/toy.csv --thresholds 0.5 0.75 0.9 --model gemini-2.5-flash-lite --progress --out outputs直接跑 MMLU(Hugging Face 数据集)并混入 IDK-only 样本:
gemhall mmlu --thresholds 0.5 0.75 0.9 --model gemini-2.5-flash-lite --split test --subjects all --limit 200 --judge llm --async --concurrency 16 --progress --out outputs/mmlu --idk-frac 0.3其中--idk-frac 0.3会把 30% 的抽样条目转换成「不可回答」的 IDK-only 样本——唯一正确行为就是输出 IDK,从而真正检验模型的弃权能力。
输出产物:results.csv(每个 条目×t 一行的预测、弃权标记、正确性、得分)、metrics.json(覆盖率、条件准确率、回答中的幻觉率、期望得分均值)、behavior.json(简单行为检查,如覆盖率随 t 单调性)、rc_curve.png(带 "t=…" 标注的风险–覆盖率曲线)、report.md(汇总报告并内嵌图表)。
CLI 参考(完整保留):
共享参数(run与mmlu均适用):
--thresholds FLOAT... 置信度阈值(如 0.5 0.75 0.9)[必填] --model TEXT Gemini 模型 ID(默认 gemini-2.5-flash) --temperature FLOAT 采样温度(默认 0.0) --thinking-budget INT 可选的思考预算(默认 0) --seed INT 抽样用 RNG 种子(默认 1234) --judge {exact,llm} 有效性评判器(exact 或 llm;默认 exact) --async 异步客户端并发请求 --concurrency INT 异步模式最大并发数(默认 8) --progress 显示进度条 --out PATH 输出目录(默认 outputs) --rpm-limit INT 客户端每分钟请求数上限(可选) --max-retries INT 429 退避重试次数(默认 6)run(CSV)专有:--data PATH(CSV 需含id, question, gold, unknown_ok列)。
mmlu专有:
--split TEXT 数据集划分(test、dev 等)[默认 test] --subjects STR... 科目名或 'all' [默认 all] --limit INT 按科目过滤后随机抽样 N 条 --idk-frac FLOAT 转为 IDK-only 条目的比例 [0..1](默认 0.0)评判器与限流细节:exact评判器对选择题做字母(A/B/C/D)严格匹配,对自由形式做数值/文本等价匹配;llm评判器用 Gemini 2.5 Flash-Lite 做 "YES/NO" 评分,且unknown_ok=1时只有 IDK 才算正确(不发起 LLM 调用)。不设--rpm-limit时仍会遵守服务端RetryInfo做带抖动的指数退避重试;高并发时建议--async --concurrency 12 --rpm-limit 180 --max-retries 8这类稳定组合。
业务映射(README 建议的 t 值档位):t≈0.5 用于草稿与分流(高覆盖率、人在回路);t≈0.75 用于辅助性回答(支持建议、带引用的 FAQ);t≈0.9 用于自助回复(非监管流程的公开答复);t≈0.95 用于高风险场景(受监管/品牌关键,否则转人工)。
UI 框架三件套:Mesop、Streamlit 与 Quart on Cloud Run
Gemini with Mesop on Cloud Run
gemini-mesop-cloudrun/README.md 演示 Mesop UI 框架(Google 出品的 Python 原生 Web UI 框架)运行在 Cloud Run 上,通过 Vertex AI 调用 Gemini。
本地运行(Cloud Shell):
python3 -m venv gemini-mesop . gemini-mesop/bin/activate pip install -r requirements.txt export GOOGLE_CLOUD_PROJECT=$(gcloud config get project) # 当前项目 ID export GOOGLE_CLOUD_REGION='us-central1' # 改成区域时请确认受支持 mesop --port 8080 main.py启动后用 Cloud Shell 的 Web 预览打开返回的 URL 即可交互。
构建并部署到 Cloud Run:
export SERVICE_NAME='mesop-gemini' gcloud run deploy $SERVICE_NAME \ --source . \ --port=8080 --allow-unauthenticated \ --project=$GOOGLE_CLOUD_PROJECT --region=$GOOGLE_CLOUD_REGION \ --set-env-vars=GOOGLE_CLOUD_PROJECT=$GOOGLE_CLOUD_PROJECT \ --set-env-vars=GOOGLE_CLOUD_REGION=$GOOGLE_CLOUD_REGION要点:GOOGLE_CLOUD_PROJECT与GOOGLE_CLOUD_REGION两个环境变量是 Vertex AI 初始化所必需,本地与部署时都要注入。
Gemini with Streamlit on Cloud Run
gemini-streamlit-cloudrun/README.md 是同样模式下的 Streamlit 版本(数据科学团队最熟悉的 Python UI 框架):
python3 -m venv gemini-streamlit source gemini-streamlit/bin/activate pip install -r requirements.txt export GOOGLE_CLOUD_PROJECT='<Your Google Cloud Project ID>'随后按 README 选择标准 Vertex AI 或旧版aiplatformSDK 的对应配置,本地streamlit run验证后再部署到 Cloud Run(部署命令与 Mesop 版本同构,见其 README)。
Gemini with Quart on Cloud Run:非阻塞对话与 Live API
gemini-quart-cloudrun/README.md 是三者中最具架构深度的一个:它用Quart(基于 ASGI 标准的异步 Python Web 框架)承载Gemini Live API的双向实时语音/文本流。
为什么选 Quart:
- 异步架构:基于
asyncio的事件循环高效处理并发 I/O,不会在等待 Gemini 响应时阻塞进程。 - 原生 WebSocket 支持:为实时 AI 应用所需的持久双向通道提供一等公民支持。
- Flask 风格 API:API 设计与广泛采用的 Flask 一致,学习曲线低。
- 为多模态流式数据优化:擅长高效处理生成式 AI 模型的大体积流式输出。
Flask(阻塞)vs Quart(非阻塞):README 明确对比了两者的行为差异——Flask 一次处理一个请求,等待 Gemini 时整个请求被阻塞,客户端必须等前一个响应才能发下一条消息,交互缓慢;Quart 则在全双工 WebSocket 上非阻塞收发,用户可连续发送文本/语音消息,且支持对正在生成的回复进行打断(interruption),延迟更低、服务器资源利用率更高、并发与扩展性更好。
上图是 README 中用来对照说明的 Flask 处理流程示意(该图片位于仓库根目录 seq_flask.png):客户端发出 HTTP Request,WSGI Server 通过environ将请求交给 FlaskApp,依次执行路由匹配与视图函数后返回 HTTP Response——整个过程是同步阻塞的,这正是与 Quart 异步模型形成对比的基线。
语音电话:AI Care Assistant(Twilio + Gemini Live API)
gemini-live-telephony-app/README.md 提供了一个实时双向语音到 AI 应用的完整架构蓝图与实现:Twilio负责电话接入、FastAPI后端做实时处理、Google Gemini Live API提供对话能力,整体部署在 Cloud Run 上。
关键设计决策(README 明确记录):
- 使用
python-samplerate做高质量流式音频重采样,解决电话音频编码与 Live API 输入之间的格式转换。 - Cloud Run 部署通过
min-instances=1缓解冷启动,并利用会话亲和(session affinity)保存内存中的 DSP 状态。
环境准备要点:创建项目并启用 Vertex AI API;gcloud auth login与gcloud auth application-default login完成账号与应用双重认证;基于.env.example创建.env文件配置环境变量。完整的系统架构说明(组件拆解、数据流、技术论证、分步实现指南)在其 design_doc.md 中,工具代码位于utils/目录。
命令行与脚本:用 Bash 直接测 Gemini(image-bash-jam)
image-bash-jam/README.md 提供一套纯 Bash 脚本,让你在终端里直接调用 Gemini,覆盖图像与音频示例,非常适合快速验证 API 行为或做演示。
目录内容一览:01-setup.sh(认证与初始化)、_common.sh(公共函数,含_lolcat彩色输出检测)、annotate-all.sh、gemini-explain-image.sh(解释图像)、gemini-explain-image-italian.sh、gemini-generic.sh、gemini-generic-two-pics.sh(两图对比)、gemini-why-is-the-sky-blue.sh、tts.sh(语音合成),以及Makefile统一封装。
快速上手:
cd generative-ai/gemini/sample-apps/image-bash-jam/ # 可选:安装 lolcat 获得彩色输出;不装也会自动回退到默认颜色 gem install lolcat # 认证(Cloud Shell 环境可跳过,一键授权) gcloud auth login # 用本地密钥方式配置项目 cp .envrc.dist .envrc vim .envrc # 修改 PROJECT_ID 与 ACCOUNT ./01-setup.sh # 完成认证并执行 `make images` 下载本地资源多智能体前沿:Prism 与 Rosetta
这两个应用代表了当前仓库中最先进的多智能体参考实现,均由单一模型驱动全部流水线阶段。
Prism:问一个科学问题,得到一台交互式模拟器
prism-science-explainer/README.md 描述的应用接受一个朴素科学问题(如 "彩虹是怎么形成的?"),先在实时网络上研究答案,然后现场编写一个可拖拽控件的交互式模拟器来解释它——没有模板库、没有预制答案,全程约 45 秒。整条流水线跑在同一个模型 Gemini 3.7 Flash 上(该模型链接为仓库 README 原文标注,当前实现以仓库内app/config.py的配置为准)。
五阶段流水线:
- Gatekeeper(守门人):检查问题是否属于可教学的科学主题,并设定受众水平。
- Planner(规划器):把问题拆解为五个研究角度。
- Research swarm(研究蜂群):基于 ADK
ParallelAgent并行启动五个搜索智能体,分别研究机制、关键数字、常见误解、边界与一个可计算示例,全部以 Google Search 为 grounding。 - Build instrument(构建模拟器):写出
PRISM_SPEC规格与PRISM_SIM模拟器。 - Verify(验证):静态检查模拟器确实会动画、控件能驱动它,失败则通过修复循环回到构建阶段。
源码级纵深:不同阶段改变的不是模型而是思考级别(thinking level)——gatekeeper、planner 与五个并行搜索者运行在LOW以保持速度,模拟器构建者使用MEDIUM(见 app/config.py 中的THINK与MODES)。最后三步是最有趣的部分:让模型产出一个真正能跑的模拟器(t=30s 时仍在运动、拖拽滑块会改变正在播放的动画)本质上是个「提示词 + 验证」问题——app/fill_prompt.txt 承载了硬性的运动契约(hard motion contract),而 app/render.py 会静态拒绝step()为空实现的仪器——这正是经典失败模式:画面很美,但点击 Play 毫无反应。
前置条件:Python 3.11–3.13、uv(依赖与虚拟环境管理),以及两种后端之一(Gemini API 或 Vertex AI,按其 README 配置)。
Rosetta:把任何智能体移植成原生 ADK 智能体
rosetta-agent-porter/README.md 描述一个「移植智能体的智能体」:把用LangGraph、CrewAI 或 AutoGen构建的智能体仓库指给它,它读代码、用Google ADK重建为原生智能体、自我修复构建直到通过(green)、校验移植后的行为与原版一致,然后交付一个可对话的在线智能体——全程约一分钟。同样全程使用单一模型 Gemini 3.7 Flash。
六阶段流水线:intake(代码摄入)→ 基于 ADKParallelAgent的六智能体分析蜂群(分别覆盖 graph、prompts、tools、state、models、inputs 六个维度)→ port plan(移植方案)→ codegen(代码生成)→ verify(带修复循环的构建验证)→ fidelity eval(保真度评估),最终以原生 ADK 智能体形式运行在adk api_server上。
源码级纵深:与 Prism 相同的设计哲学——高吞吐的仓库读取运行在LOW思考预算上,移植规划器与代码生成器运行在MEDIUM(见 app/config.py 中的ROLE_THINKING)。前置条件为 Python 3.11–3.13、uv、git(Rosetta 需要克隆目标仓库);其余依赖(包括负责脚手架与 lint 生成 ADK 项目的agents-cli)由make setup安装。
零代码智能体部署:Quickbot
quickbot/README.md 定位为「开箱即用」解决方案:用户无需任何编码经验,即可把成熟的 AI Agent 以全栈云应用形式部署到自己名下的 GCP 账号中,且部署完成后代码归用户所有、可自由定制。
核心特性(README 所列):预置模板快速创建定制 Agent;官方 README 声称可在 10 分钟内完成部署(该数字为项目方标称,建议以实际验证为准);完全开源可定制(Angular 前端 + Python FastAPI 后端);每个模板可独立部署到 Cloud Run;模板架构标准化(前端 Angular、后端 FastAPI);复用默认 Google Cloud 凭证;按模板复杂度自动开通所需云资源;集成最新 AI 能力(Gemini、Imagen、Vertex AI Search 等);模板生态多样化(自有模板 + 借鉴 Agent Garden、A2A 等)。
标准架构:frontend/(Angular 用户界面)与backend/(FastAPI 智能体逻辑,与 Google Cloud 服务交互)分离,便于独立开发与扩展。当前仓库快照中共有 7 个可直接选用的模板,覆盖多剧本/单剧本对话应用、基于 Agent Builder 的文档/网站搜索、基于 Imagen 3 的图片背景替换、LinkedIn 头像生成、文生图等场景(详见其 README 的 Available Templates 一节)。
自动化 SWOT 分析:swot-agent
swot-agent/README.md 用 Gemini 2.0 Flash 与 Pydantic AI 智能体框架实现自动化 SWOT 分析(优势、劣势、机会、威胁),前端为 FastAPI + HTMX + Tailwind CSS(该模型链接为仓库 README 原文标注)。
智能体的三个工具:
- Content Extraction:根据 URL 抽取网页内容。
- Community Insights:调用 Reddit API 获取相关 subreddit 的社区洞察。
- Competitive Analysis:调用 Gemini API 生成竞争分析。
前置条件:Python 3.10+、Google Cloud API 凭证、可选 Reddit API 凭证(用于社区内容抽取)。
安装:
pip install -r requirements.txt export GOOGLE_CLOUD_PROJECT=your_project_id export GOOGLE_APPLICATION_CREDENTIALS=path_to_service_account.json核心实现集中在 agent.py(Pydantic AI 智能体与工具定义)与 main.py(FastAPI 入口),测试位于tests/,另有 Dockerfile 与templates/中的 HTML 模板。
拍照识物 + Agent 对话:photo-discovery
photo-discovery/README.md 把Vertex AI Agent与多平台Flutter应用集成:Flutter 作为客户端框架、Vertex AI Search 作为向量数据库、Agent Engine(Reasoning Engine)负责构建与部署智能体。用户拍照或上传地标照片后,应用识别主体名称并给出简介;点 "tell me more" 可与 Agent 对话追问历史;还能识别 Google Merchandise Store 的商品并提供名称、描述、价格与购买链接。
Vertex AI Search 数据准备要点:在 Agent Builder 中创建数据存储,数据源选 Cloud Storage 的结构化 JSONL(文件gcp-samples-ic0-ag/src/google_merch_shop_items.json),区域选择us,命名gms;创建后确认文档数为 204 条并记录 Data store ID(即 search engine ID);随后创建名为gms_test的 Search 应用(关闭 Enterprise edition 与 Advanced LLM features)。Flutter 应用代码位于app/目录(多端工程),云端逻辑见ag-web/。
已迁移项目:e2e-gen-ai-app-starter-pack
e2e-gen-ai-app-starter-pack/README.md 仅保留一条迁移声明:该项目已整体迁移至 GoogleCloudPlatform 下的agent-starter-pack新仓库(README 中给出指向新仓库的外部链接,本文按规范不转载)。若你关注「端到端 GenAI 应用启动包」这一形态,可直接在其 README 中查看迁移目标,当前快照内不再包含其代码。
README 索引中当前快照缺失的条目
README.md 中还列出了以下四个应用,但在本仓库快照中找不到对应目录(可能位于其他分支、已迁移或独立托管),本文不杜撰其内容:
- Accelerating Product Innovation(
accelerating_product_innovation/):README 描述其为面向产品品类/品牌方、用生成式 AI 加速产品创新的解决方案。 - FixMyCar(
fixmycar/):README 描述其为基于车主手册做故障排查的 RAG 示例应用。 - LlamaDeploy on Cloud Run(
llamadeploy-on-cloud-run/):README 描述其为用llama-deploy库部署 LlamaIndex Workflow 到 Cloud Run 的示例。 - LlamaIndex RAG(
llamaindex-rag/):README 描述其为基于 LlamaIndex 与 Gemini Enterprise Agent Platform 的进阶 RAG 原型系统。
如需使用上述四个应用,建议在仓库更新后重新拉取,或在官方 generative-ai 仓库中按 README 描述核对。
选型参考:如何根据目标挑选示例应用
| 你的目标 | 推荐应用 | 学习要点 |
|---|---|---|
| 学习多模型数据库(全文+向量+图)统一检索 | finance-advisor-spanner | Schema-Operations.sql的 TOKENLIST/SEARCH INDEX/嵌入回填 |
| 在存量系统上叠加可信 GenAI 特性 | genwealth | AlloyDB AI 语义搜索、RAG 聊天机器人、事件驱动架构 |
| 评估并缓解模型幻觉 | gemini-hallcheck | 弃权感知损失、风险–覆盖率曲线、IDK 数据增强 |
| 快速搭一个 Python UI 的 Gemini 应用 | gemini-mesop-cloudrun / gemini-streamlit-cloudrun | Cloud Run 环境变量注入、本地→云端一致部署 |
| 构建实时双向语音/文本对话 | gemini-quart-cloudrun / gemini-live-telephony-app | Quart 非阻塞模型、WebSocket、Live API、电话集成 |
| 终端快速验证 Gemini 多模态能力 | image-bash-jam | Bash 脚本化调用、图像/音频示例 |
| 学习多智能体流水线与并行蜂群 | prism-science-explainer / rosetta-agent-porter | ADK ParallelAgent、思考预算分层、验证/修复循环 |
| 零代码部署全栈 AI Agent | quickbot | Angular + FastAPI 模板架构、Cloud Run 一键部署 |
| 结构化智能体业务分析 | swot-agent | Pydantic AI 工具调用、FastAPI + HTMX 前端 |
| 多端移动应用 + Agent 集成 | photo-discovery | Flutter 客户端、Vertex AI Search 数据准备、Agent Engine |
注意事项与资源清理
- 演示代码非生产就绪:finance-advisor-spanner 的 README 明确提示,演示代码「过度宽松、未经安全与可靠性加固」,以 "AS IS" 提供,不得在未做自有测试与安全加固的情况下用于生产。其他应用同理,均以教学演示为目标。
- 认证方式二选一:gemini-hallcheck 等支持双后端的应用,使用 Gemini API Key 与 Vertex AI 环境变量(
GOOGLE_GENAI_USE_VERTEXAI=true)不可同时设置,否则行为未定义。 - 成本控制:教程类应用运行成本通常很低,但涉及 Spanner 实例、Cloud Run 常驻实例(如
min-instances=1)时请留意持续计费;完成后删除资源或删除整个演示项目(gcloud projects delete <PROJECT_ID>,注意该命令不可逆)。 - 环境变量前置:多数 Cloud Run 应用依赖
GOOGLE_CLOUD_PROJECT与GOOGLE_CLOUD_REGION(或GOOGLE_CLOUD_LOCATION),本地与云端部署前务必按各自 README 注入。
至此,你已经掌握了 generative-ai 仓库gemini/sample-apps目录的全景:从统一的环境初始化(SETUP.md),到金融、UI、语音、命令行、多智能体、零代码与移动端等各类参考实现的选择路径、部署命令与核心源码入口。下一步,按上文选型表选定一个应用,在 Cloud Shell 中完成环境搭建并跑通部署,即可把其中的模式迁移到你的真实业务中。
【免费下载链接】generative-aiSample code and notebooks for Generative AI on Google Cloud, with Gemini Enterprise Agent Platform项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考