Node.js 如何将Dialogflow与我的discord机器人以及节点js中的上下文和后续意图集成在一起
我使用dialogflow制作了一个功能完善的聊天机器人,现在我想将它集成到我的discord机器人中。我观看了一段youtube视频,该视频只整合了意图,但我不知道如何处理上下文和后续意图Node.js 如何将Dialogflow与我的discord机器人以及节点js中的上下文和后续意图集成在一起,node.js,google-cloud-platform,discord,discord.js,dialogflow-es,Node.js,Google Cloud Platform,Discord,Discord.js,Dialogflow Es,我使用dialogflow制作了一个功能完善的聊天机器人,现在我想将它集成到我的discord机器人中。我观看了一段youtube视频,该视频只整合了意图,但我不知道如何处理上下文和后续意图 const Discord = require('discord.js'); const client = new Discord.Client(); require('dotenv').config(); const token = process.env.DISCORD_TOKEN; proces
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 Discord=require('Discord.js');
const client=new Discord.client();
require('dotenv').config();
const token=process.env.DISCORD_token;
process.env.GOOGLE_应用程序_凭据=`${process.env.PWD}/${process.env.REPL_SLUG}/config.json`
const dialogflow=require('@googlecloud/dialogflow');
const uuid=require('uuid');
client.once('ready',()=>console.log('ready!'));
异步函数replyMsg(textMsg){
projectId=process.env.PROJECT\u ID;
//给定会话的唯一标识符
const sessionId=uuid.v4();
//创建新会话
const sessionClient=new dialogflow.sessionClient();
const sessionPath=await sessionClient.projectAgentSessionPath(
投射的,
会话ID
);
//文本查询请求。
常量请求={
会话:会话路径,
查询输入:{
正文:{
//要发送到dialogflow代理的查询
text:textMsg,
//客户使用的语言(美国英语)
语言代码:“en US”,
},
},
};
//发送请求并记录结果
const responses=wait sessionClient.detectinent(请求);
控制台日志(“检测到的意图”);
常量结果=响应[0]。查询结果;
log(`Query:${result.queryText}`);
log(`Response:${result.fulfillmentText}`);
如果(结果、意图){
log(`Intent:${result.Intent.displayName}`);
}否则{
log(`No intent matched.`);
}
返回wait result.fulfillmentText;
}
client.on('消息',(消息)=>{
console.log(message.author.bot);
如果(!message.author.bot){
if(message.indications.has('784734506812833792'))
replyMsg(message.content)。然后((res)=>{
控制台日志(res);
message.channel.send(“+”+res);
});
}
});
client.login(令牌);
而不是这个
const sessionId = uuid.v4();
对上下文和后续意图使用用户智能会话
像
const sessionId = Userid;