‘New Year, New You’ 投资组合挑战,使用 Google AI

发布: (2026年1月17日 GMT+8 06:46)
6 min read
原文: Dev.to

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 层提示注入防御:

  1. 输入验证(20+ 正则表达式模式)
  2. 使用分隔符的安全提示构建
  3. 结构化输出模式强制(Pydantic)
  4. 输出验证(模式强制、提示泄漏检测)
  5. 限流(通过 Firestore 实现每日 $2 预算上限)

我最自豪的成就

  • 双评分创新 – 将 AI 相关性与社区验证相结合,提供个性化 经受实战考验的推荐。
  • 实时统计 – 仪表盘显示真实、最新的数据。内容智能中心查询 BigQuery 获取实际文章计数和评分;LLM 可观测性标签页展示实时 KPI(总评审数、成本、延迟、RAG 相似度),直接从 llm_observability.metrics 表中提取。
  • 成本控制 – BudgetGuard 将支出上限设为 $2 / day,并在必要时优雅降级。整个平台在约 $20 / month 的成本下运行,处理每日数百篇文章和零星的 PR,得益于 Cloud Run 的零实例扩缩能力。
Back to Blog

相关文章

阅读更多 »

Rapg:基于 TUI 的密钥管理器

我们都有这种经历。你加入一个新项目,首先听到的就是:“在 Slack 的置顶消息里查找 .env 文件”。或者你有多个 .env …

技术是赋能者,而非救世主

为什么思考的清晰度比你使用的工具更重要。Technology 常被视为一种魔法开关——只要打开,它就能让一切改善。新的 software,...

踏入 agentic coding

使用 Copilot Agent 的经验 我主要使用 GitHub Copilot 进行 inline edits 和 PR reviews,让我的大脑完成大部分思考。最近我决定 t...