AI项目博客
记录 AI 工程实践与大模型应用

Cline 实战:从天气脚本到双城对比 Flask 项目

「从零搭建智能体与知识库」教程系列第 3 篇。目标:用 Cline 在 VS Code 里完成两个项目——单文件天气查询、双城天气对比(Flask + 前端)。环境:VS Code、Cline 插件、DeepSeek API、高德天气 API。

结论:Cline 是开发场景的 Agent。它不直接回答问题,而是读文件、改代码、跑命令、看报错再改。用好它的关键不是提示词多长,而是三件事:工作目录要小、验收标准要写清、危险操作必须人工确认。

零、准备清单

  • VS Code:https://code.visualstudio.com/;
  • Cline 插件:扩展市场搜索 Cline,或从 https://github.com/cline/cline 查看源码;
  • DeepSeek API Key:https://platform.deepseek.com/,也可以换成任意 OpenAI 兼容接口;
  • 高德 Web 服务 Key:https://console.amap.com/,创建应用 → 添加 Key → 服务平台选「Web服务」;
  • 两个空目录:Weather-1、Weather-2。

高德 Key 的类型很关键。前端 JS API 的 Key 不能调 restapi.amap.com,会报 USERKEY_PLAT_NOMATCH。天气接口必须用「Web服务」类型的 Key。

一、安装 Cline,接上模型

  1. 打开 VS Code 扩展市场,搜索 Cline,点安装。
  2. 点左侧 Cline 图标,再点右上角齿轮进入设置。
  3. API Provider 选 DeepSeek,填 API Key;模型选 deepseek-chat。需要长链推理时再换 deepseek-reasoner,它更慢也更贵。
  4. 自动批准(Auto-approve):建议只勾选「读取文件」和「列出文件」。写文件、执行命令保持人工确认,尤其是 rm、git、数据库操作。
  5. 最大请求数(Max Requests)设 20–50。复杂任务可以调高,但每多一轮就多一次 token。

VS Code 扩展市场安装 Cline

图 1:在 VS Code 扩展市场搜索 Cline,点安装。

Cline 配置 OpenAI 兼容 API

图 2:Provider 选 OpenAI Compatible,填 Base URL、Key 和模型 ID。

验收:在 Cline 对话框输入「列出当前目录的文件」,它会请求读取权限,批准后返回文件名。说明插件和模型都通了。

Cline 自动批准与最大请求数设置

图 3:自动批准只勾读文件和列目录;Max Requests 设 20–50。

二、案例 1:单文件天气查询

  1. VS Code 打开空目录 Weather-1。
  2. Cline 模式选 Act。Plan 只出方案不改文件,适合先拆解复杂任务;这个案例直接做。
  3. 把需求一次写清,不要让 Cline 猜:
    帮我实现一个 weather.py 程序,通过高德天气 API 查询城市天气。
    要求:
    1. 从环境变量 AMAP_KEY 读取 Key,不要硬编码;
    2. 命令行参数传入城市名,例如 python weather.py 北京;
    3. 先调用高德地理编码接口把城市名转成 adcode;
    4. 再调用天气接口,输出天气、温度、风向、湿度;
    5. 请求失败或 Key 无效时,打印可读的错误信息。
  4. Cline 会请求执行 pip install requests,确认后它会在终端安装。
  5. 按它提示创建 .env,填入真实 Key;或在 PowerShell 里设置 $env:AMAP_KEY="你的Key"。
  6. 让它运行 python weather.py 北京,检查输出。

.env 中配置高德 API Key

图 4:.env 里只放 AMAP_KEY,不要把 Key 写成代码常量。

如果 Key 没配好,先手工验证高德接口,排除代码问题:

curl "https://restapi.amap.com/v3/weather/weatherInfo?city=110000&key=你的高德Key&extensions=base"

返回 status: "1" 且有 lives 数组,说明 Key 和接口都正常;返回 INVALID_USER_KEY 是 Key 错,USERKEY_PLAT_NOMATCH 是 Key 类型错。

验收:python weather.py 北京 输出实时天气;把 AMAP_KEY 改错后,程序给出明确错误而不是抛一堆堆栈。

三、案例 2:双城天气对比项目

