随着chatGPT的出现,应该有好多人已经去尝试和人工智能对话了,AI云秘书就是这样的产品,应时而生,逐渐火了起来。我要告诉朋友们的是:你也可以自己亲手打造一个自己专属的AI云秘书。
下面是如何使用HBuilderX的mui写AI云秘书的完整步骤:
npm install express --save
8.编写Node.js代码:在项目目录下创建一个名为server.js
的文件,用于启动服务器和处理HTTP请求。通过调用AI接口来获取机器人的回复,并使用Socket.io来实现WebSocket连接。
9.运行服务器:在命令行中切换到项目目录,执行以下命令来启动服务器:
node server.js
10.打开浏览器:在浏览器中访问
http://localhost:3000
即可使用AI云秘书了。
下面是用HBuilderX 的mui写AI云秘书完整版的示例代码:
1. HTML部分
AI云秘书
AI云秘书
-
您好,我是AI云秘书,有什么可以帮助您的?
.chat-item {
position: relative;
}
.chat-avatar {
width: 30px;
height: 30px;
position: absolute;
top: 0px;
}
.chat-left .chat-avatar {
left: 0px;
}
.chat-right .chat-avatar {
right: 0px;
}
mui.init();
// 连接到AI云秘书
const socket = io('http://localhost:3000');
socket.on('connect', () => {
console.log('已连接到AI云秘书。');
});
socket.on('disconnect', () => {
console.log('与AI云秘书的连接已断开。');
});
// 发送消息到AI云秘书
function sendMessage(message) {
const chatContent = document.getElementById('chat-content');
const inputMessage = document.getElementById('input-message');
const sendButton = document.getElementById('send-button');
if (message.trim().length === 0) {
inputMessage.focus();
return;
}
mui.ajax('http://localhost:3000/ai', {
data: {
message: message
},
dataType: 'json',
type: 'post',
success: function(data) {
if (data.type === 'text') {
addAIMessage(data.text);
} else if (data.type === 'image') {
addAIMessage(``);
} else {
addAIMessage('抱歉,我不知道如何回答您的问题。');
}
inputMessage.value = '';
inputMessage.focus();
chatContent.scrollTop = chatContent.scrollHeight - chatContent.offsetHeight;
},
error: function(xhr, type, errorThrown) {
mui.toast('发送失败,请检查网络连接。');
}
});
}
// 添加AI消息到聊天记录
function addAIMessage(message) {
const chatContent = document.getElementById('chat-content');
const chatItem = document.createElement('li');
chatItem.className = 'mui-table-view-cell mui-media chat-item chat-left';
chatItem.innerHTML = `
${message}
`;
chatContent.appendChild(chatItem);
}
// 添加用户消息到聊天记录
function addUserMessage(message) {
const chatContent = document.getElementById('chat-content');
const chatItem = document.createElement('li');
chatItem.className = 'mui-table-view-cell mui-media chat-item chat-right';
chatItem.innerHTML = `
${message}`;
chatContent.appendChild(chatItem);
}
// 处理发送按钮点击事件
document.getElementById('send-button').addEventListener('tap', function() {
const message = document.getElementById('input-message').value.trim();
addUserMessage(message);
sendMessage(message);
4.Node.js部分
为了完成完整的AI云秘书,我们还需要一个后端来处理用户发送过来的消息,并返回机器人的回复。这里使用Node.js和Express框架来完成。
首先,在项目目录下创建一个名为server.js
的文件,用于启动服务器和处理HTTP请求:
const express = require('express');
const app = express();
const server = require('http').Server(app);
const io = require('socket.io')(server);
const port = 3000;
// 启动服务器
server.listen(port, () => {
console.log(`服务器已启动,监听端口${port}。`);
});
// 处理静态资源
app.use(express.static(__dirname + '/public'));
// 处理AI请求
app.post('/ai', (req, res) => {
const message = req.body.message;
// 调用AI接口来获取机器人回复
// 这里省略具体实现
const response = {
type: 'text',
text: '你好,我是AI云秘书。'
};
res.json(response);
});
// 处理WebSocket连接
io.on('connection', (socket) => {
console.log(`客户端[${socket.id}]已连接。`);
socket.on('disconnect', () => {
console.log(`客户端[${socket.id}]已断开连接。`);
});
});
然后,在项目目录下的package.json
文件中添加依赖项:
{
"name": "ai-chatbot",
"version": "1.0.0",
"description": "AI聊天机器人",
"main": "server.js",
"dependencies": {
"express": "^4.17.1",
"socket.io": "^4.2.0"
}
}
接着,在命令行中执行npm install
安装依赖项。
最后,启动服务器:
node server.js
现在,您就可以在浏览器中访问
http://localhost:3000
来使用AI云秘书了。