通过阿里云函数计算解决ChatGPT API的调用问题

张开发
2026/4/12 20:59:43 15 分钟阅读

分享文章

通过阿里云函数计算解决ChatGPT API的调用问题
ChatGPT系列文章与其被ChatGPT取代不如征服ChatGPT做它的主人文章目录ChatGPT系列文章前言命令行部署准备工作两行命令实现部署应用中心部署使用代理访问API总结前言自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混乱稍有不慎就有可能被封号。所以我们最好还是有一个稳定的位于国外的调用来源这样日常开发调试就能更效率一些。那么如何快捷方便的来搞定呢下面就给大家分享一个利用阿里云函数计算有大量免费试用额度来实现的方案。命令行部署准备工作点击这里进入管理“控制台”开通函数计算FC1、安装最新版本的nodejs不会的可以看官网https://nodejs.org/2、执行命令安装Serverless Devs Toolnpm安装 $ npm install serverless-devs/s -g yarn安装 $ yarn global add serverless-devs/s1、通过该链接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-access Alias: alibaba-access AccountID: 自动获取AccountID AccessKeyID: 此处填写AccessKeyID AccessKeySecret: 此处填写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 去阿里云的控制台找到创建的这个函数服务应用中心部署如果你不喜欢命令行的部署方式的话还可以通过应用中心实现部署方法更简单第一步点击这里进入管理“控制台”开通函数计算FC访问应用中心http://www.devsapp.cn/details.html?nameopenai-proxy第二步点击“一键部署”按钮第三步点击“创建并部署默认环境”接下来就是等着阿里云的精彩表演完成部署之后可以看到如下图的操作列中有“访问域名”链接点击后就可以获取到用来代理的域名了。使用代理访问API通过简单的五步操作我们已经完成了一个OpenAI调用的代理搭建还记得上面最后配置的域名不接下来就可以随便找一个开源项目来使用一下试试。比如可以用这个项目来验证一下https://github.com/ddiu8081/chatgpt-demo方法很简单只需要1、拉取代码git clone gitgithub.com:ddiu8081/chatgpt-demo.git2、安装依赖npm install3、复制.env.example文件命名为.env文件把申请的OPENAI_API_KEY填上再把OPENAI_API_BASE_URL填写上面配置好的代理地址比如http://openai-proxy.abc123.com1、启动应用npm start控制台输出如下信息代表启动成功 chatgpt-api-demo0.0.1 start astro dev astro v2.1.7 started in 209ms ┃ Local http://localhost:3000/ ┃ Network use --host to expose2、打开浏览器访问http://localhost:3000/可以看到如下页面尝试给他设定一个角色然后发几句话试试吧如果可以收到AI回复那就代表已经完成代理。当然你也可以选择很多其他的应用来验证和使用比如下面这些有趣的项目https://github.com/mckaywrigley/chatbot-ui https://github.com/logspace-ai/langflow总结通过本文的方法搭建之后由于已经有一个位于海外的调用来源所以在本地开发和线上测试的时候可以都直接用同一个API Key即可本地日常使用也不需要采用其他特殊手段了是不是安逸不少呢最后聊聊为什么选择函数计算来部署主要还是几个方面的考虑轻松部署可以看到只需要简单几步就完成了非常适合这类轻量级的应用部署。 免运维几乎不需要运维大大减少了日常繁琐的精力投入可以更专注业务开发了。 省钱利器函数计算拥有弹性伸缩的能力最小可以缩为零也就是如果不调用都不会产生费用。进一步思考下函数计算还是非常适合于开发ChatGPT应用的。由于OpenAPI的API Key是按量计费的函数计算也是按量计费的那么这样的按量计费模式可以继续传递到用户侧。如果用户侧的调用实现采用函数计算的方式来部署那么可以说除了基础控制模块存在固定成本之外用户侧的成本和收益是强绑定关系。只要架构合理充分利用函数计算的弹性伸缩能力那就可以构建出一个低成本运行但却又能自动应对突发大流量的强壮应用。其实巧妙的应用函数计算来构建偏向用户侧的应用不光对于ChatGPT有用。对于一些SaaS应用的场景来说也可以深入思考和尝试除了弹性伸缩的能力之外。借助函数计算提供的API能力还能利用其实现SaaS租户的资源隔离。写着写着似乎又偏题了…回到ChatGPT的正题如果你还在纠结未来ChatGPT是否会淘汰程序员的话那就一起行动起来吧与其被ChatGPT取代不如征服ChatGPT做它的主人参考资料https://github.com/Ice-Hazymoon/openai-scf-proxy/https://www.aliyun.com/product/fchttps://github.com/ddiu8081/chatgpt-demo

更多文章