一个巧合,又测到了新的区别,以下是关于python代码生成的测试效果。
语言模型
- 文心一言
- 讯飞星火
- 通义千问2.5
- 豆包
- 360智脑
- 百小应
- 腾讯元宝
- Kimi
- C知道
- 商量
- 智谱清言
这次的测试问题来源于**智谱AI开放平台**的介绍,正好有个python生成的效果说明,于是就在各大平台进行了异常演绎对比,那么让我们看一下对比的这些语言平台实现效果如何吧。
提问及回答
问题:用python画一个爱心
说明:这是一个简单的根据提问,大模型提供可实现的代码效果对比。用了这么久,大模型对算法类的实现,默认都会用python代码来展示,好用啊,也好实现啊。
直接将回答复制上来的话,排版就乱套了,那我还是直接截图吧,代码段单独写出来。
文心一言
代码部分
import turtle # 设置初始状态
turtle.speed(1) # 设置绘图速度为最快
turtle.bgcolor("black") # 设置背景颜色为黑色
turtle.pensize(2) # 设置画笔粗细
turtle.color("red", "pink") # 设置画笔颜色和填充颜色
turtle.begin_fill() # 开始填充颜色 # 绘制爱心形状
turtle.left(140)
turtle.forward(180)
turtle.circle(-100, 200)
turtle.left(120)
turtle.circle(-100, 200)
turtle.forward(180) # 结束填充颜色
turtle.end_fill() # 隐藏画笔
turtle.hideturtle() # 等待用户关闭窗口
turtle.done()
实现效果
这是一个动态绘制心形的效果,绘制的时候看着线条还不错,但绘制完咋就缺了一角?
讯飞星火
代码部分
整体来看,简单啊
import numpy as np
import matplotlib.pyplot as pltt = np.arange(0, 2 * np.pi, 0.01)
x = 16 * np.sin(t) ** 3
y = 13 * np.cos(t) - 5 * np.cos(2 * t) - 2 * np.cos(3 * t) - np.cos(4 * t)plt.plot(x, y, color='red')
plt.axis('equal')
plt.show()
实现效果
原本以为平台有运行功能,能跑起来这个代码段,但实际操作好像报错了,那还是用编译器来实现吧。
编译器执行效果
通义千问
代码部分
import matplotlib.pyplot as plt
import numpy as npdef draw_heart():t = np.linspace(0, 2*np.pi, 100)x = 16 * np.sin(t)**3y = 13 * np.cos(t) - 5 * np.cos(2*t) - 2 * np.cos(3*t) - np.cos(4*t)plt.figure(figsize=(8, 8))plt.axis('equal')plt.plot(x, y, color='red')plt.title('Heart Shape')plt.show()draw_heart()
实现效果
豆包
360智脑
代码部分
复制很麻烦呀
import turtle# 设置背景颜色
turtle.bgcolor("white")# 创建turtle对象
t = turtle.Turtle()# 设置线宽和颜色
t.width(3)
t.color("red")# 绘制爱心
t.begin_fill()
t.penup()
t.goto(-100, 0)
t.pendown()
for i in range(2):t.circle(100, 90)t.circle(-100, 90)
t.end_fill()# 隐藏turtle
t.hideturtle()# 完成绘制,程序不退出
turtle.done()
实现效果
能不能告诉我这是什么?
百小应
代码部分
import turtledef draw_heart(x, y, size):turtle.penup()turtle.goto(x, y)turtle.pendown()turtle.setheading(135)turtle.begin_fill()turtle.color("red", "red")turtle.forward(size)turtle.right(90)turtle.forward(size)turtle.right(90)turtle.forward(size)turtle.right(90)turtle.forward(size)turtle.end_fill()def main():turtle.speed(1)draw_heart(0, 0, 100)turtle.hideturtle()turtle.done()if __name__ == "__main__":main()
实现效果
这个心形也很特殊呀
腾讯元宝
代码部分
import turtle# 设置初始位置
turtle.penup()
turtle.left(50)
turtle.forward(133)
turtle.left(50)# 绘制爱心
turtle.pendown()
turtle.begin_fill()
turtle.fillcolor("red") # 设置填充颜色为红色
turtle.left(140)
turtle.forward(180)
turtle.circle(-90, 200)
turtle.forward(180)
turtle.left(140)
turtle.end_fill()turtle.hideturtle()# 关闭窗口的监听事件
turtle.getcanvas().winfo_toplevel().protocol("WM_DELETE_WINDOW", turtle.bye)# 启动
turtle.mainloop()
实现效果
这是啥? 茄子?
Kimi
代码部分
import turtle# 创建画布和画笔
screen = turtle.Screen()
heart = turtle.Turtle()# 爱心绘制函数
def draw_heart():heart.speed(1) # 设置画笔速度for i in range(200):heart.forward(i)heart.left(1)heart.forward(-i)heart.right(1)# 绘制爱心
draw_heart()# 隐藏画笔箭头
heart.hideturtle()# 保持窗口打开直到用户关闭
screen.mainloop()
实现效果
这个打印机太慢了,等你画完,我都饿死了。不管你是啥了,反正不像心,拜拜了
C知道
惊讶于你思维导图的效果。
代码部分
import turtle# 创建一个turtle对象
t = turtle.Turtle()
t.speed(0) # 设置turtle移动速度为最快# 定义绘制爱心的函数
def draw_heart(size):t.penup()t.goto(-size, size * 1.732) # 上左顶点t.pendown()t.begin_fill()for _ in range(3):t.forward(size)t.left(140)t.forward(size)t.left(260)t.end_fill()# 绘制爱心
draw_heart(100)# 关闭turtle窗口并等待用户关闭
turtle.done()
实现效果
奇葩的五角星,唉。
商量
代码部分
import numpy as np
import matplotlib.pyplot as plt
# 定义参数
num_points = 1000 # 点的数量
theta = np.linspace(0, 2 * np.pi, num_points) # 生成一组角度值
# 定义心形的参数方程
x = 16 * np.sin(theta)**3
y = 13 * np.cos(theta) - 5 * np.cos(2*theta) - 2 * np.cos(3*theta) - np.cos(4*theta)
# 绘制心形
plt.figure(figsize=(6, 6))
plt.plot(x, y, 'r') # 'r' 表示红色
plt.title('Heart Shape') # 图形标题
plt.axis('equal') # 确保x和y轴的比例相同,使心形不会被压扁
plt.axis('off') # 关闭坐标轴
plt.show()
实现效果
智谱清言 GLM-4
代码部分
import matplotlib.pyplot as plt
import numpy as np# Setting the parameters for the heart shape
t = np.linspace(0, 2 * np.pi, 100)
x = 16 * np.sin(t)**3
y = 13 * np.cos(t) - 5 * np.cos(2*t) - 2 * np.cos(3*t) - np.cos(4*t)# Plotting the heart shape
plt.figure(figsize=(6, 6))
plt.plot(x, y, color='red')
plt.title('爱心')
plt.axis('equal')
plt.show()
如果用它提供的代码在本地pycharm编译器上运行,还是有点问题,就是标题的文字显示以及坐标轴的负号显示问题,所以还需要修改一下,但在人家平台上完全没问题。
那么,我加了以下代码来完善。
# 额外增加
# 画图时plt.title()默认是显示英文,如果我们设置标题为中文,会无法显示
plt.rcParams['font.sans-serif']=['SimHei'] # 显示中文用
plt.rcParams['axes.unicode_minus'] = False
##
实现效果
对比分析
首先从实现上来说,能完整绘制出心形的有讯飞星火、通义千问2.5、商量和智谱清言,其他几个平台的就不说了,连个心形都画不出来或者画不完整,没得比。
讯飞星火的设计还是不错的,方便复制,还打算在平台运行代码效果,只是后者还没实现,要加油。
智谱清言在这方面做的很好,平台可以直接实现编译效果图,方便取用
商量缺少的事复制代码的快捷方式,如果量大了很难弄
通义千问的中规中矩也挺不错。
从上面几个大模型的回答,从主观意识上对比如下:
模型名称 | 回答内容 |
---|---|
文心一言 | 代码部分支持快捷复制,动态绘制,Pycharm执行完成后图形缺失 |
讯飞星火 | 代码部分支持快捷复制和运行,但平台中运行不起来,Pycharm执行直接绘制出心形画面 |
通义千问2.5 | 代码部分支持快捷复制,Pycharm执行直接绘制出心形画面 |
豆包 | 特立独行的语言模型 |
360智脑 | 复制代码不方便,实现结果异形,完全不知道在画什么 |
百小应 | 代码部分支持快捷复制,心形变菱形了,是理解问题么? |
腾讯元宝 | 代码部分支持快捷复制,心形变茄子了,是理解问题么? |
Kimi | 代码部分支持快捷复制,打印机启动,完全没心 |
C知道 | 代码部分支持快捷复制,心形变五角星了,是理解问题么? |
商量 | 复制代码不方便,Pycharm执行直接绘制出心形画面 |
智谱清言 | 代码部分支持快捷复制,可以直接在平台实现效果,复制代码到本地实现可能缺少对应配置,需要调整,整体还是不错的 |
总结
对于我想要的效果来说,当然是看到智谱清言网站的推荐才做的对比,倾向于它是毫无疑问的,其次就是讯飞星火了。 就到这吧,饿了,收尾撤退。
加油~~~