编辑 | 言征
出品 | 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");
}
}