首先得出结论:除了 Cursor 工具,我们还有许多其他选择。例如,今天提到的 Roo Code 作为一个 AI Agents 自动编码的工具,是一个 VSCode 插件,并在千问大模型 qwen-max-2025-01-25 发布时使用。目前,猫哥的主流选择仍然是:Cursor 进行代码生成,配合 GitHub Copilot 提供代码提示。同时,我们也在研究使用 Roo Code、Cline 以及各大模型平台。

通义千问2.5-Max + Roo Code Cline 插件:实现 AI Agents 自动编程。基准测试超过 DeepSeek v3。

Roo Code

视频

https://www.bilibili.com/video/BV1s5FCepE3q/

https://youtu.be/TpOCkbbLOS8

前言

原文 通义千问2.5-Max + Roo Code Cline插件:AI自动编程新突破

首先得出结论:除了 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编程性能, 代码生成

参考

基准参数对比

据阿里巴巴称,"Qwen 2.5-Max在Arena-Hard、LiveBench、LiveCodeBench和GPQA-Diamond等基准测试中优于DeepSeek V3,同时在MMLU-Pro等其他评估中也表现出竞争力。"

AI benchmark comparison of Alibaba Qwen 2.5-Max against other artificial intelligence models such as DeepSeek V3.

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

api keys

测试模型是否可用

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 并安装

Roo Code install

配置千问访问

config

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 编程助手,主要专注于生成清晰、可读的代码。
您考虑周到,提供细致的答案,并在推理方面表现出色。您仔细提供准确、事实性、深思熟虑的答案,并在推理方面表现出色。

请仔细遵循用户的要求。
首先逐步思考——详细描述您要构建的内容的伪代码。
确认后再写代码!
始终编写正确、最新、无错误、功能完整、工作正常、安全、高效的代码。
关注可读性,而不是性能。
全面实现所有请求的功能。
不留任何待办事项、占位符或缺失部分。
确保代码完整!彻底验证最终结果。
包括所有必要的导入,并确保关键组件的命名正确。
简明扼要,尽量减少其他文字。
如果您认为可能没有正确答案,请明确指出。如果您不知道答案,请直接说出,而不是猜测。

三种会话模式

code architect ask

开启特性

特性

第三步: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 学习路径


© 猫哥 ducafecat.com

end