人工智能( AI )是当今媒体的热门话题,而ChatGPT可能是较**的人工智能工具。较近在上写了一篇名为Stata命令chatgpt的来运行ChatGPT的文章。下面是解释,如何实现的。
回顾Stata / Python综述合集
我的chatgpt命令使用了Stata和Python代码相结合的方式。如果你不熟悉Stata和Python的结合使用,可以参考以前的博文。
Stata/Python integration part 1: Setting up Stata to use Python
Stata/Python integration part 2: Three ways to use Python in Stata
Stata/Python integration part 3: How to install Python packages
Stata/Python integration part 4: How to use Python packages
Stata/Python integration part 6: Working with APIs and JSON data
Stata/Python integration part 8: Using the Stata Function Interface to copy data from Stata to Python
使用Python与ChatGPT进行交互
ChatGPT是由OpenAI创建的,我们将使用OpenAI API与ChatGPT进行通信。您需要一个Open AI用户帐户和自己的Open AI API密钥才能使用下面的代码。另外还需要安装Python包openai。如果使用Python,可以在Stata命令窗口中输入shell pip install openai。如果使用Python作为平台(如Aonda)的一部分,则可能需要使用不同的方法来安装openai包。
首先我们编写一些Python代码导入openai包,定义一个名为chatgpt ( )的函数,并将API密钥传递给Open AI服务器。我用绿色字体输入注释,以表明后续每行代码的用途。注意,该函数是使用选项卡定义的。函数定义从def chatgpt ( )开始,在选项卡代码部分结束时结束。
接下来,让我们添加一些代码,让ChatGPT编写一个关于Stata的haiku。我们将查询内容存储到inputtext中。然后使用ChatCompletion . create ( )方法通过API将内容发送到ChatGPT,并将ChatGPT的回复存储到outputtext中。" method "一词是Python中函数的的术语,而ChatCompletion . create ( )方法需要两个参数。model参数*我们使用" gpt-3.5-turbo "模型,messages参数*我们以"用户"身份提交查询,查询的内容存储在inputtext中。ChatGPT回复的文本存储在outputtext . choices [ 0 ] . message . content中,我们的chatgpt ( )函数的最后一行代码将回复打印到屏幕上。
现在我们可以在Python中运行我们的函数并查看结果。
成功了!而且这比我们开始时我想的要容易得多。请记住,我们使用ChatGPT只是为了好玩。在使用ChatGPT进行严肃工作之前,您应该了解其版权含义,并对内容进行仔细检查。
从Stata中调用Python函数
在Stata中使用新的Python函数较简单的方法是输入python: chatgpt ( )。注意,每次使用函数时,ChatGPT都会返回一个不同的回复。
但是我想创建一个Stata命令,在Python中运行chatgpt ( )函数。可以通过输入program chatgpt来创建一个名为chatgpt的Stata命令来开始我的命令并输入end来结束命令。
由于技术原因,我们新的chatgpt命令还不能正常工作。我们可以通过将Stata代码和Python代码保存在一个名为chatgpt . ado的文件中使其工作。注意,在下面的代码块中对我们的代码进行了两次更改。首先,我删除了以节省篇幅。其次,我们已经定义Python函数chatgpt ( )和Stata程序chatgpt。为此,我输入了python clear和program drop chatgpt,将它们从Stata的内存中删除。
chatgpt.ado version 1
让我们运行代码来重新定义Stata命令chatgpt和Python函数chatgpt ( ),然后输入chatgpt。
我们成功编写了一个Stata命令,调用一个Python函数,该函数通过OpenAI API将我们的查询内容发送到ChatGPT,通过API从ChatGPT检索回复,并将回复打到屏幕上。
将查询从Stata传递到Python
我们迟早可能会厌倦阅读有关Stata的haikus,并希望向ChatGPT提交一个新的查询。如果我们可以直接在Stata命令中输入查询,那就太好了。为此,我们需要允许Stata命令接受一个输入字符串,然后将该字符串传递给Python函数。
我们可以通过添加行参数args InputText来允许chatgpt命令接受字符串输入。然后可以输入chatgpt ' query ',查询的内容将存储在本地宏InputText中。我使用红色字体将这一行添加到下面的代码块中。
接下来,我们需要将Stata中的本地宏InputText传递给我们的Python函数。Stata的函数接口( SFI )使得在Stata和Python之间来回传递信息变得容易。首先我们可以 输入from sfi import Macro来从sfi导入宏包。然后输入inputtext = Macro.getLocal( ' Input Text '),使用getLocal ( )方法将Stata本地宏InputText传递给Python变量inputtext。我又在下面的代码块中添加了这些带有红色字体的代码行,这样就很容易看到了。
chatgpt.ado version 2
让我们运行更新后的代码来重新定义Stata命令chatgpt和Python函数chatgpt ( ),然后尝试新版本的chatgpt命令。
这一次我要求ChatGPT写一篇关于Stata的文章,结果成功了! 注意,双引号里的查询内容不是可选的。
北京天演融智软件有限公司(科学软件网)是STATA软件在中国的授权经销商,为中国软件用户提供优质的软件销售和培训服务。
词条
词条说明
Hydro GeoAnalyst是一个环境数据管理软件包,它集成了完整的分析、可视化和报告工具,具有强大而灵活的数据库。环境数据管理、分析和可视化软件Hydro GeoAnalyst是一个一体化的地下水和环境数据管理系统,它可以存储和组织环境数据,并帮助您快速创建可靠且易于理解的综合分析结果。有了Hydro GeoAnalyst,环境*、地球科学家和**机构就具备了有效、高效地管理大量数据的所有
Pscad新书推荐—PSCAD V4.6电路设计与仿真从入门到精通
PSCAD/EMTDC由加拿大Manitoba HVDC Research Centre开发的国际**行的暂态分析软件包,该软件主要用来研究电力系统的暂态过程,同时也适用于一般电气电子线路以及可等价地用电路来描述系统的仿真分析,PSCAD(Power System Computer Aided Design)是图形界面,EMTDC(Electro Magnetic Transients Inclu
使用Prism比以往更快地分析,绘制和呈现科学数据!概述GraphPad Prism适用于Windows和Mac电脑,它结合了科学绘图,综合曲线拟合(非线性回归),可理解的统计数据和数据组织。GraphPad Prism较初是为医学院和制药公司的实验生物学家设计的,特别是在药理学和生理学方面。现在,Prism 被各种生物学家以及社会和物理科学家广泛使用。**过110多个国家的20多万科学家依靠Pri
COULOMB是一款功能强大的三维电气设计和分析软件,采用创新的边界元法(BEM)技术,非常适合设计需要大型开放电场分析和边界精确建模的应用。同时,提供有限元法(FEM),使设计者能够根据其应用选择较合适的求解器,并在一个程序中独立验证结果。内容及介绍如下: 1、COULOMB AboutCOULOMB是由Integrated Engineering Software公司于1
公司名: 北京天演融智软件有限公司
联系人: 张经理
电 话:
手 机: 18610814366
微 信: 18610814366
地 址: 北京海淀海淀上地东路35号院1号楼3层1-312318、1-312-319
邮 编: