从手动混乱到工作流工程:构建本地优先的 AI 自动化流水线(并重新思考像 Gemini 这样的云端 LLM)
Source: Dev.to

这是一篇提交至 Built with Google Gemini: Writing Challenge 的作品。
我用 Google Gemini 构建的项目
在过去的几个月里,我坚持每天进行 LeetCode 练习。虽然解题本身相对简单,但维护文档却并不容易。每个解答都需要:
- 创建新文件
- 更新 README(按难度排序)
- 编写结构化说明
- 正确格式化 Markdown
- 将所有内容推送到 GitHub
这过程重复、手动且容易出错。
为了解决这些问题,我开发了 LeetCode AutoSync —— 一个 CLI 自动化工具,能够简化整个工作流。
What the Tool Does
- 在本地添加新解答并自动进行文件结构化
- 根据难度更新并排序 README 部分
- 使用 LLM 生成结构化的解答写作
- 将令牌使用情况和性能指标记录到 Excel
- 使用生产者‑消费者队列管理后台推理
- 优雅地关闭模型以释放系统资源
Gemini 的定位
在构建过程中,我探索了基于云的 LLM 解决方案,例如 Google Gemini。我特别关注以下方面:
- 结构化内容生成
- 稳定的延迟
- 通过 Cloud Run 部署的潜力
- 基于 API 的推理可扩展性
然而,出于成本考虑和实验目标,我选择了 使用 Ollama 和 Mistral 的本地优先架构。
这一决定本身也成为了我的学习旅程的一部分——理解以下权衡:
- 本地推理 vs. 云 API
- 成本 vs. 可扩展性
- 延迟 vs. 资源消耗
- 基础设施所有权 vs. 便利性
虽然该项目的此版本使用的是本地托管的模型,但其架构设计受到了云 LLM API(如 Gemini)如何构造提示和管理推理工作流的影响。
演示
以下是 CLI 自动化工具实际运行的简短演示:
🎥
演示内容包括:
- 通过 CLI 交互式添加新解答
- 使用生产者‑消费者模型的基于队列的后台 LLM 生成
- 按难度排序的自动 README 更新
- 结构化的 Markdown 解答生成
- 将 Token 使用情况和性能日志记录到 Excel
- 线程安全的状态管理
- 队列完成后优雅的模型关闭
架构亮点
- 处理推理的后台工作线程
- 同步任务队列
- 通过 Ollama 进行本地 LLM 推理
- 结构化的文件系统更新
- 用于仓库管理的 Git 集成
- 用于 Token 和性能指标的遥测日志
源代码和实现细节请参见此处:
🔗
我学到的
1. Python 并发
实现了生产者‑消费者队列模式:
- 主线程将生成任务入队
- 后台工作线程处理 LLM 调用
- 使用锁进行线程安全跟踪
- 优雅的关闭逻辑以避免竞争条件
2. 资源生命周期管理
本地运行 LLM 对内存需求很大。我添加了:
- 队列监控
- 队列为空时自动关闭
- 显式的模型停止调用以释放内存
3. 遥测与可观测性
扩展系统记录:
- 提示 tokens
- 响应 tokens
- 总 tokens
- 加载时长
- 生成时长
- 每秒 tokens 数
这提供了对以下方面的洞察:
- 冷加载与热加载模型的差异
- 吞吐效率
- API 替代方案的成本代理
4. 权衡:本地 vs 云
使用本地模型让我体会到云服务(如 Gemini)抽象掉的内容:
- 无需管理内存
- 无需手动生命周期控制
- 可能更好的稳定性
- 可扩展的部署选项
与此同时,本地推理为我带来了:
- 成本可控
- 完全所有权
- 对模型行为的深度可视化
这种权衡分析是本项目最有价值的部分之一。
Google Gemini 反馈
虽然我没有将 Gemini 直接集成到此工具中,但在评估架构选项时,我探索了其生态系统和文档。
亮点
- 简洁的 API 设计
- 强大的结构化输出能力
- 与 Cloud Run 的集成潜力
- 降低基础设施开销
我希望改进的地方
- 细粒度的透明令牌使用洞察
- 明确的成本比较工具
- 更多关于性能基准测试的文档
未来设想
- 用 Gemini API 替换本地推理
- 测量性能差异
- 使用 Cloud Run 将工具部署为无服务器服务
欢迎查看仓库,尝试该工具,或分享您对本地优先与云优先 AI 工作流的看法!
云‑基服务
接下来
这个项目最初是工作流自动化,但它演变成了更深层的内容:
- 理解大语言模型系统设计
- 学习并发模式
- 测量性能指标
- 像基础设施工程师一样思考
我的下一个目标是:
- 添加多模型比较支持
- 探索部署选项
- 集成结构化日志
- 试验云托管推理服务
这个项目把我的 LeetCode 练习从手动混乱转变为工程化工作流——更重要的是,它改变了我对 AI 系统的思考方式。
感谢阅读 🚀
