在node环境epxress中使用讯飞ai接口进行二次封装,通过ai对话回复提取,获得ai提取的文章摘要
本文章只是简单使用,更复杂功能比如调用星火API制作对话机器人可以查看文档,对于初次使用星火AI接口或许有帮助
首先需要创建一个应用
然后点击应用进入之后,可以查看使用,我使用的是spark lite免费便宜,对于个人项目来说是足够的
在点击应用选择要使用的ai接口(这里我选取的是spark Lite )右下角可以看到web的接口文档
文档给出的示例是基于python环境,而本项目后端是基于node,采用express框架
文档采用流式返回,这里我进行了简化并未采取流式返回
通过阅读文档可知我们需要返回给api接口的数据需要authorization,然后对话内容需要设置message设置role为user则content的内容是使用者的提问
下面是我的示例
router/ai.js
const express = require('express');
const axios = require('axios');
const router = express.Router();
const bodyParser = require('body-parser');
// 定义一个路由来处理 POST 请求
router.post('/api/summary', async (req, res) => {
const { question } = req.body;
console.log('Received request body:', req.body); // 打印接收到的请求体
console.log('Received question:', question); // 打印接收到的 question
if (!question) {
return res.status(400).json({ error: '没有question' });
}
const url = "https://spark-api-open.xf-yun.com/v1/chat/completions";
const data = {
max_tokens: 4096,
top_k: 4,
temperature: 0.5,
messages: [
{
role: "user",
content: question
}
],
model: "lite",
stream: false // 不需要流式响应
};
const header = {
Authorization: "your_authoriztion"
};
try {
const response = await axios.post(url, data, { headers: header });
// 返回 API 的响应
res.json(response.data);
} catch (error) {
console.error(error);
res.status(500).json({ error: 'Internal Server Error' });
}
});
module.exports = router;
app.js
const express = require('express')
const app = express()
const port = 3000
// 使用 Express 内置的中间件来解析 JSON 请求体
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// 导入ai模块并注册
const aiRouter = require('./router/ai.js')
app.use('/', aiRouter)
app.listen(port, () => console.log(`http://127.0.0.1:${port}!`))
以下是vue3前端调用
import request from '@/utils/request.js';
// 调用ai传输接口
export const aiPostService = (question) => request.post('http://127.0.0.1:3000/api/summary', {
question: question
})