国内调用ChatGpt openai官方node.js openai使用篇章

看官网写的这么简单,看其他博主,几行代码就成功请求到数据

但是我就会报Error connect 或者是404,405,400都有过

在我快要放弃时,自己捣鼓捣鼓竟然还是弄出来了,想哭

首先你得有外网代理,和openai 的apikey,不然这篇就不用看了

node.js部分

创建项目

1. 创建一个server文件夹

2.执行命令

 npm init

安装包

package.json里直接复制以下代码就行

{
  "name": "server",
  "version": "1.0.0",
  "description": "",
  "type": "module",
  "scripts": {
    "server": "nodemon server"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "axios": "^1.6.8",
    "cors": "2.8.5",
    "dotenv": "16.0.3",
    "express": "4.18.2",
    "nodemon": "2.0.20",
    "openai": "^3.0.0"
  }
}

 安装包说明

"cors": "^2.8.5"

处理跨域请求

"dotenv": "^16.4.5"

这对于管理项目的配置和敏感信息(如数据库连接字符串、API密钥等)

"express": "^4.19.2",

Express 是一个流行的 Node.js Web 框架,用于构建 Web 应用程序和 API。

它提供了一组强大的功能和工具,简化了在 Node.js 中构建 Web 应用程序的过程,包括路由、中间件、模板引擎等。

"nodemon": "^3.1.0"

用于监视文件的更改并自动重启 Node.js 应用程序

"openai": "^4.33.0"

OpenAI 公司提供的 Node.js SDK 或 API

然后执行命令

npm install

创建server.js文件

源代码

import express from 'express'
import * as dotenv from 'dotenv'
import cors from 'cors'
import { Configuration, OpenAIApi } from 'openai'

dotenv.config()

const configuration = new Configuration({
  apiKey: process.env.OPENAI_API_KEY, 
  baseOptions:{
    proxy:{
      host:'127.0.0.1',// 这里在window上搜索代理可查看自己的代理地址和端口,一般应该是一样的
      port:7890
    }
  }
});

const openai = new OpenAIApi(configuration);

const app = express()
app.use(cors())
app.use(express.json())

app.get('/', async (req, res) => {
  res.status(200).send({
    message: 'Hello from MY-OPENAI!'
  })
})

app.post('/', async (req, res) => {
  try {
    const prompt = req.body.prompt;

    const response = await openai.createChatCompletion({
      messages: [{ role: "user", content: `${prompt}` }],
      model: "gpt-3.5-turbo",
      logprobs: true,
      top_logprobs: 2,
    });

    res.status(200).send({
      bot: response.data.choices[0].message.content
    });

  } catch (error) {
    console.error(error)
    res.status(500).send(error || 'Something went wrong');
  }
})

app.listen(5000, () => console.log('AI server started on http://localhost:5000'))

查看代理设置

OPENAI_API_KEY的设置

建立 .env文件

OPENAI_API_KEY="你的openai key"

或者是在电脑上高级设置里系统变量中新建一个变量和值

以下就是整个文件的样子

执行

npm run server

查看是否运行成功

客户端

  OK,node.js相关代码完成,可以再来试试客户端来请求locallhost:5000,试试

以下是客户端请求接口方法

function sendOpenai(){
  const response = await fetch('http://localhost:5000',{
    method:'POST',
    headers:{
      'Content-Type':'application/json'
    },
    body:JSON.stringify({prompt:'你问的问题'})
  })

  if(response.ok){
    const data = await response.json()
    const parsedData = data.bot.trim()
    console.log('parsedData',parsedData)
  }else{
    const err = await response.text()
    alert(err);
  }

}

具体页面展示等,可以参考一下别人的源代码

project_openai_codex/server/server.js at main · adrianhajdin/project_openai_codex · GitHubBuild and Deploy Your Own ChatGPT AI Application That Will Help You Code - project_openai_codex/server/server.js at main · adrianhajdin/project_openai_codexicon-default.png?t=N7T8https://github.com/adrianhajdin/project_openai_codex/blob/main/server/server.js

效果图

  • 21
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值