Node.js 如何将Dialogflow与我的discord机器人以及节点js中的上下文和后续意图集成在一起

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

我使用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 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;