编辑 | 言征

出品 | 51CTO技术栈(微信号:blog51cto)

近日,OpenAI一记重拳,推出了GPT-4o(“o”表示“omni”),将语音识别和对话方面的优势展示的淋漓尽致。几乎可以肯定,它也是一个更强的LLM。但它能进行代码审查吗?本文通过一些测试来寻找答案。

1.长乘法:交给计算机就可以

首先,我检查了它是否可以进行long乘法运算:

图片图片

答案是正确的,通过在线计算器上可以确认。但请注意,它并没有试图“计算出”结果——它只是将问题甩给了计算器。末尾的“查看分析”的蓝色图标基本上说明了这一点。这在之前的模型上都没有做到。

2.代码审查

我个人对正式严谨的代码审查没有兴趣。是的,有时初级开发人员可能确实需要这样的审查,但单元测试和配对编程通常足以消除不良的编程习惯。但是,几句含糊的评论可以帮助指出代码中的潜在小问题,而不会显得对容易重写的代码片段强加某种权威性的命令。

简而言之,代码审查更多的是一种social互动,而不是其他任何东西。请专注于工程问题,而不是代码的语义细节。

然而,代码审查是开发人员使用大型语言模型(LLM)的一个好案例。在这里,我将查看三段不同的代码,每段代码都只是绘制一个带有对角线的矩形框。我将添加问题,并查看GPT-4o(通过ChatGPT)如何对它们进行审查。

接下来,我们从简单的C#对角线绘制程序开始:

using System;
 
public class Program
{
  public static void Main()
  {
    BoxWithDiagonalLine(5);
    BoxWithDiagonalLine(6,1);
    BoxWithDiagonalLine(6,-1);
    BoxWithDiagonalLine(2);
    BoxWithDiagonalLine(-1);
  }
 
  // Example 1
  public static void BoxWithDiagonalLine(int boxsize, int linepos = 0)
  {
    for(int i=0; i < boxsize; i++)
    {
      for (int j = 0; j < boxsize; j++)
      {
        if (j == linepos) Console.Write("x ");
        else Console.Write("o ");
      }
      linepos++;
      Console.Write("n");
    }
    Console.Write("n");
  }
}