杂记 | 使用阿里云函数计算服务代理OpenAI的API接口

news2024/9/29 6:39:55

文章目录

  • 01 准备工作
    • 1.1 需求
    • 1.2 准备工作
  • 02 操作步骤
    • 2.1 Linux端
    • 2.2 阿里云控制台
  • 03 参考链接


01 准备工作

1.1 需求

OpenAI的官方接口的URL是https://api.openai.com,然而国内无法直接访问,可以通过反向代理该链接的方式来实现,可如果单独购买一台海外服务器,除了成本较高外,网络质量也难以保证。
阿里云的函数计算服务正好能满足这一需求。
官网链接:https://www.aliyun.com/product/fc

1.2 准备工作

注册阿里云账号,开通函数计算服务。
获取AccessKeyIdAccessKeySecret,在控制台右上角获取,或者通过下方链接获取:
https://usercenter.console.aliyun.com/#/manage/ak
此外,需要一台linux服务器,也可以是本地的linux系统,用于部署Serverless Devs。

02 操作步骤

2.1 Linux端

以下操作在自己的Linux服务器上进行:

# 安装Serverless Devs
curl -o- -L http://cli.so/install.sh | bash

# 安装完成后会有一行提示,让设置环境变量,注意:以实际的提示为准
export PATH=$HOME/.s/node-v14.19.3-linux-x64/bin:$PATH  # 不要复制这行 以实际提示的为准

# 查看是否安装成功
sudo s -v
# @serverless-devs/s: 2.0.83, linux-x64, node-v14.17.4

# 添加密钥信息
s config add  
# 1. 云厂商选择 Alibaba Cloud (alibaba)
# 2. 填写刚才获取的AccessKeyId、AccessKeySecret
# 3. 为这一配置取别名,也可以直接回车,使用默认名称,例如取名为openai

# 安装openai-proxy代理包 类似docker镜像是第三方的
s init openai-proxy-ohyee
# 1. 该第三方包的仓库链接 https://registry.serverless-devs.com/details.html?name=openai-proxy-ohyee
# 2. 项目名称自命名 例如取名为openai-proxy
# 3. 地域选择us-west-1(美西海岸硅谷)
# 4. 认证配置文件选择上一步取别名的那个
# 5. 完成后,在/root目录下,会有openai-proxy文件夹,即这一步取的别名的目录

# 进入到该目录
cd /root/openai-proxy

# 再进入到该目录下的code目录
cd ./code

# 执行npm安装命令
npm i

# 返回上一层 即/root/openai-proxy目录
cd ..

# 执行部署命令 - 该命令会在阿里云控制台那边生成对应的服务
s deploy  # 执行过程中可以选择本地配置或远程配置 我选择的远程 use remote

到此,就部署完成了,本地的openai-proxy也可以删除,因为代码都在阿里云上作为函数执行了。

2.2 阿里云控制台

在阿里云控制台中查看:

在这里插入图片描述
点进去后,找到函数管理
在这里插入图片描述
在触发器管理那里,找到域名,如下图:
其中的域名①是自动生成的,可以用浏览器访问。
在这里插入图片描述
访问域名①效果如图:
在这里插入图片描述
域名②是阿里云官方的,不能通过浏览器直接访问,可以作为API接口域名使用。

假设域名②为https://xxx.run

调用OpenAI的端口为:https://api.openai.com/v1
替换为https://xxx.run/v1就可以了。

