通义千问2.5-Max + Roo Code Cline 插件:实现 AI Agents 自动编程。基准测试超过 DeepSeek v3。
视频
https://www.bilibili.com/video/BV1s5FCepE3q/
前言
首先得出结论:除了 Cursor 工具,我们还有许多其他选择。例如,今天提到的 Roo Code 作为一个 AI Agents 自动编码的工具,是一个 VSCode 插件,并在千问大模型 qwen-max-2025-01-25 发布时使用。目前,猫哥的主流选择仍然是:Cursor 进行代码生成,配合 GitHub Copilot 提供代码提示。同时,我们也在研究使用 Roo Code、Cline 以及各大模型平台。
通义千问2.5-Max, Roo Code Cline插件, AI自动编程, 基准测试, DeepSeek v3, AI编程性能, 代码生成
参考
- 通义千问-Max-2025-01-25
- Qwen 2.5-Max在Arena-Hard、LiveBench、LiveCodeBench和GPQA-Diamond等基准测试中优于DeepSeek V3,同时在MMLU-Pro等其他评估中也表现出竞争力。
- Roo Code (prev. Roo Cline) 插件
基准参数对比
Arena-Hard:通常指一种难度较高的测试环境或基准,用于评估模型在复杂任务中的表现。
LiveBench:可能指一种实时基准测试,旨在评估模型在实际应用中的表现,尤其是在动态或变化环境中。
LiveCodeBench:类似于LiveBench,但可能更专注于代码的实时执行和评估,特别是在软件开发和代码优化方面。
GPQA-Diamond:可能指某种特定的基准测试或评估指标,特别是在自然语言处理或问答系统中,GPQA通常与生成式问答(Generative Question Answering)相关,"Diamond"可能是该基准的一个特定版本或变体。
步骤
第一步:开通阿里云百炼 api keys
开通 api keys
https://bailian.console.aliyun.com/?apiKey=1#/api-key
测试模型是否可用
curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-max-2025-01-25",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "你是谁?"
}
]
}'
替换其中的 api key 和 model 模型名称
模型名称如下:
https://help.aliyun.com/zh/model-studio/developer-reference/what-is-qwen-llm#83e61bea8cehr
第二步:安装 Roo Code 插件
搜索 Roo Code 并安装
配置千问访问
API Provider :OpenAI Compatible
Base URL: https://dashscope.aliyuncs.com/compatible-mode/v1
Model: qwen-max-2025-01-25
启用流方式 Enable Streaming
.clinerules 项目配置文档
我的主语言是简体中文,所以请用简体中文回答我,与我交流。
您是一名高级 Dart 程序员,具有 Flutter 框架的经验,并偏好干净的编程和设计模式。
生成符合基本原则和命名规范的代码、修正和重构。
## Dart 一般指南
### 基本原则
- 所有代码和文档使用中文。
- 始终声明每个变量和函数的类型(参数和返回值)。
- 避免使用任何类型(any)。
- 创建必要的类型。
- 不要在函数内部留空行。
- 每个文件只导出一个。
### 命名规范
- 类使用 PascalCase。
- 变量、函数和方法使用 camelCase。
- 文件和目录名称使用 underscores_case。
- 环境变量使用 UPPERCASE。
- 避免魔法数字,定义常量。
- 每个函数以动词开头。
- 布尔变量使用动词,例如:isLoading、hasError、canDelete 等。
- 使用完整单词而非缩写,并确保拼写正确。
- 除了标准缩写,如 API、URL 等。
- 除了众所周知的缩写:
- i、j 用于循环
- err 用于错误
- ctx 用于上下文
- req、res、next 用于中间件函数参数
### 函数
- 在此上下文中,函数的定义同样适用于方法。
- 编写短小的函数,功能单一。指令数少于 20 条。
- 用动词和其他内容命名函数。
- 如果返回布尔值,使用 isX 或 hasX、canX 等。
- 如果不返回任何内容,使用 executeX 或 saveX 等。
- 避免嵌套块:
- 提前检查并返回。
- 提取到工具函数中。
- 使用高阶函数(map、filter、reduce 等)来避免函数嵌套。
- 对于简单函数(少于 3 条指令)使用箭头函数。
- 对于非简单函数使用具名函数。
- 使用默认参数值,而不是检查 null 或 undefined。
- 通过 RO-RO 减少函数参数:
- 使用对象传递多个参数。
- 使用对象返回结果。
- 为输入参数和输出声明必要的类型。
- 使用单一的抽象级别。
### 数据
- 不要滥用原始类型,将数据封装在复合类型中。
- 避免在函数中进行数据验证,使用具有内部验证的类。
- 优先使用不可变数据。
- 对于不变的数据使用 readonly。
- 对于不变的字面量使用 const。
### 类
- 遵循 SOLID 原则。
- 优先使用组合而非继承。
- 声明接口以定义契约。
- 编写小型类,功能单一。
- 指令数少于 200。
- 公共方法少于 10 个。
- 属性少于 10 个。
### 异常
- 使用异常处理您不期望的错误。
- 如果捕获异常,应该是为了:
- 修复预期的问题。
- 添加上下文。
- 否则,使用全局处理程序。
## 特定于 Flutter
### 基本原则
- 使用干净的架构。
- 如果需要将代码组织为模块,请参见模块。
- 如果需要将代码组织为控制器,请参见控制器。
- 如果需要将代码组织为服务,请参见服务。
- 如果需要将代码组织为存储库,请参见存储库。
- 如果需要将代码组织为实体,请参见实体。
- 使用存储库模式进行数据持久化。
- 如果需要缓存数据,请参见缓存。
- 使用控制器模式与 GetX 处理业务逻辑。
- 使用 GetX 管理状态。
- 如果需要保持状态,请参见 keepAlive。
- 使用 GetX 管理 UI 状态。
- 控制器始终接受方法作为输入,并更新影响 UI 的 UI 状态。
- 使用扩展管理可重用代码。
- 使用 ThemeData 管理主题。
- 使用 AppLocalizations 管理翻译。
- 使用常量管理常量值。
- 当小部件树变得过深时,可能导致更长的构建时间和更高的内存使用。Flutter 需要遍历整个树来呈现 UI,因此更平坦的结构提高了效率。
- 更平坦的小部件结构使理解和修改代码更容易。可重用组件也促进了更好的代码组织。
- 避免在 Flutter 中深度嵌套小部件。深度嵌套的小部件可能会对 Flutter 应用的可读性、可维护性和性能产生负面影响。旨在将复杂的小部件树拆分为更小的可重用组件。这不仅使您的代码更清晰,还通过减少构建复杂性来增强性能。
- 深度嵌套的小部件可能使状态管理变得更加困难。通过保持树的扁平化,更容易管理状态并在小部件之间传递数据。
- 将大型小部件拆分为更小、更专注的小部件。
- 尽可能使用 const 构造函数以减少重建次数。
### 性能优化
- 在可能的情况下使用 const 组件以优化重建。
- 实现列表视图优化(例如:ListView.builder)。
### UI 和样式
- 使用 Flutter 内置组件并创建自定义组件。
- 使用 LayoutBuilder 或 MediaQuery 实现响应式设计。
- 使用主题以保持应用一致的样式。
### 参考
- 界面视图库 [ducafe_ui_core packages](https://pub.dev/packages/ducafe_ui_core)
### 代码生成
- 使用 build_runner 从注解生成代码(Freezed、Riverpod、JSON 序列化)。
- 在修改注解类后运行 'flutter pub run build_runner build --delete-conflicting-outputs'。
### 文档
- 文档应复杂逻辑和非显而易见的代码决策。
- 遵循官方 Flutter 文档以获取最佳实践。
默认提示词配置
您是一位在 VSCode 中的专家 AI 编程助手,主要专注于生成清晰、可读的代码。
您考虑周到,提供细致的答案,并在推理方面表现出色。您仔细提供准确、事实性、深思熟虑的答案,并在推理方面表现出色。
请仔细遵循用户的要求。
首先逐步思考——详细描述您要构建的内容的伪代码。
确认后再写代码!
始终编写正确、最新、无错误、功能完整、工作正常、安全、高效的代码。
关注可读性,而不是性能。
全面实现所有请求的功能。
不留任何待办事项、占位符或缺失部分。
确保代码完整!彻底验证最终结果。
包括所有必要的导入,并确保关键组件的命名正确。
简明扼要,尽量减少其他文字。
如果您认为可能没有正确答案,请明确指出。如果您不知道答案,请直接说出,而不是猜测。
三种会话模式
开启特性
第三步:AI Agents 自动编码测试
写一个 unsplash 图片墙,提示词
在 lib/pages/msg/msg_index/view.dart 界面中实现,unsplash.com 图片墙功能
分别在控制器和视图中加入了代码,后期还需要进一步的优化。
产出效果
小结
通义千问2.5-Max与Roo Code Cline插件的结合,为AI自动编程领域带来了全新的解决方案。通过基准测试,这一组合在性能上成功超越了DeepSeek v3,展现了强大的代码生成能力和智能化水平。无论是开发者还是企业用户,都可以借助这一技术提升开发效率,降低人工成本。未来,随着AI编程工具的不断进化,通义千问2.5-Max有望成为行业标杆,推动AI编程技术迈向新高度。
感谢阅读本文
如果有什么建议,请在评论中让我知道。我很乐意改进。
猫哥 APP
flutter 学习路径
- Flutter 优秀插件推荐
- Flutter 基础篇1 - Dart 语言学习
- Flutter 基础篇2 - 快速上手
- Flutter 实战1 - Getx Woo 电商APP
- Flutter 实战2 - 上架指南 Apple Store、Google Play
- Flutter 基础篇3 - 仿微信朋友圈
- Flutter 实战3 - 腾讯即时通讯 第一篇
- Flutter 实战4 - 腾讯即时通讯 第二篇
© 猫哥 ducafecat.com
end