出于某种原因,当使用对话流检测意图googleapi时,即使其他api(如listIntents)工作,我也会不断获得默认的回退意图



有人遇到过这个问题吗?

我确信dialogflow连接是有效的,因为列出的意图是有效的(intentclient . listintents (request)),它给了我从我的dialogflow代理返回所有的意图。所以看起来凭证应该没问题。

任何帮助都将是非常感激的。由于

const dialogflow = require('@google-cloud/dialogflow').v2;
const uuid = require('uuid');
const sessionId = uuid.v4();
const sessionClient = new dialogflow.SessionsClient({ keyFilename: '..........' });
const sessionPath = sessionClient.projectAgentSessionPath(
projectId,
sessionId
);

const query = 'What are the pets rules';

async function detectIntentForQuestion() {
// The text query request.
const request = {
session: sessionPath,
queryInput: {
text: {
text: query,
languageCode: 'en-US',
},
},
queryParams: {
sentimentAnalysisRequestConfig: {
analyzeQueryTextSentiment: true,
},
},
};
// 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.');
}
if (result.sentimentAnalysisResult) {
console.log('Detected sentiment');
console.log(
`  Score: ${result.sentimentAnalysisResult.queryTextSentiment.score}`
);
console.log(
`  Magnitude: ${result.sentimentAnalysisResult.queryTextSentiment.magnitude}`
);
} else {
console.log('No sentiment Analysis Found');
}
};

您将languageCode: 'en-US'设置为语言。你的代理支持这种语言吗?如果使用不同的语言设置(例如。(西班牙语),那么它只会给你回退意图响应。

你可以做的另一件事是检查https://dialogflow.cloud.google.com/#/agent/<your agent name>/history,在你最后的互动中,你点击代理响应中的3个点,然后去Raw interaction log。在这里,您可以看到代理从代码中获得的信息,代理如何解释这些信息以及它如何回答您。

最新更新