03 参考链接

  • 通过阿里云函数计算解决ChatGPT API的调用问题
    (该博文中的s init openai-proxy已失效,替换为本文的s init openai-proxy-ohyee

  • 帮助文档

  • 代理服务的仓库

  • 项目仓库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1181412.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于卷积神经网络的填充(padding)

认识填充 (padding) 随着卷积层数的加深,输出进一步缩小,那么最终会导致输出很快就只剩下1∗1的数组,这也就没办法继续计算了,所以提出了填充的方法来方便网络的进一步加深。 其实填充的原因有两点&#xf…

Maven-构建工具

一、背景 开发者编写完成源码,还需要进行编译、测试、打包、部署等一系列操作。在一些小型项目中,还可能通过手动方式进行以上操作。但是在大型项目中,难以确定以上操作的顺序,而且会耗费更高的时间成本。 1.构建工具 构建工具…

AR眼镜硬件解决方案_AR/VR智能眼镜安卓主板芯片方案介绍

随着近两年来增强现实(AR)技术的逐渐成熟,采用MT8788芯片解决方案的AR眼镜已经问世。众所周知,AR技术可以帮助开发者打造一个既强大而又实用的混合现实世界,将虚拟与真实世界相结合。 据了解,MT8788芯片采用了多芯片分布式处理系统…

【GEE】7、利用GEE进行遥感影像分类【随机森林分类】

1简介 在本模块中,我们将讨论以下概念: 监督和非监督图像分类之间的区别。Google Earth Engine 提供的各种分类算法的定义和应用。如何使用 randomForest 设置和运行分类,以 aspen 存在和不存在作为示例数据集。 2背景 图像分类 人类自然倾向…

AlGaN/GaN HEMT 中缓冲区相关电流崩溃的缓冲区电位模拟表征

标题:Characterization of Buffer-Related Current Collapse by Buffer Potential Simulation in AlGaN/GaN HEMTs 来源:IEEE TRANSACTIONS ON ELECTRON DEVICES (18年) 摘要 - 在本文中,通过使用脉冲 I-V 测量和二维漂移扩散模拟研究了 Al…

IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Maven核心概念

一.Maven的POM POM全称&#xff1a;Project Object Model【项目对象模型】&#xff0c;将项目封装为对象模型&#xff0c;便于使用Maven管理【构建】项目 pom.xml常用标签 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://m…

怎么将pdf转换成word?

怎么将pdf转换成word&#xff1f;将pdf文件转换成word是一件非常重要的转换技能&#xff0c;将pdf转换成word可以解决非常多的问题&#xff0c;总结起来主要有以下这些&#xff1a;编辑文本&#xff1a;① PDF文件通常是不可编辑的&#xff0c;而将其转换为Word格式后&#xff…

一图get招商局客户经营管理模式转型新成果

招商局集团为积极落实国务院国资委对标世界一流企业管理提升行动要求&#xff0c;以“第三次创业”和全面建成数字化招商局为指引&#xff0c;响应二级板块业务端客户管理信息化建设急迫需求&#xff0c;构建统一的客户经营管理平台。 为此&#xff0c;招商局集团选择纷享销客…

轻量封装WebGPU渲染系统示例<20>- 美化一下元胞自动机之生命游戏(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/GameOfLifePretty.ts 系统特性: 1. 用户态与系统态隔离。 2. 高频调用与低频调用隔离。 3. 面向用户的易用性封装。 4. 渲染数据(内外部相关资源)和渲染机制分离…

11月1日 mybatis入门

java程序与数据库对接端: jdbc 步骤固定, 代码固定, 大量重复代码 SQL写在代码中, 修改sql,需要重新编译代码, 动态sql, 手动拼接 结果集与java对象转换, java程序与前端对接端: javaWeb 手动获取请求参数, 需要手动进行数据转换 一个请求对应一个Servlet,造成Servlet类暴增…

js 高效生成连续递增的小数数组

简介 JavaScript 按照指定间隔生成连续递增的数组。 1. 循环生成 function generateIncrementalArray(start, end, step) {const result [];for (let i start; i < end; i step) {result.push(parseFloat(i.toFixed(1))); // 使用 toFixed() 方法限定小数位数}return r…

挑战100天 AI In LeetCode Day03(热题+面试经典150题)

挑战100天 AI In LeetCode Day03&#xff08;热题面试经典150题&#xff09; 一、LeetCode介绍二、LeetCode 热题 HOT 100-52.1 题目2.2 题解 三、面试经典 150 题-53.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站&#xff0c;提供各种算法和数据结构的题目&am…

C语言实现将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5

完整代码&#xff1a; // 将一个正整数分解质因数。例如&#xff1a;输入90,打印出902*3*3*5 #include<stdio.h> //定义全局变量&#xff0c;使i可以作用于函数的递归调用中 int i2;void func(int num){//递归结束条件&#xff0c;当这个数除以最后一个它的因子时&#…

掌动智能:功能测试及拨测主要功能

在企业中对于功能测试及拨测而言&#xff0c;用户只需提供应用包和产品文档&#xff0c;由资深测试专家设计并执行测试&#xff0c;覆盖核心场景&#xff0c;包含特定业务流程以及行业通用特殊场景&#xff0c;支持需求定制。 执行过程严格监控&#xff0c;依据应用功能和业务需…

提升设备可靠性:人工智能(AI)在设备维护中的应用

当今社会&#xff0c;人工智能&#xff08;AI&#xff09;已从遥不可及的概念转变为现实&#xff0c;并被广泛地讨论和应用。AI技术已经渗透到各个领域&#xff0c;包括工业领域的设备维护。在现代工业领域&#xff0c;设备可靠性是企业持续运营和保持竞争力的关键因素之一。随…

搭建嵌入式GDB调试环境以及VSCode+gdbserver 图形化调试

目录 1 搭建嵌入式gdb调试环境 1.1 交叉编译工具链自带的gdb和gdbserver 1.2 使用gdb进行嵌入式程序调试 1.2.1编写简单测试程序 1.2.2 gdb调试程序 1.3 源码编译gdb和gdbserver 1.3.1 下载gdb和gdbserver源码 1.3.2 编译gdb 1.3.3 移植gdbserver 2 VSCodegdbserver 图…

技术分享 | app自动化测试(Android)-- 属性获取与断言

断言是 UI 自动化测试的三要素之一&#xff0c;是 UI 自动化不可或缺的部分。在使用定位器定位到元素后&#xff0c;通过脚本进行业务操作的交互&#xff0c;想要验证交互过程中的正确性就需要用到断言。 常规的UI自动化断言 分析正确的输出结果&#xff0c;常规的断言一般包…

检测和排除Wi-Fi性能问题的工具

在监控 Wi-Fi 网络时&#xff0c;需要持续监控和分析各种 Wi-Fi 网络方面&#xff0c;包括信号强度和接入点正常运行时间&#xff0c;以避免遇到网络问题。Wi-Fi 分析器工具可帮助您轻松跟踪和分析无线网络的性能&#xff0c;管理员可以从不同的无线组件&#xff08;如WLC和接入…

mysql的备份和恢复

备份&#xff1a;完全备份 增量备份 完全备份&#xff1a;将整个数据库完整的进行备份 增量备份&#xff1a;在完全备份的基础之上&#xff0c;对后续新增的内容进行备份 备份的需求 1、在生产环境中&#xff0c;数据的安全至关重要&#xff0c;任何数据的都可能产生非常严重…

蛋白质中不同氨基酸chi角原子的one-hot表示

蛋白质中的"chi角"&#xff08;chi angle&#xff09;通常是指侧链自由旋转的二面角&#xff0c;用于描述氨基酸侧链中的旋转构象。侧链是氨基酸分子的一部分&#xff0c;它们附着在氨基酸主链上&#xff0c;并可以以不同的角度自由旋转。chi角用于描述侧链旋转的几何…