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

这篇具有很好参考价值的文章主要介绍了通过阿里云函数计算解决ChatGPT API的调用问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ChatGPT系列文章


与其被ChatGPT取代,不如征服ChatGPT,做它的主人!


前言

自2022年11月30日 OpenAI 发布 ChatGPT 以来,虽然时有唱衰的声音出现,但在OpenAI不断推陈出新,陆续发布了OpenAPI、GPT-4、ChatGPT Plugins之后,似乎让大家看到了一个聊天机器人往操作系统入口进军的升纬之路。

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

最近,DD也花了不少时间去研究和体验了一些有趣的内容。比如:尝试跑了一些基于其API实现的类ChatGPT应用:
通过阿里云函数计算解决ChatGPT API的调用问题还有比如下面这个通过拖拽就能轻松调试和构建智能聊天应用的开源工具:
通过阿里云函数计算解决ChatGPT API的调用问题在这几天的不断尝试过程中,DD发现一个比较麻烦的问题,就是这些应用都需要OpenAI的API Key。
通过阿里云函数计算解决ChatGPT API的调用问题作为开发者来说,相信不少小伙伴知道如何获取了,这里就不细节说了,大家可以Google一下,有大量的资料。

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

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


命令行部署

准备工作

点击这里,进入管理“控制台”,开通函数计算FC
通过阿里云函数计算解决ChatGPT API的调用问题
1、安装最新版本的nodejs,不会的可以看官网:https://nodejs.org/
2、执行命令安装Serverless Devs Tool

npm安装:
$ npm install @serverless-devs/s -g

yarn安装:
$ 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-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


...

通过阿里云函数计算解决ChatGPT API的调用问题
在部署完成之后,最后面会有上图这样的一段输出,记住红线部分的域名,这是可以直接访问。你可以尝试访问一下,如果返回如下信息,说明部署成功了。

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

同时,我们也可以通过这个链接https://fcnext.console.aliyun.com/us-west-1/services 去阿里云的控制台找到创建的这个函数服务:
通过阿里云函数计算解决ChatGPT API的调用问题

应用中心部署

如果你不喜欢命令行的部署方式的话,还可以通过应用中心实现部署,方法更简单!

第一步:点击这里,进入管理“控制台”,开通函数计算FC
通过阿里云函数计算解决ChatGPT API的调用问题
访问应用中心:http://www.devsapp.cn/details.html?name=openai-proxy

第二步:点击“一键部署”按钮
通过阿里云函数计算解决ChatGPT API的调用问题
第三步:点击“创建并部署默认环境”
通过阿里云函数计算解决ChatGPT API的调用问题
接下来就是等着阿里云的精彩表演:
通过阿里云函数计算解决ChatGPT API的调用问题
完成部署之后,可以看到如下图的操作列中,有“访问域名”链接,点击后就可以获取到用来代理的域名了。
通过阿里云函数计算解决ChatGPT API的调用问题

使用代理访问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
通过阿里云函数计算解决ChatGPT API的调用问题

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

2、打开浏览器,访问:http://localhost:3000/,可以看到如下页面:
通过阿里云函数计算解决ChatGPT API的调用问题
尝试给他设定一个角色,然后发几句话试试吧,如果可以收到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/fc
https://github.com/ddiu8081/chatgpt-demo文章来源地址https://www.toymoban.com/news/detail-429866.html

