一个巧合,又测到了新的区别,以下是关于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 plt
t = 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 np
def draw_heart():
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)
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 turtle
def 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执行直接绘制出心形画面 |
智谱清言 | 代码部分支持快捷复制,可以直接在平台实现效果,复制代码到本地实现可能缺少对应配置,需要调整,整体还是不错的 |
总结
对于我想要的效果来说,当然是看到智谱清言网站的推荐才做的对比,倾向于它是毫无疑问的,其次就是讯飞星火了。 就到这吧,饿了,收尾撤退。
加油~~~