草庐IT

从零开始,打造属于你的 ChatGPT 机器人!

formula10000 2023-04-12 原文

大家好!我是韩老师。

不得不说,最近 OpenAI/ChatGPT 真的是太火了。

前几天,微软宣布推出全新的 Bing 和 Edge,集成了 OpenAI/ChatGPT 相关的技术,带动股价大涨:

微软市值一夜飙涨 5450 亿

国内外各家大厂也是纷纷跟进,发布或者将要发布与 OpenAI/ChatGPT 对标的 AI 技术。

那么,各家大厂都在加大投入 OpenAI/ChatGPT 类似的 AI 技术。我们普通人是否能搭建一个属于我们自己的 ChatGPT 机器人呢?

答案是肯定的。

虽然 ChatGPT 没有开放官方的 API 或者 SDK,但是 OpenAI 提供了官方的 REST API 以及 Node.js 和 Python 的 SDK。

而且,OpenAI API 所提供的 text-davinci-003 model,和 ChatGPT 相类似,也是 GPT-3.5 的 model。

如此一来,我们就可以站在巨人的肩膀上,打造自己的 ChatGPT 机器人!

Mircosot Teams 是一款全球知名的团队协作工具。韩老师就以 Teams 为例,带大家打造一款在 Teams 中运行的 OpenAI/ChatGPT 机器人!

运行后,你就可以在 Teams 与你自己的 ChatGPT 机器人互动啦!

再问问他知不知道疯狂星期四?

接下来,让我们一起看看如何快速地把 ChatGPT 机器人运行起来~

前置条件

1. 注册一个 OpenAI 的账号,然后申请一个 API key

https://beta.openai.com/account/api-keys

2. 安装 Node.js 18

https://nodejs.org/en/

3. 一个 M365 账号。如果没有 M365 账号的话,可以申请一个免费的 M365 开发者账号:

https://developer.microsoft.com/microsoft-365/dev-program

4. 安装 VS Code 和 Teams Toolkit 插件

https://marketplace.visualstudio.com/items?itemName=TeamsDevApp.ms-teams-vscode-extension

本地运行

1.  下载项目代码到本地

git clone https://github.com/formulahendry/openai-teams-bot

2. 在 VS Code 中,打开 openai-teams-bot 项目

3. 在 bot 文件夹下,创建一个 .env.teamsfx.local 文件,然后设置 OPENAI_API_KEY

4. 点击 “F5” 来启动项目

5. 第一次启动时,会让你登录 M365 账号

6. 如果一切顺利,VS Code 会自动打开浏览器,然后添加这个应用即可。

接下来,就可以愉快地和你的 ChatGPT 机器人聊天了~

云端部署

除了在本地运行,是否能分享给更多人一起玩呢?

答案也是肯定的。

通过 Teams Toolkit,可以一键部署,轻松上云,把 ChatGPT 机器人运行在 Azure 上!

1. 登录到 Azure

如果没有 Azure 账号的话,可以创建一个免费的 Azure 账号:

https://azure.microsoft.com/free/

在 VS Code 左侧的边栏中,点击 Teams 的图标,然后点击 “Sign in to Azure”。

2. 创建云端资源

点击 “Provision in the cloud” 来创建 Azure 云资源。

3. 部署代码到云端

点击 “Deploy in the cloud” 把本地的代码部署到 Azure 云端。

4. 运行 ChatGPT 机器人

在 VS Code 左侧的边栏中,点击调试的图标,然后选择 Launch Remote (Edge) 或者 Launch Remote (Chrome),再点击绿色的运行按钮,就能启动浏览器运行 ChatGPT 机器人啦!

了解更多

如果你想要了解更多的内容,可以 star 一下本项目:

https://github.com/formulahendry/openai-teams-bot

项目代码完全是开源的~

一起来玩转 OpenAI/ChatGPT 机器人吧!

