0

我想知道是否有一种方法可以跟踪意图的上下文。我知道你可以使用前一个意图的输出上下文作为后续意图的输入上下文。但这意味着我还必须跟踪寿命。有没有别的办法???

var context = [];

async function TextRecognition(queryText) {
    const sessionId = uuid.v4();


    const sessionPath = sessionClient.sessionPath(projectId, sessionId);

    // The text query request.
    const request = {
        session: sessionPath,
        queryInput: {
            text: {
                // The query to send to the dialogflow agent
                text: queryText,
                // The language used by the client (en-US)

                languageCode: 'en-US',
            },
        },
    };
    if (contextList !== null && contextList.length !== 0) {
        console.log(contextList);
        request.queryParams = {
            contexts: context,
        };
    }

    const responses = await sessionClient.detectIntent(request);
    const result = responses[0].queryResult;
    if (result.intent) {
        if (typeof result.outputContexts[0] !== 'undefined') {
            result.outputContexts.forEach(context => {
                context.push(context);
            });
        }

        return result.fulfillmentText;
    } else {
        console.log(`No intent matched.`);
    }
}
4

1 回答 1

0

找到了答案 :) 首先没有问题,只需确保为每个客户端创建 sessionid,您不需要跟踪任何对话流程为您做的事情:p

于 2019-08-06T05:30:30.420 回答