node调用通义千问乱码问题


const url = 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation';
const apiKey = '';
const axios = require('axios');

const data = {
  model: 'qwen-turbo',
  input: {
    messages: [
      {
        role: 'system',
        content: '你是达摩院的生活助手机器人。',
      },
      {
        role: 'user',
        content: '你好,哪个公园距离我最近?',
      },
    ],
  },
  parameters: {},
};

axios
  .post(url, JSON.stringify(data), {
    headers: {
      Authorization: `Bearer ${apiKey}`,
      'Content-Type': 'application/json',
    },
  })
  .then((response) => {
    // The response data should now be correctly decoded as UTF-8
    console.log(123);
    console.log(response);
  })
  .catch((error) => {
    console.error(error);
  });

这段代码正常返回200状态,但返回体乱码,尝试很多中方法都没有解决。

后来使用fetch发起请求返回正常,对比了一下,猜测是fetch请求返回体自带一个转json的方法,具体搞不懂了


const url = 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation';
const apiKey = '';
const data = {
  model: 'qwen-turbo',
  input: {
    messages: [
      {
        role: 'system',
        content: '你是达摩院的生活助手机器人。',
      },
      {
        role: 'user',
        content: '你好,哪个公园距离我最近?',
      },
    ],
  },
  parameters: {},
};

const headers = {
  Authorization: `Bearer ${apiKey}`,
  'Content-Type': 'application/json',
};

fetch(url, {
  method: 'POST',
  headers: headers,
  body: JSON.stringify(data),
})
  .then((response) => response.json())
  .then((responseData) => {
    console.log(responseData);
  })
  .catch((error) => {
    console.error(error);
  });

首先,Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,它可以让我们在服务器端运行JavaScript代码。而"通义千问"是一个API服务,提供了各种自然语言处理功能。 要在Node.js中使用"通义千问"API,首先需要注册一个账号并获取API密钥。然后,可以使用HTTP模块(如axios或node-fetch)向"通义千问"的API发送HTTP请求,并在请求中包含必要的参数(例如问题文本、API密钥等)。接着,解析API返回的响应数据,获取所需的结果。 下面是一个使用axios库发送GET请求的示例代码: ```javascript const axios = require('axios'); const apiKey = 'YOUR_API_KEY'; const question = '你要查询的问题'; axios.get('https://api.turingapi.com/openapi/solution/query', { params: { key: apiKey, question: question } }) .then(response => { // 解析响应数据,获取结果 const result = response.data.result; console.log(result); }) .catch(error => { console.error(error); }); ``` 在上面的示例中,我们首先将API密钥和问题文本保存在变量中。然后,使用axios库发送GET请求到"通义千问"的查询API,并传递必要的参数。最后,解析响应数据并打印结果。 需要注意的是,以上示例中的URL和参数仅供参考,请根据实际情况进行调整。 相关问题: 1. 如何在Node.js中发送POST请求来使用"通义千问"API? 2. 除了问题查询之外,"通义千问"API还支持哪些功能? 3. 如何处理"通义千问"API返回的错误信息? 4. 有没有其他类似的自然语言处理API可以在Node.js中使用?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值