有关从零开始,打造属于你的 ChatGPT 机器人!的更多相关文章

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

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

  2. Observability:从零开始创建 Java 微服务并监控它 (二) - 2

    这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/

  3. ruby - 我的 Ruby IRC 机器人没有连接到 IRC 服务器。我究竟做错了什么? - 2

    require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame

  4. ruby-on-rails - Ruby/Rails 中的夏令时开始和结束日期 - 2

    我正在开发一个Rails应用程序,我需要在其中找到给定特定偏移量或时区的夏令时开始和结束日期。我基本上在我的数据库中保存了从用户浏览器接收到的时区偏移量(“+3”,“-5”),我想在它出现时修改它由于夏令时的变化。我知道Time实例变量有dst?和isdst方法,如果存储在它们中的日期在夏令时与否。>Time.new.isdst=>true但是使用它来查找夏令时的开始和结束日期会占用太多资源,而且我还必须为我拥有的每个时区偏移量执行此操作。我想知道更好的方法。 最佳答案 好的,基于你所说的和@dhouty'sanswer:您希望能够

  5. ruby-on-rails - phusion passenger 和 ruby​​ 1.9.1 已经开始工作了吗? - 2

    我有一台生产机器和一台开发机器,都运行ubuntu8.10并且都运行最新的phusionpassenger。当我在osx上的本地开发机器上使用ruby​​1.9.1时,我想知道外面的人是否已经在使用带有ruby​​1.9.1甚至1.9.2的phusionpassenger?如果是这样,请告诉我们您的设置!此外,有没有办法在apache上使用phusionpassenger同时运行ruby​​1.8.7(ree)和1.9.1?感谢您的指点,我在任何地方都找不到任何提示... 最佳答案 是的,从某些2.2.x版本开始就正式支持它,我不记

  6. ruby - Rails 3 - 我可以将开始日期设置为 date_select 方法吗? - 2

    date_select方法只能设置:start_year,但我想设置开始日期(例如3个月前的日期)(但没有这样的选项)。那么,我可以将开始日期设置为date_select方法吗?或者,要制作这样的选择框,我应该使用select_tag和options_for_select吗?或者,有什么解决办法吗?谢谢, 最佳答案 有可能……例如:start_year–设置年份选择的开始年份。默认为Time.now.year-5参见thisresource. 关于ruby-Rails3-我可以将开始日期

  7. ruby-on-rails - Rspec 测试属于并且有很多 - 2

    我正在运行rspec测试以确保两个模型通过has_many和belongs_to相互关联。下面是我的测试。describe"testingforhasmanylinks"dobeforedo@post=Post.new(day:"Day1",content:"Test")@link=Link.new(post_id:@post.id,title:"google",url:"google.com")endit"inthepostmodel"do@post.links.first.url.should=="google.com"endend测试告诉我url是一个未定义的方法。我的测试有什么

  8. ruby - 从特定索引开始迭代数组 - 2

    我想从特定索引开始遍历数组。我该怎么做?myj.eachdo|temp|...end 最佳答案 执行以下操作:your_array[your_index..-1].eachdo|temp|###end 关于ruby-从特定索引开始迭代数组,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/44151758/

  9. 建模分析 | 平面2R机器人(二连杆)运动学与动力学建模(附Matlab仿真) - 2

    目录0专栏介绍1平面2R机器人概述2运动学建模2.1正运动学模型2.2逆运动学模型2.3机器人运动学仿真3动力学建模3.1计算动能3.2势能计算与动力学方程3.3动力学仿真0专栏介绍?附C++/Python/Matlab全套代码?课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。?详情:图解自动驾驶中的运动规划(MotionPlanning),附几十种规划算法1平面2R机器人概述如图1所示为本文的研究本体——平面2R机器人。对参数进行如下定义:机器人广义坐标

  10. 智能客服 | 浅谈人工智能聊天机器人ChatGPT - 2

    2022年底,OpenAI的预训练模型ChatGPT给人工智能领域的爱好者和研究人员留下了深刻的印象和启发,他展现的惊人能力将人工智能的研究和应用热度推向高潮,网上也充斥着和ChatGPT的各种聊天,他可以作诗、写小说、写代码、讨论疫情问题等。下面就是一些他的神回复:人命关天的坑: 写歌,留给词作者的机会不多了。。。 回答人类怎么样面对人工智能: 什么是ChatGPT?借用网上的一段介绍,ChatGPT是由人工智能研究实验室OpenAI在2022年11月30日发布的全新聊天机器人模型,一款人工智能技术驱动的自然语言处理工具。它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动

随机推荐