nodejs后端连接openai

这里写两种方式连接

 一、创建OpenAI账号

创建一个 OpenAI 帐户并注册 API 密钥。你可以在 OpenAI 的网站上进行注册。→传送门

二、安装axios 库

安装 Node.js 的 axios 库,它是一个用于发起 HTTP 请求的库。你可以使用 npm 进行安装,命令如下:

npm install axios

三、导入 axios 库

创建一个 Node.js 文件,并在文件中导入 axios 库。

const axios = require('axios');

第一种

app.post("/chart", async (req, res) => {
  // console.log('=================== req', req.body)
  var data = JSON.stringify({
    "model": "gpt-3.5-turbo",
    "messages": req.body.messages //messages就是你发的消息是数组形式
  });
  var config = {
    method: 'post',
    url: 'https://api.openai-proxy.com/v1/chat/completions',
    headers: {
      'Authorization': 'Bearer YourKey',
      'Content-Type': 'application/json',
    },
    data: data
  };
  axios(config)
    .then(function (response) {
      // console.log(JSON.stringify(response.data));
      res.send({ code: 200, msg: response.data })
    })
    .catch(function (error) {
      console.log(error);
    });
})

 如果要让chartgpt实现有‘’连续对话‘’的话就需要把之前的对话都跟着messages一起发过去例如

let messages = ref<msgInterface[]>([
     { role: 'user', content: '您好?' },
     { role: 'assistant', content: '您好!请问您有什么问题需要我回答吗?' },
     { role: 'user', content: '你知道射洪市吗' },
     {
         role: 'assistant',
         content: '是的,射洪市位于中国四川省遂宁市下辖,是一个历史文化名城,也是四川省的一个农业大县。'
     },
     { role: 'user', content: '你上一句话说的是什么' },
     {
         role: 'assistant',
         content: '我上面说的是射洪市的基本信息,包括该市所属的行政区划、历史文化及经济特色。'
     },
])

其中的role是user代表自己的话 assistant代表chartgpt以此来区分

需要注意的是这样虽然可以实现“连续对话”,但势必造成每次发送的消息内容会非常多,而OpenAI是按字数计费的,所以你需要根据你口袋里的钞票去衡量每次应该携带几条聊天记录比较合适。

第二种

编写一个函数来调用 OpenAI API。这需要使用 API 密钥和 API 终端点。

async function callOpenAI() {
  const prompt = "Hello, how are you?";
  const engine = "text-davinci-002";
  const maxTokens = 5;

  const response = await axios.post(
    'https://api.openai-proxy.com/v1/engines/' + engine + '/completions',
    {
      prompt: prompt,
      max_tokens: maxTokens
    },
    {
      headers: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer ' + YOUR_API_KEY
      }
    }
  );

  console.log(response.data.choices[0].text);
}

测试 OpenAI API

callOpenAI();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值