自2022年11月30日 OpenAI 公布 ChatGPT 以来,尽管时有唱衰的声音呈现,但在OpenAI一直新陈代谢,陆续公布了OpenAPI、GPT-4、ChatGPT Plugins之后,仿佛让大家看到了一个聊天机器人往操作系统入口进军的升纬之路。

ChatGPT能被认为是操作系统级别的入口平台,那么必然会催生各行各业利用的从新入局。对此,作为一名开发者来说,面对这样的改革,应该尽早的去理解与实际,在蓝海里更容易找到一份本人的地位。目前DD晓得的就有不少小伙伴在基于其API做一些出海的利用。

最近,DD也花了不少工夫去钻研和体验了一些乏味的内容。比方:尝试跑了一些基于其API实现的类ChatGPT利用:

还有比方上面这个通过拖拽就能轻松调试和构建智能聊天利用的开源工具:

在这几天的一直尝试过程中,DD发现一个比拟麻烦的问题,就是这些利用都须要OpenAI的API Key。

作为开发者来说,置信不少小伙伴晓得如何获取了,这里就不细节说了,大家能够Google一下,有大量的材料。

这里具体说说另外一个问题:因为咱们本地调试、服务器部署等起因,在申请 https://api.openai.com 的时候,很容易造成IP凌乱,稍有不慎就有可能被封号。所以,咱们最好还是有一个稳固的位于国外的调用起源,这样日常开发调试就能更效率一些。

那么如何快捷不便的来搞定呢?上面就给大家分享一个利用阿里云函数计算(有大量收费试用额度)来实现的计划。

命令行部署

