近期公司大佬让我调研一下ChatGPT,虽然网络上已经热火朝天了,感觉很多人都在应用它,但是ChatGPT 对大多数人来说依旧是一个很陌生的东西,对我来说也是。只能一点点的去了解去学习,浅显的先从账号注册、接口调用来看一看它的使用,账号注册的话网络上已经存在很多的文档,我这边就从官方文档中的 快速开始 提供的 Node版本代码开始, 解决最开始的问题, 这里提醒大家 科学上网。
既然是Node版本的代码,Node环境必不可少,这里就不再赘述。在准备好开发环境后,我们从代码仓库克隆下官方的代码
git clone https://github.com/openai/openai-quickstart-node.git
克隆完成,进入代码目录后,复制一份.env.exmaple文件,重命名为.env,将账号中生成的API Key 复制粘贴至.env文件,然后安装好依赖,就可以启动应用了
npm install
npm run dev
浏览器打开http:localhost:3000就可以访问这个示例应用了。但是在没有修改代码的情况下我们仍然会遇到一些问题。
Error with OpenAI API request: connect ETIMEDOUT XXXXXXXXX
如果遇到这个问题,我们需要拿出我们的科学上网小工具,在科学上网后我们也仍然会遇到这个问题,这是因为Node版的OpenAIApi在调用服务时时基于axios去调用的,不会自动走代理的,这个时候我们需要在请求的时候,加上代理设置,就是代码中的如下位置
const completion = await openai.createCompletion({model: "text-davinci-003",prompt: generatePrompt(animal),temperature: 0.6,});
修改代码为
const completion = await openai.createCompletion({model: "text-davinci-003",prompt: generatePrompt(animal),temperature: 0.6,},{proxy:{host: '127.0.0.1', // 代理服务器的地址port: 7890 // 代理服务器的端口}});
在win10中我们可以在网络设置中看到这个配置
修改到这一步我们的代码在科学上网的情况下就能够访问到api.openai.com,不过在调用时我们依然会遇到问题,接口提示我们需要通过https的形式调用接口。
The OpenAI API can only be accessed over HTTPS. You should access https://api.openai.com rather than the current URL.
到这里我们引入一个依赖包 tunnel 将我们调用时设置代理的方式修改一下就可以正常访问了,关键代码如下
import tunnel from 'tunnel';const agent = tunnel.httpsOverHttp({proxy: {host: '127.0.0.1',port: 7890,}
});
const completion = await openai.createCompletion({model: "text-davinci-003",prompt: generatePrompt(animal),temperature: 0.6,}, {httpsAgent: agent});
到这一步,我们的demo就能够完全正常的使用了。
希望这编文章,能够给大家调用入门的时候提供帮助 。
本文链接:https://my.lmcjl.com/post/1177.html
4 评论