这个项目有后端、前端和模型对比,需求要写全,否则 Cline 会自己补设定。

  1. 新建空目录 Weather-2,VS Code 打开。工作目录越小,Cline 读取上下文越准。
  2. 输入提示词:
    基于高德天气接口实现一个前后端分离项目:
    1. 后端用 Python Flask,端口 7777;
    2. 前端用 HTML、CSS、JavaScript;
    3. 页面提供两个城市输入框和一个查询按钮;
    4. 点击后查询两个城市天气,左右对称展示;
    5. 调用大模型对比两地天气,前端展示对比结论;
    6. 高德 Key 和模型 Key 都从环境变量读取,不要硬编码;
    7. 布局美观,窄屏可用。
  3. Cline 会依次创建 app.py、templates/index.html、static/、requirements.txt、.env.example。
  4. 每个文件变更都会弹 diff。重点看三处:Key 有没有硬编码、高德接口参数对不对、前端请求地址和端口是否一致。
  5. 批准运行 python app.py,浏览器打开 http://localhost:7777。
  6. 输入「北京」「上海」,检查两边天气是否对称、对比结论是否非空。

验收:页面 200;两个城市天气都显示;对比结论不是模板空话;Key 错误时有提示;git status 里没有把 .env 提交进去。

双城天气对比项目运行结果

图 5:双城天气对比成品页,左右对称展示天气和对比结论。

四、Cline 绕圈时怎么打断

长任务常见两种失控:重复同一段需求、反复改同一个文件。原因通常是网络中断、文件写入失败,或者上下文太长。

  1. 立刻点 Cancel,不要让它继续重试。
  2. 追加一条明确的指令:「代码框架已经完成,现在只运行测试找问题,不要重复生成。」
  3. 模型换成更快的 deepseek-chat,或者把任务拆成「先跑通后端」「再补前端」两步。
  4. 到达最大请求数时,点 Proceed 继续当前任务;如果已经跑偏,开新任务并带上当前错误日志。

这条经验比提示词技巧更重要:Cline 的每一轮都带完整上下文,绕圈十轮的成本可能超过重新开一个任务。

五、Cline 的五个使用要点

要点 做法
模式 Act 直接改文件;复杂任务先用 Plan 出方案,再切 Act 执行
自动批准 读文件可自动;写文件、执行命令、删除操作保持人工确认
上下文 一个任务一个目录;大仓库先打开子目录,别让它扫全库
成本 执行用 deepseek-chat,规划用 deepseek-reasoner;任务结束就停
审查 diff 逐条看;提交前 git status,确认没有密钥和临时文件

六、常见报错与处置

现象 原因 处置
401 Unauthorized DeepSeek Key 错或过期 重新填 Key,确认 Provider 选的是 DeepSeek
402 Insufficient Balance 模型账户余额不足 充值或换模型
INVALID_USER_KEY 高德 Key 错或未启用 重新创建 Key,确认应用已启用天气 API
USERKEY_PLAT_NOMATCH Key 类型不是「Web服务」 新建 Web 服务 Key,替换后重试
Flask 端口被占用 7777 已被其他进程占用 改端口,或结束占用进程后重启
Cline 反复重复需求 网络中断或文件写入失败 Cancel,追加「只测试不重写」,或拆任务
任务停在半途 达到 Max Requests Proceed 继续;跑偏就开新任务并附日志

七、边界与系列小结

Cline 适合有明确验收标准的工程任务:能跑、能测、能看 diff。需求模糊、涉及生产数据、需要权限控制时,先 Plan 或人工拆解,不要直接把目标丢给它。它生成的代码必须人工审查,尤其是密钥、SQL、文件删除和命令执行。

前三篇教程到这里:Cherry Studio 解决个人知识库,Dify 解决低代码应用和 Agent 编排,Cline 解决开发场景的自动化。三者都不是「越智能越好」,选型标准还是那句:流程固定用工作流,路径不定才用 Agent。

上一篇:Dify 实战:从聊天助手到会调用工具的旅行 Agent

下一篇

ima 是另一种形态:不部署服务,把本地资料直接导入客户端。下一篇用它做一个个人知识库。

下一篇:ima + DeepSeek:把本地资料变成能引用的个人知识库

赞(0)
未经允许不得转载:AI项目博客 » Cline 实战:从天气脚本到双城对比 Flask 项目

评论 抢沙发

AI项目博客

专注 AI 工程化落地 —— 覆盖智能体、大模型、Java AI 与 Python 的学习笔记,以及 AI 平台的项目实战记录。

关于本站文章归档

登录

找回密码

注册