草庐IT

chatGPT系列 WORD中访问chatGPT

syjf1976_ABAP 2023-04-20 原文

前言

chatGPT实在是火爆.

微软也在考虑把OFFICE全家桶中添加chatGPT功能.

期待么. 其实你可以自行把chatGPT加入到WORD中

chatGPT将按照人类对它的使用能力来重新划分人群

本文主要介绍怎么把chatGPT功能加入到WORD

添加后的效果

先看添加后的效果.

新建一个WORD文档, 输入文字  四川美食 . 然后选中这段文字,点击宏命令,即可获取下方的chatGPT的反馈信息.

说明一下, chatGTP的API调用从前无需VPN连接到外网, 但现在似乎不成了. 所以要体验这个效果,需要用VPN软件翻墙.

演示

SPRING

以下文字是通过这个功能自动从chatGPT获取的. (暂时有点排版问题 )

怎么成为一个好的ABAP开发人员

1. 掌握ABAP语言和SAP系统的基础知识。学习ABAP语言和SAP系统的基础知识是成为一个好的ABAP开发人员的第一步。这包括掌握ABAP程序设计,理解SAP数据库和数据结构,熟悉SAP的开发工具和技术,以及了解SAP的应用程序架构。2. 深入了解SAP系统的业务流程。了解SAP系统的业务流程可以帮助你更好地理解用户需求,为用户提供更好的解决方案。这需要你对SAP系统中各个模块的功能和特点有深入的了解,以及对业务流程的各个环节有清晰的认识。3. 拥有良好的编程能力和逻辑思维能力。作为一个开发人员,良好的编程能力和逻辑思维能力是必不可少的。这可以帮助你设计和开发高效、可靠、易于维护的ABAP程序,并能够快速解决各种问题和bug。4. 保持学习和探索的热情。SAP系统是一个不断发展和更新的系统,作为一个好的ABAP开发人员,你需要保持学习和探索的热情,不断更新自己的技术和知识。这可以帮助你跟上时代的步伐,为用户提供更好的解决方案。5. 具备良好的沟通和团队合作能力。ABAP开发往往是一个团队合作的过程,你需要和其他开发人员、项目经理、测试人员等人员密切合作,共同完成项目。良好的沟通和团队合作能力可以帮助你更好地理解用户需求,协调各个部门的工作,提高项目的成功率。

实现步骤

看到后,是否觉得很好很强大, 以后写文章只需要写出大标题和小标题, 其它都可以从AI获取了.下面是实现的步骤

01

创建宏

新建一个WORD文档,视图->宏->新建宏

02

宏代码

其中 apiKey = "your_api_key" 中的 your api key 需要替换成你自己申请的APIKEY . 

在宏中添加如下宏代码

Sub ChatGPT()


    Dim selectedText As String
    Dim apiKey As String
    Dim response As Object, re As String
    Dim midString As String
    Dim ans As String
    
    If Selection.Type = wdSelectionNormal Then
        selectedText = Selection.Text
        selectedText = Replace(selectedText, ChrW$(13), "")
        
        apiKey = "your_api_key"
        URL = "https://api.openai.com/v1/chat/completions"
        
        Set response = CreateObject("MSXML2.XMLHTTP")
        response.Open "POST", URL, False
        response.setRequestHeader "Content-Type", "application/json"
        response.setRequestHeader "Authorization", "Bearer " + apiKey
response.Send "{""model"":""gpt-3.5-turbo"", ""messages"":[{""role"":""user"",""content"":""" & selectedText & """}], ""temperature"":0.7}"
        
        re = response.responseText
        midString = Mid(re, InStr(re, """content"":""") + 11)
        ans = Split(midString, """")(0)
        ans = Replace(ans, "\n", "")
        Selection.Text = selectedText & vbNewLine & ans
       
        
    Else
        Exit Sub
        
    End If
    
End Sub

03

把宏命令添加到工具栏

右键点击工具栏的空白处,

添加自定义组,

宏命令添加到自定义组中

04

另存模板文档

为了在启动WORD时自动添加这个宏.需要执行下面的步骤

另存文件为启用宏的WORD模板.

05

修改WORD选项

在WORD的选项 (文件->选项)中设置模板的自动加载

总结

chatGPT实在是划时代的产品, 同时OPENAI公司提供了API给第三方应用调用. 扩展了AI的使用场景.

上述宏命令的方式只是一个简单的调用. 

期待微软OFFICE升级后的chatGPT功能吧. 这将划时代的改变写文章的方法与过程

THE

END

约定

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.       

    (如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)

请微信联系管理员: 

syjf1976 

sharry_xlp  

Yannick_Duan 

申请进入公众号讨论群提问或者参与话题讨论

有关chatGPT系列 WORD中访问chatGPT的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  3. ruby-on-rails - 在混合/模块中覆盖模型的属性访问器 - 2

    我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah

  4. ruby - 续集在添加关联时访问many_to_many连接表 - 2

    我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以

  5. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  6. 亚特兰蒂斯的回声(中文版): chatGPT 的杰作 - 2

    英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古

  7. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  8. 阿里云RDS——产品系列概述 - 2

    基础版云数据库RDS的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版实例的相关信息。RDS基础版实例也称为单机版实例,只有单个数据库节点,计算与存储分离,性价比超高。说明RDS基础版实例只有一个数据库节点,没有备节点作为热备份,因此当该节点意外宕机或者执行重启实例、变更配置、版本升级等任务时,会出现较长时间的不可用。如果业务对数据库的可用性要求较高,不建议使用基础版实例,可选择其他系列(如高可用版),部分基础版实例也支持升级为高可用版。基础版与高可用版的对比拓扑图如下所示。优势 性能由于不提供备节点,主节点不会因为实时的数据库复制而产生额外的性能开销,因此基础版的性能相对于

  9. ruby - 有没有办法从 ruby​​ case 语句中访问表达式? - 2

    我想从then子句中访问c​​ase语句表达式,即food="cheese"casefoodwhen"dip"then"carrotsticks"when"cheese"then"#{expr}crackers"else"mayo"end在这种情况下,expr是食物的当前值(value)。在这种情况下,我知道,我可以简单地访问变量food,但是在某些情况下,该值可能无法再访问(array.shift等)。除了将expr移出到局部变量然后访问它之外,是否有直接访问caseexpr值的方法?罗亚附注我知道这个具体示例很简单,只是一个示例场景。 最佳答案

  10. ruby - 从外部访问类的实例变量 - 2

    我理解(我认为)Ruby中类变量和类的实例变量之间的区别。我想知道如何从该类外部访问该类的实例变量。从内部(即在类方法中而不是实例方法中),它可以直接访问,但是从外部,有没有办法做MyClass.class.[@$#]variablename?我没有任何具体原因要这样做,只是学习Ruby并想知道是否可行。 最佳答案 classMyClass@my_class_instance_var="foo"class上述yield:>>foo我相信Arkku演示了如何从类外部访问类变量(@@),而不是类实例变量(@)。我从这篇文章中提取了上述内

随机推荐