Skip to content

iFlow CLI 模型编码能力评测

iFlowCLI 目前支持 MiniMax-M2、GLM-4.6、Qwen3-Coder-plus、DeepSeek-3.2、kimi-k2-thinking 等模型,以下对其编码能力进行评测。

结论

目前 iFlowCLI 建议选择 GLM-4.6

  1. 大型项目通常对模型的上下文有较高的要求,DeepSeek-3.2 仅有 128K 的上下文窗口,所以直接排除;其他模型上下文窗口均在 200K 及以上;
  2. 简单模块功能,所有模型效果都挺好;
  3. 复杂工程中,同时涉及多个模块的代码修改和代码新增的时候,GLM-4.6 效果最优,且上下文消耗较少

值得注意的是,本文的结论均是在 iFlowCLI 中使用时的结论,如果在另外的框架中使用会有不同的结果,因为框架与模型会有一定的适配度。

复杂工程中代码完成情况

  1. GLM-4.6:所提出的功能都会去实现,不会遗漏;交付的代码仅有少量报错(300 行代码报错1行,import 包没引)
  2. MiniMax-M2:所提出的功能都会去实现,不会遗漏;但是交付的代码报错较多,比如 import 包没引,方法参数类型不匹配,上下文消耗较多
  3. Qwen3-Coder-plus:所提出的功能都会去实现,不会遗漏;但是交付的代码报错较多,比如引用了不存在的变量
  4. kimi-k2-thinking:所提出的功能都会去实现,不会遗漏;但是交付的代码有少量报错,比如会引用没有创建的方法,部分逻辑出错,最崩溃的是速度太慢了,生成 300 行的代码需要 10 几分钟

说明1:import 包没引错误,属于基础错误

正确:

java
import java.util.List;
import java.util.ArrayList;

public void hello(){
    List<String> xList = new ArrayList<>();
}

模型犯错:

java
public void hello(){
    List<String> xList = new ArrayList<>(); // 模型没引包,直接使用
}

说明2:方法参数类型不匹配,给定a方法:

java
public void a(String x) {
    List<String> xList = new ArrayList<>();
}

正确:

java
public String b() {
    return "hi";
}

public void c() {
    a(b()); // 方法参数类型匹配
}

模型犯错:

java
public List<String> b() {
    return Lists.newArrayList("hi");
}

public void c() {
    a(b()); // 方法参数类型匹配
}