有人遇到过这个问题吗?
我确信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
。在这里,您可以看到代理从代码中获得的信息,代理如何解释这些信息以及它如何回答您。