详解如何在ChatGPT内构建一个Python解释器

这篇文章主要为大家详细介绍了如何在ChatGPT内构建一个Python解释器,文中的示例代码讲解详细,具有一定的学习价值,需要的可以参考一下

目录

引用:Art Kulakov 《How to Build a Python Interpreter Inside ChatGPT》

这个灵感来自于一个类似的故事,在ChatGPT里面建立一个虚拟机(Building A Virtual Machine inside ChatGPT)。给我留下了深刻的印象,并决定尝试类似的东西,但这次不是用Linux命令行工具,而是让ChatGPT成为我们的Python解释器。

下面是初始化ChatGPT的命令:

我想让你充当Python解释器。我将输入命令,你将用python解释器输出。我希望你只回答终端输出中的一个独特的代码块,而不是其他。不要写解释,只输出python输出的内容。不要输入命令,除非我指示你这样做。当我需要用英语告诉你一些事情的时候,我会通过把文本放在大括号里,就像这样:{示例文本}。我的第一个命令是 a=1。

从上图不能看出效果很好,让我们试试一些简单的算术表达式。

又成功了;如果我们使用一个没有导入的库,会发生什么?

虽然它决定帮我解决一个错误。其实我不希望它这样做,所以我再次要求它不要输出任何东西,除了python代码。

{只打印python输出,不打印任何注释}。

顺便说一下,ChatGPT有时能够使用没有导入的库,但这次我很幸运,它打印出了错误信息。很显然我很确定ChatGPT能够完成简单的任务,让我们试试更复杂的东西,让它输出二进制搜索算法的结果。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

# Binary Search in python

defbinarySearch(array, x, low, high):

# Repeat until the pointers low and high meet each other

whilelow <=high:

mid =low +(high -low)//2

ifarray[mid] ==x:

returnmid

elifarray[mid] < x:

low =mid +1

else:

high =mid -1

return-1

array =[3, 4, 5, 6, 7, 8, 9]

x =4

result =binarySearch(array, x, 0, len(array)-1)

ifresult !=-1:

print("Element is present at index "+str(result))

else:

print("Not found")

似乎它不想听我的请求,只听python的输出,但输出还是正确的,令人印象深刻!让我们试着输入一个不存在的数字,比如:

x = 4.5

好吧,似乎它猜中了这一个!让我们跳到更复杂的东西。让我们从一些简单的机器学习算法开始,比如线性回归。我想知道ChatGPT是否有能力解决一个简单的优化任务...

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

importnumpy as np

importmatplotlib.pyplot as plt

defestimate_coef(x, y):

# number of observations/points

n =np.size(x)

# mean of x and y vector

m_x =np.mean(x)

m_y =np.mean(y)

# calculating cross-deviation and deviation about x

SS_xy =np.sum(y*x) -n*m_y*m_x

SS_xx =np.sum(x*x) -n*m_x*m_x

# calculating regression coefficients

b_1 =SS_xy /SS_xx

b_0 =m_y -b_1*m_x

return(b_0, b_1)

defplot_regression_line(x, y, b):

# plotting the actual points as scatter plot

plt.scatter(x, y, color ="m",

marker ="o", s =30)

# predicted response vector

y_pred =b[0] +b[1]*x

# plotting the regression line

plt.plot(x, y_pred, color ="g")

# putting labels

plt.xlabel('x')

plt.ylabel('y')

# function to show plot

plt.show()

defmain():

# observations / data

x =np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

y =np.array([1, 3, 2, 5, 7, 8, 8, 9, 10, 12])

# estimating coefficients

b =estimate_coef(x, y)

