‘New Year, New You’ 投资组合挑战,使用 Google AI
Source: Dev.to
这是对New Year, New You Portfolio Challenge Presented by Google AI的提交
关于我
我是一名软件工程师,专注于后端系统、数据工程和云基础设施。我创建了这个作品集,以展示两个基于 AI 的项目,这些项目解决了我日常面临的真实问题:信息过载以及在个人仓库的 PR 自动审查过程中对大语言模型(LLM)的可观测性。
作品集
(以下提供两个主要项目的概览)
我是如何构建它的
技术栈
| 组件 | 技术 |
|---|---|
| 后端 | FastAPI on Cloud Run |
| AI/评分 | Gemini 2.0 Flash API |
| 数据存储 | BigQuery |
| 速率限制 | Firestore + BudgetGuard |
| 可观测性 | OpenTelemetry, Cloud Monitoring |
项目
1. 内容智能中心
一个 AI 驱动的内容策划系统,使用双重评分方法将每日 500+ RSS 文章转化为约 10 篇高价值阅读:
- Gemini AI 分析与我兴趣的个人相关性。
- 社区信号(Hacker News、Lobsters)验证质量。
这解决了“晦涩博客文章”问题——单靠 AI 无法区分随意教程和经过实战检验的 Netflix 工程文章。
2. LLM 代码审查可观测性
为 AI 代码审查系统提供端到端监控,跟踪:
- RAG 检索质量(嵌入相似度得分)
- 成本和延迟趋势
- 请求量和错误率
实时仪表盘直接查询 BigQuery,展示实时 KPI 和时间序列图表。
技术深度解析
双评分算法(内容智能中心)
系统使用基于置信度的加权方式,并根据可用信号进行自适应:
weights = {
'high': (0.5, 0.5), # 同时出现在 Hacker News 和 Lobsters 上
'medium': (0.7, 0.3), # 只出现在一个平台上
'low': (0.9, 0.1) # 没有社区信号
}
病毒式覆盖 – 当 community_score >= 70 且 ai_relevance >= 25 时,加权会转向倾向社区信号:
if community_score >= 70 and ai_relevance >= 25:
ai_weight, community_weight = 0.3, 0.7
使用 Gemini 的结构化输出
Gemini 返回经 Pydantic 验证的类型安全 JSON,确保下游代码可以依赖已知的模式。
StruQ 模式实现安全的 NL→SQL
聊天助手永远不会直接从用户输入生成原始 SQL。相反,Gemini 提取结构化意图并映射到参数化查询:
User: "Show me Python tutorials from this week"
↓
SearchIntent {
topics: ["Python"],
time_range_days: 7,
content_type: "tutorial"
}
↓
Parameterized SQL (user input never touches the query)
LLM 可观测性模式(LLM 代码审查可观测性)
可观测性管道跟踪指标,以提供可操作的洞察:
| 指标模式 | 含义 |
|---|---|
| 高成本、低相似度 | 发送了大量不相关的上下文 – 需要调优 RAG |
| 低上下文利用率 | 添加更多文件或历史记录以提升审查质量 |
| 嵌入失败 | Vertex AI 配额/连接问题 – 检查 GCP 控制台 |
| 仓库间成本差异 | 不同代码库需要不同的审查策略 |
Google AI 集成
Gemini 2.0 Flash 提供:
- 通过结构化 JSON 输出的文章相关性评分
- 自然语言聊天界面(StruQ 模式实现安全 NL→SQL)
- 内容分类(教程、深度解析、新闻)
安全性
零额外成本的 5 层提示注入防御:
- 输入验证(20+ 正则表达式模式)
- 使用分隔符的安全提示构建
- 结构化输出模式强制(Pydantic)
- 输出验证(模式强制、提示泄漏检测)
- 限流(通过 Firestore 实现每日 $2 预算上限)
我最自豪的成就
- 双评分创新 – 将 AI 相关性与社区验证相结合,提供个性化 且 经受实战考验的推荐。
- 实时统计 – 仪表盘显示真实、最新的数据。内容智能中心查询 BigQuery 获取实际文章计数和评分;LLM 可观测性标签页展示实时 KPI(总评审数、成本、延迟、RAG 相似度),直接从
llm_observability.metrics表中提取。 - 成本控制 – BudgetGuard 将支出上限设为 $2 / day,并在必要时优雅降级。整个平台在约 $20 / month 的成本下运行,处理每日数百篇文章和零星的 PR,得益于 Cloud Run 的零实例扩缩能力。