如何解决如何将 Dialogflow 以及 Node js 中的上下文和后续意图集成到我的 Discord 机器人中
我使用 dialogflow 制作了一个功能齐全的聊天机器人,现在我想将它集成到我的 Discord 机器人中。我关注了一个仅集成了意图的 YouTube 视频,但我不知道如何处理上下文并跟进意图。
const Discord = require('discord.js');
const client = new Discord.Client();
require('dotenv').config();
const token = process.env.DISCORD_TOKEN;
process.env.GOOGLE_APPLICATION_CREDENTIALS = `${process.env.PWD}/${process.env.REPL_SLUG}/config.json`
const dialogflow = require('@google-cloud/dialogflow');
const uuid = require('uuid');
client.once('ready',() => console.log('ready!'));
async function replyMsg(textMsg) {
projectId = process.env.PROJECT_ID;
// A unique identifier for the given session
const sessionId = uuid.v4();
// Create a new session
const sessionClient = new dialogflow.SessionsClient();
const sessionPath = await sessionClient.projectAgentSessionPath(
projectId,sessionId
);
// The text query request.
const request = {
session: sessionPath,queryInput: {
text: {
// The query to send to the dialogflow agent
text: textMsg,// The language used by the client (en-US)
languageCode: 'en-US',},};
// Send request and log result
const responses = await sessionClient.detectIntent(request);
console.log("Detected intent");
const result = responses[0].queryResult;
console.log(`Query: ${result.queryText}`);
console.log(` Response: ${result.fulfillmentText}`);
if (result.intent) {
console.log(` Intent: ${result.intent.displayName}`);
} else {
console.log(` No intent matched.`);
}
return await result.fulfillmentText;
}
client.on('message',(message) => {
console.log(message.author.bot);
if (!message.author.bot) {
if (message.mentions.has('784734506812833792'))
replyMsg(message.content).then((res) => {
console.log(res);
message.channel.send("<@" + message.author.id + ">" + ' ' + res);
});
}
});
client.login(token);
解决方法
代替这个
const sessionId = uuid.v4();
将用户智能会话用于上下文并跟进意图 喜欢...
const sessionId = Userid;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。