print("Estimated coefficients:\nb_0 ={} \

\nb_1 ={}".format(b[0], b[1]))

# plotting regression line

# plot_regression_line(x, y, b)

if__name__ =="__main__":

main()

这项优化任务的正确答案是:

Estimated coefficients:
b_0 = 1.2363636363636363
b_1 = 1.1696969696969697

下面是ChatGPT的输出结果:

这与真实结果很接近! 如果我们在真正的python中绘制预测图,我们将得到以下图表:

关于这个任务的另一个有意思的点:我又运行了一次同样的命令,当时的输出结果与真实结果完全吻合。因此,我们可以认为ChatGPT通过了这个任务。

好了,现在是时候做一些简单的神经网络的事情了!也许我们可以装一个简单的Keras模型。也许我们可以装一个简单的Keras模型?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

# first neural network with keras make predictions

fromnumpy importloadtxt

fromtensorflow.keras.models importSequential

fromtensorflow.keras.layers importDense

# load the dataset

dataset =loadtxt('pima-indians-diabetes.csv', delimiter=',')

# split into input (X) and output (y) variables

X =dataset[:,0:8]

y =dataset[:,8]

# define the keras model

model =Sequential()

model.add(Dense(12, input_shape=(8,), activation='relu'))

model.add(Dense(8, activation='relu'))

model.add(Dense(1, activation='sigmoid'))

# compile the keras model

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# fit the keras model on the dataset

model.fit(X, y, epochs=150, batch_size=10, verbose=0)

# make class predictions with the model

predictions =(model.predict(X) > 0.5).astype(int)

# summarize the first 5 cases

fori inrange(5):

print('%s => %d (expected %d)'%(X[i].tolist(), predictions[i], y[i]))

注意,数据集实际上是一个CSV文件,ChatGPT没有权限访问这个文件...

好吧,这是正确的输出,而我很害怕。如果我把网络的结构改成一个不正确的结构,会发生什么?让我们改变一下输入的shape。

1

model.add(Dense(12, input_shape=(6,), activation='relu'))

看来我在失去工作之前还有几年时间;这次ChatGPT没有理解这个技巧,仍然打印了输出。让我们做最后一项任务--在OpenAI里面调用Huggingface怎么样?

正确的输出:

[{'entity_group': 'ORG', 'score': 0.9472818374633789, 'word': 'Apple', 'start': 0, 'end': 5}, {'entity_group': 'PER', 'score': 0.9838564991950989, 'word': 'Steve Jobs', 'start': 74, 'end': 85}, {'entity_group': 'LOC', 'score': 0.9831605950991312, 'word': 'Los Altos', 'start': 87, 'end': 97}, {'entity_group': 'LOC', 'score': 0.9834540486335754, 'word': 'Californie', 'start': 100, 'end': 111}, {'entity_group': 'PER', 'score': 0.9841555754343668, 'word': 'Steve Jobs', 'start': 115, 'end': 126}, {'entity_group': 'PER', 'score': 0.9843501806259155, 'word': 'Steve Wozniak', 'start': 127, 'end': 141}, {'entity_group': 'PER', 'score': 0.9841533899307251, 'word': 'Ronald Wayne', 'start': 144, 'end': 157}, {'entity_group': 'ORG', 'score': 0.9468960364659628, 'word': 'Apple Computer', 'start': 243, 'end': 257}]

ChatGPT的输出结果:

[{'word': 'Apple', 'score': 0.9993804788589478, 'entity': 'I-ORG'}, {'word': 'Steve', 'score': 0.999255347251892, 'entity': 'I-PER'}, {'word': 'Jobs', 'score': 0.9993916153907776, 'entity': 'I-PER'}, {'word': 'Steve', 'score': 0.9993726613044739, 'entity': 'I-PER'}, {'word': 'Wozniak', 'score': 0.999698519744873, 'entity': 'I-PER'}, {'word': 'Ronald', 'score': 0.9995181679725647, 'entity': 'I-PER'}, {'word': 'Wayne14', 'score': 0.9874711670837402, 'entity': 'I-PER'}, {'word': 'Apple', 'score': 0.9974127411842163, 'entity': 'I-ORG'}, {'word': 'Computer', 'score': 0.968027651309967, 'entity': 'I-ORG'}, {'word': 'Apple', 'score': 0.8259692192077637, 'entity': 'I-ORG'}]

其结果与huggingface的输出结果很接近,但是不一致。我猜测是因为Huggingface的API改变了,由于ChatGPT没有在最新的历史数据上进行训练,所以它以旧的格式输出结果。

总结

在过去的几天里,我一直在玩ChatGPT,我被使用这个工具的无限可能性所吸引。虽然它不是一个真正的python解释器,但它在为我编译python代码方面仍然做得很好。我还发现,它能很好地解决Hard难度的 LEETCODE 代码问题。

最后再多说一句:ChatGPT,你将如何帮助人类?

如果你还没有尝试过ChatGPT,你一定要试试,因为它就是未来!

以上就是详解如何在ChatGPT内构建一个Python解释器的详细内容。

300+Python经典编程案例
50G+学习视频教程
点击拿去

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/39662.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何画各种“图”?

我们在写文档过程中&#xff0c;多多少少都会画一些图来说明程序的功能&#xff0c;这篇文章就来说明一些常用的"图"怎么画。 1&#xff0c;画图工具 常用的有这么几种 Visio&#xff1a;这是很常用的&#xff0c;基本上的图都可以用这个来画。StarUML&#xff1a…

patreon cg人物插画作品合集分享

1、wlop大神作品4K-8K精选无水印图片http://theme.chengxuz.com/265.html 2、加拿大女画师sakimi chan作品1-98期插画http://theme.chengxuz.com/250.html 3、画师Mirco Cabbia插画作品合集欣赏http://theme.chengxuz.com/306.html 4、画师Sciamano240插画作品分享http://th…

如何画场景插画?场景插画的起稿、构图技巧!

如何画场景插画&#xff1f;绘画初学者如何构图&#xff1f;绘画初学者如何起稿&#xff1f;学习绘画难吗&#xff1f;怎样才能学好绘画&#xff1f;想必这些都是绘画初学者们经常在想的问题吧&#xff0c;就是不知道如何才能绘画好一个场景&#xff0c;不知道如何起稿也不知道…

手把手教你实现手绘风格图形

大家好&#xff0c;我是 漫步&#xff0c;今天分享一篇高难度的图形绘制文章。 Rough.js[1]是一个手绘风格的图形库&#xff0c;提供了一些基本图形的绘制能力&#xff0c;比如&#xff1a;虽然笔者是个糙汉子&#xff0c;但是对这种可爱的东西都没啥抵抗力&#xff0c;这个库的…

Python自动绘制UML类图、函数调用图(Call Graph)

文章目录 1. 引言2. 绘制UML类图2.1 安装graphviz2.2 安装pyreverse2.3 绘制UML类图 3. 绘制函数调用图3.1 安装graphviz3.2 安装pycallgraph3.3 使用示例第一种&#xff1a;从命令行调用第二种&#xff1a;从API调用 小结 1. 引言 在设计软件、分析代码时&#xff0c;我们常常…

房价预测2

学习&#xff1a; https://blog.csdn.net/u012063773/article/details/79349256 https://www.cnblogs.com/massquantity/p/8640991.html https://zhuanlan.zhihu.com/p/39429689 详解stacking过程 之前在房价预测1中对一些异常值进行了drop处理 后来在分割train和test的时候…

深圳二手房房价分析及预测

分析目标&#xff1a; 通过处理后的房价数据&#xff0c;筛选对房价有显著影响的特征变量。确定特征变量&#xff0c;建立深圳房价预测模型并对假设情景进行模拟 数据预处理 import pandas as pd import os file_path"D:\Python数据分析与挖掘实战\深圳二手房价分析\…

波士顿房价预测

目录 前言一、波士顿房价预测实战1-1、数据集介绍&数据集导入&分割数据集1-2、数据标准化1-3、构建网络1-4、K折交叉验证&取出所有的训练损失、训练平均绝对误差、验证损失、验证平均绝对误差1-5、计算平均mae&绘制验证mae分数&绘制验证loss分数1-6、找到最…

房价多特征预测

2019.11.18 首先非常感谢这位作者&#xff0c;写的很棒&#xff01;你们就不要看我的啦&#xff0c;看他的⬇️⬇️ 学习来自 https://blog.csdn.net/sinat_29957455/article/details/79255675 下面的内容为自己学习笔记: 学习Kaggle&#xff5e;ing 这次给出的特征有点儿多啊…

北京房价预测图说

前言 曾听人说过&#xff0c;中国经济是房地产市场&#xff0c;美国经济是股票市场。中国房地产市场超过400万亿&#xff0c;房地产总值是美国、欧盟、日本总和&#xff0c;但是股市才50万亿&#xff0c;不到美欧日的十分之一。可见房地产对于中国来说地位尤其明显&#xff01…

苹果App Store商店中国区如何改为美国区

苹果App Store商店中国区如何改为美国区 Hello大家好&#xff01;苹果外区id是每个苹果手机必不可少的啦&#xff01;不是国外有多好而是国内的大部分软件都有限制&#xff0c;一开始我百度了一下内容太乱太杂了真的都是“bullshit”,下面直接上教程。 第一首先要一个国内的苹…

二手平台淘的明星同款穿搭?上95分看看

作为一个喜欢穿搭的潮流人士&#xff0c;我拥有许多明星同款&#xff0c;但拥有的越多&#xff0c;我的钱包就越扁。 但尽管是在这样的情况下&#xff0c;我依然不能放弃给它们&#xff08;指衣服鞋子&#xff09;一个家&#xff0c;所以我知道了95分&#xff0c;认识了95分&a…

《VogueMe》手写问答新鲜出炉!这字体很李易峰!

爱豆新闻讯 昨日晚间&#xff0c;《VogueMe》官博送上端午小福利――我们小哥哥的手写问答新鲜出炉啦&#xff01;蜜蜂们纷纷表示&#xff0c;瞧这字体一看就知道是出自我方木哥~ 最后&#xff0c;期待我哥在电影《心理罪》里的表现&#xff0c;小编表示已经迫不及待想见方木了…

pythonif语句怎么换行输入_李沁和李易峰演的电视剧叫什么名字

第一现纠在出掌握证据录音录像历印病常会存复纷后、封时间&#xff0c;的维权意强患方来越由于识越。 每月李女养费0元付抚士支&#xff0c;女由达成高先协议最终养&#xff1a;长双方生抚。他又女儿带着悄悄亲子做了鉴定&#xff0c;为了打消的疑自己虑&#xff0c;对恩高先妻…

有时间BB,不如想想怎么让别人闭嘴吧

1. 经过上次「SKR&#xff01;虎扑66万JRS大战3300万吴亦凡护卫队&#xff0c;别逼我拿Python」一事&#xff0c;我发现观众里有很多JRs&#xff0c;「这就是灌篮」一定不陌生。 我不是做广告&#xff0c;所以对该节目的评论暂时不讨论&#xff0c;今天要说的是球场外的另一件事…

看了这篇文,开始佩服蔡徐坤了

文/北妈 阅读本文需要 2.6分钟 一 每天群里还在说cxk这个关键字&#xff0c;显然现在cxk的人气和梗&#xff0c;已经是全民级别的了。 看到cxk三个字就忍不住很欢乐&#xff0c;并不是黑他&#xff0c; 如果读者里有坤粉&#xff0c;千万不要误会&#xff0c;我们并没有真心要…

致敬云南滑翔机

今天晚上&#xff0c;看了期待已久的篮球节目&#xff0c; 我要打篮球&#xff0c;11点左右&#xff0c;感觉特别困&#xff0c;已经快睡着了&#xff0c;准备关掉电视的时候看到林书豪的图片&#xff0c;林书豪头上有一个标题《我要打篮球》&#xff0c;这个不就是《这&#x…

陈伟霆,赵丽颖,李易峰,青云志,分析。

作者&#xff1a;韩梦飞沙 QQ:313134555 陈伟霆&#xff08;William Chan&#xff09;&#xff0c;1985年11月21日出生于中国香港&#xff0c;华语影视男演员、主持人、歌手 2003年因参加全球华人新秀香港区选拔赛而进入演艺圈[1-2] &#xff1b;2006年成为Sun Boy’z组合一员…

pyhton爬取:爬取爱豆(李易峰)微博评论,看看爱豆粉丝的关注点在哪(附源码)

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本片文章来自腾讯云&#xff0c; 作者&#xff1a;孤独的明月 今日目标&#xff1a;微博 以李易峰的微博为例&#xff1a; https://weibo.com/liyifen…

杨幂 刘恺威公布离婚 目测李易峰将再一次卷入风暴中心!

杨幂 刘恺威终于确认离婚了。嘉行传媒发布消息&#xff0c;宣称杨幂 刘恺威协议离婚。这几年真真假假关于两人离婚的消息&#xff0c;算是每个月都有冒泡。实在是听的耳朵都起茧了。 其实不关心他们两个&#xff0c;可是李易峰却是喜欢的。2014年&#xff0c;杨幂和李易峰主演的…