筹备工作

  1. 点击链接(https://t.aliyun.com/U/nb5Ka1),进入治理“控制台”,开明函数计算FC

  1. 装置最新版本的nodejs,不会的能够看官网:https://nodejs.org/
  2. 执行命令装置Serverless Devs Tool
npm装置:$ npm install @serverless-devs/s -gyarn装置:$ yarn global add @serverless-devs/s
  1. 通过该链接(https://usercenter.console.aliyun.com/#/manage/ak ),获取阿里云的AccessKey。肯定要把这里获取的AccessKey ID和AccessKey Secret记下来,上面马上要用。
  2. 为Serverless Devs Tool配置阿里云的AccessKey
$ s config add ? Please select a provider: Alibaba Cloud (alibaba) Refer to the document for alibaba key:  http://config.devsapp.net/account/alibaba? AccessKeyID 此处填写AccessKeyID? AccessKeySecret 此处填写AccessKeySecret? Please create alias for key pair. If not, please enter to skip alibaba-accessAlias: alibaba-accessAccountID: 主动获取AccountIDAccessKeyID: 此处填写AccessKeyIDAccessKeySecret: 此处填写AccessKeySecret✔ Configuration successful

两行命令实现部署

在实现了下面的筹备工作之后,接下来咱们只须要两行命令即可实现代理服务的部署!

第一步:初始化我的项目。执行命令**s init openai-proxy**,创立openai-proxy我的项目。

$ s init openai-proxy  More applications: https://registry.serverless-devs.com? Please input your project name (init dir) openai-proxy✔ file decompression completed创立利用所在的地区? 地区 us-west-1? please select credential alias aliyun-key  Thanks for using Serverless-Devs  You could [cd /Users/zhaiyongchao/IdeaProjects/test/openai-proxy] and enjoy your serverless journey!️  If you need help for this example, you can use [s -h] after you enter folder.  Document ❤ Star: https://github.com/Serverless-Devs/Serverless-Devs  More applications: https://registry.serverless-devs.com

会有几个选项,始终回车就好,如果想批改也行,本人依据须要抉择即可。

第二步:一键部署。进到初始化好的openai-proxy目录下,而后执行命令**s deploy**间接部署到阿里云上。不要狐疑,就是这么丝滑,一键实现!

$ s deploy Config check:Online status => Target Status  routeConfig: [    0: {    + qualifier: undefined    }  ]? Domain [auto] was changed, please confirm before deployment:    * You can also specify to use local configuration through --use-local during deployment)  use local✔ Generated auto custom domain...✔ Generated custom domain (3.78s)⠙ Generated auto custom domain...留神:以后域名并非阿里云官网域名,由 CNCF Project Serverless Devs 社区提供,仅供测试应用。Note: The current domain name is not the official domain name of Alibaba Cloud. It is provided by the CNCF Project Serverless Devs community for testing purposes only✔ Generated domain (23.38s)✔ Checking Service, Function, Triggers (1.53s)✔ Creating Service, Function, Triggers (9.57s)✔ Creating custom domain (1.7s)Tips for next step======================* Display information of the deployed resource: s info* Display metrics: s metrics* Display logs: s logs* Invoke remote function: s invoke* Remove Service: s remove service* Remove Function: s remove function* Remove Trigger: s remove trigger* Remove CustomDomain: s remove domain...

在部署实现之后,最初面会有上图这样的一段输入,记住红线局部的域名,这是能够间接拜访。你能够尝试拜访一下,如果返回如下信息,阐明部署胜利了。

{  "error": {    "message": "Invalid URL (GET /)",    "type": "invalid_request_error",    "param": null,    "code": null  }}

同时,咱们也能够通过这个链接https://fcnext.console.aliyun.com/us-west-1/services 去阿里云的控制台找到创立的这个函数服务:

利用核心部署

如果你不喜爱命令行的部署形式的话,还能够通过利用核心实现部署,办法更简略!

第一步:点击链接(https://t.aliyun.com/U/nb5Ka1),进入治理“控制台”,开明函数计算FC

拜访利用核心:http://www.devsapp.cn/details.html?name=openai-proxy

第二步:点击“一键部署”按钮

第三步:点击“创立并部署默认环境”

接下来就是等着阿里云的精彩表演:

实现部署之后,能够看到如下图的操作列中,有“拜访域名”链接,点击后就能够获取到用来代理的域名了。

应用代理拜访API

通过简略的五步操作,咱们曾经实现了一个OpenAI调用的代理搭建,还记得下面最初配置的域名不?接下来就能够轻易找一个开源我的项目来应用一下试试。

比方能够用这个我的项目来验证一下:https://github.com/ddiu8081/chatgpt-demo

办法很简略,只须要

  1. 拉取代码:git clone git@github.com:ddiu8081/chatgpt-demo.git
  2. 装置依赖:npm install
  3. 复制.env.example文件,命名为.env文件,把申请的OPENAI_API_KEY填上,再把OPENAI_API_BASE_URL填写下面配置好的代理地址,比方:http://openai-proxy.abc123.com

  1. 启动利用:npm start,控制台输入如下信息,代表启动胜利
> chatgpt-api-demo@0.0.1 start> astro dev    astro  v2.1.7 started in 209ms    ┃ Local    http://localhost:3000/  ┃ Network  use --host to expose
  1. 关上浏览器,拜访:http://localhost:3000/,能够看到如下页面:

尝试给他设定一个角色,而后发几句话试试吧,如果能够收到AI回复,那就代表曾经实现代理。

当然,你也能够抉择很多其余的利用来验证和应用,比方上面这些乏味的我的项目:

  • https://github.com/mckaywrigley/chatbot-ui
  • https://github.com/logspace-ai/langflow

总结

通过本文的办法搭建之后,因为曾经有一个位于海内的调用起源,所以在本地开发和线上测试的时候,能够都间接用同一个API Key即可,本地日常应用也不须要采纳其余非凡伎俩了,是不是劳碌不少呢?

最初,聊聊为什么选择函数计算来部署,次要还是几个方面的思考:

  1. 轻松部署:能够看到只须要简略几步,就实现了,非常适合这类轻量级的利用部署。
  2. 免运维:简直不须要运维,大大减少了日常繁琐的精力投入,能够更专一业务开发了。
  3. 省钱利器:函数计算领有弹性伸缩的能力,最小能够缩为零,也就是如果不调用,都不会产生费用。

进一步思考下,函数计算还是非常适合于开发ChatGPT利用的。因为OpenAPI的API Key是按量计费的,函数计算也是按量计费的,那么这样的按量计费模式能够持续传递到用户侧。如果用户侧的调用实现采纳函数计算的形式来部署,那么能够说除了根底管制模块存在固定成本之外,用户侧的老本和收益是强绑定关系。只有架构正当,充分利用函数计算的弹性伸缩能力,那就能够构建出一个低成本运行但却又能主动应答突发大流量的强健利用。

其实,奇妙的利用函数计算来构建偏差用户侧的利用,不光对于ChatGPT有用。对于一些SaaS利用的场景来说,也能够深刻思考和尝试,除了弹性伸缩的能力之外。借助函数计算提供的API能力,还能利用其实现SaaS租户的资源隔离。写着写着仿佛又偏题了…

回到ChatGPT的正题,如果你还在纠结,将来ChatGPT是否会淘汰程序员的话,那就一起口头起来吧!与其被ChatGPT取代,不如驯服ChatGPT,做它的客人!

参考资料

  1. https://github.com/Ice-Hazymoon/openai-scf-proxy/
  2. https://www.aliyun.com/product/fc
  3. https://github.com/ddiu8081/chatgpt-demo
欢送关注我的公众号:程序猿DD。第一工夫理解前沿行业音讯、分享深度技术干货、获取优质学习资源