到了这里,关于通过阿里云函数计算解决ChatGPT API的调用问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通过阿里云函数计算FC实现音视频转码

    1.进入阿里云函数计算FC页面 2.创建音视频转码应用         可以看到代码,看到相关的传参   3.进行测试   编辑测试参数,使用账号的OSS中的资源    点击测试函数进行测试 可以在OSS中看到生成的mp4格式的视频了   测试后发现函数计算可以使用 4. 接下来就是在项目中通过

    2024年02月11日
    浏览(38)
  • Vue调用后端api接口出现跨域问题,只要三步解决问题

    问题: 当我们在自己的个人电脑上去进行vue调用后端的操作时,经常会遇到跨域问题 解决方式: 1.在Vue项目中调用api接口的地方加上 2.在后端代码项目重写Filter类 3. 在控制类方法上加上允许跨域的注解 搞定收工:  

    2024年02月15日
    浏览(24)
  • 前端调用DRI后端API出现跨域资源共享(CORS)问题解决办法

    目录 1. 引言 2. 跨源资源共享和实现方法 3. 在Django项目中配置django-cors-headers库 Reference 在进行后端API开发时,有时会遇到“跨域资源共享 (CORS) 请求...被阻止“的错误,如图1所示。本文讲解如何在使用DRF(Django REST Framework)的后端API开发项目中解决这个问题。 A cross-origin re

    2024年04月25日
    浏览(37)
  • Kotlin,解决调用了函数但是函数体内没有执行的问题,什么时候使用invoke

    这段代码按照代码逻辑来说打印的是 123 但是没有这个打印 把foo函数转成java的代码如下 Function0表示有0个参数,Function1表示1个参数,以此类推到Function22,超过22可以使用FunctionN表示。 foo函数的返回类型是Function0。这也意味着,如果我们调用了foo(n),那么实质上仅仅是构造了

    2024年02月09日
    浏览(33)
  • C语言有关“函数用于调用的参数太少”问题解决办法

    🦄 个人主页 :修修修也 🎏 所属专栏 :程序调试及报错解决 ⚙️ 操作环境 : Visual Studio 2022 我们在使用C语言编写程序,特别是使用 函数递归 时经常会遇到编译器报错“ 用于调用的参数太少/太多 ”,如图: 那么遇到这种情况我们该如何解决呢? 首先以下面一段代码为例向

    2023年04月08日
    浏览(29)
  • 解决反代ChatGPT API接口后502 Bad Gateway问题

    前几天,写了一篇《宝塔快速反代openai官方的API接口,实现国内直接使用ChatGPT》,直接把我一个闲置的域名反代了api.openai.com,从而实现了国内直接使用ChatGPT的目的,但是有网友给博主反映,我的API反代地址502 Bad Gateway了。 先要找到问题所在,看了一下日志,当然给ChatGPT自己

    2024年02月11日
    浏览(39)
  • 阿里云短信服务API怎么调用

            今天来搞一下阿里云短信服务来实现发送短信功能,其实能提供短信发送服务的平台有很多,但这里我选择的是阿里云,因为阿里云的示例还有代码封装的很简洁,使用起来非常简单,上手非常快,那么费话不多说我们直接开始。         首先,我们需要登录阿里云

    2024年02月02日
    浏览(34)
  • 关于微信小程序调用H5腾讯地图API获取定位信息提示失败问题--解决办法之一

    在跳转到H5页面加载腾讯地图API获取定位信息时,“真机调试”、“开发模式”都可以使用 web-view 组件访问我需要的路径。只有“体验版”、“线上版本”会出现这个错误提示。正常加载都是正常的,但是因为腾讯地图API在获取定位信息的同时,会在页面上内嵌一个隐藏的

    2024年04月26日
    浏览(43)
  • vue调用腾讯地图API报错跨域问题解决Access to XMLHttpRequest at‘httplocalhost

    1.下载vue-jsonp解决跨域问题 2.在main.js中引用 3.调用腾讯地图API 4.获取本机IP

    2024年01月19日
    浏览(40)
  • 通过API接口调用数据的优势是什么?API接口调用展示示例

    通过API接口调用数据的优势主要有以下几点: 1.规范化与一致性:API接口提供一种统一的方式来获取数据,保证了数据的规范化与一致性,消除了不同数据源可能带来的格式和结构上的差异。 2.灵活性:使用API接口可以定制请求的参数和返回结果,让请求方可以得到所需的数

    2024年02月06日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包