企业信息

    北京天演融智软件有限公司

  • 2
  • 公司认证: 营业执照已认证
  • 企业性质:
    成立时间:
  • 公司地址: 北京市 海淀区 海淀街道 上地东路35号院1号楼3层1-312318、1-312-319
  • 姓名: 张经理
  • 认证: 手机未认证 身份证未认证 微信已绑定

    Stata命令chatgpt,运行ChatGPT

  • 所属行业:IT 软件
  • 发布日期:2023-09-16
  • 阅读量:36
  • 价格:面议
  • 产品规格:不限
  • 产品数量:不限
  • 包装说明:不限
  • 发货地址:北京海淀海淀  
  • 关键词:科学软件网

    Stata命令chatgpt,运行ChatGPT详细内容

    Stata2023.7知乎


    人工智能( AI )是当今媒体的热门话题,而ChatGPT可能是较**的人工智能工具。较近在Twitter上写了一篇名为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作为平台(如Anaconda)的一部分,则可能需要使用不同的方法来安装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 clearprogram 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的文章,结果成功了! 注意,双引号里的查询内容不是可选的。

     

    将响应结果从Python传递给Stata
     在某些情况下,我们可能希望在运行命令后使用ChatGPT的回复。具体来说,我们不妨将ChatGPT的回复存储到一个本地宏,这样我们就不必从屏幕上复制和粘贴。同样,Stata的SFI接口使这一任务变得简单。

     

    让我们先修改Python函数。回想一下,ChatGPT回复的文本存储在

    outputtext.choices[0].message.content中。我们可以使用SFI’s Macro包中的setLocal()方法将回复存储到一个名为OutputText的Stata本地宏中。我再次用红色字体输入了这行代码,以便在下面的代码块中更容易看到。

     

    接下来,我们需要对Stata命令的定义做两点修改。首先,我们需要将选项rclass添加到程序定义中,以允许我们的命令在终止后返回信息。其次,我们需要添加行 return local OutputText = `“`OutputText’”’ 来将本地宏OutputText的内容返回给用户。注意,我对本地宏使用了复合双引号,因为ChatGPT的回复可能包含双引号。再次,我用红色字体输入了这些变化,以便在下面的代码块中很容易看到。

     

    chatgpt.ado version 3

    让我们运行ado-file重新定义Stata命令和Python函数,然后输入一个新的chatgpt命令。

    现在我们可以输入return list ,看到ChatGPT的回复已经存储到本地宏r ( OutputText )中。

    将ChatGPT的回复写入文件

    我喜欢在本地宏中访问ChatGPT的回复,但是我注意到一些格式,如换行符,已经丢失了。对于简短的回复来说这很容易纠正,但是对于较长的回复来说可能会很耗时。解决这个问题的一个办法是将ChatGPT的回复写到一个文件中。

     

    我在下面的代码块中使用红色字体为Python函数添加了三行代码。**行使用open ( )方法创建一个名为chatgpt _ output . txt的输出文件。w告诉open ( )重写文件,而不是追加新的文本。*二行使用write ( )方法将ChatGPT的回复写入文件。*三行使用close ( )方法关闭文件。

    chatgpt.ado version 4

    再次,我们运行ado - file来重新定义Stata命令和Python函数。然后输入一个新的chatgpt命令来提交一个新的查询。

    现在我们可以查看输出文件来验证其中是否包含ChatGPT的回复。

    一旦完成对程序的修改,我们需要从 .ado文件中删除python clear行。这可能会导致其他Python代码出现问题。

     

    结论

    这就是在Twitter上发布的 chatgpt 小命令。这只是一个简单的例子,内容比较直观明了。我还做了一些其他尝试,比如让ChatGPT编写Stata代码,来模拟不同场景的电力计算。结果好坏参半。但ChatGPT API所能做的远不止我在这里展示的,您可以通过阅读ChatGPT API Reference了解更多。Python与Stata的集成使得利用这些强大的工具去创建用户友好的Stata命令变得相对容易。

     

    北京天演融智软件有限公司(科学软件网)是STATA软件在中国的授权经销商,为中国软件用户提供优质的软件销售和培训服务。 



    http://turntech88.b2b168.com
    欢迎来到北京天演融智软件有限公司网站, 具体地址是北京市海淀区海淀街道上地东路35号院1号楼3层1-312318、1-312-319,联系人是张经理。 主要经营北京天演融智软件有限公司主营产品SPSSPRO,Stata,GAMS,Matlab,PSCAD,CYME,GMS,SnapGene等各学科软件,科学软件网拥有近20年的软件销售经验,提供专业软件销售和培训服务,还有更多的增值服务。目前,科学软件网提供的软件有数百种,软件涵盖的领域包括,经管,仿真,地球地理,生物化学,工程科学,排版及网络管理等各个学科。同时,我们还有40款软件,80门视频课程。 。 单位注册资金未知。 我们的产品优等,服务优质,您将会为选择我们而感到放心,我们将会为得到您认可而感到骄傲。