我正在尝试从响应对象获取会话 ID,但这是一种有效的方法,还是还有其他可能获取会话 ID 或会话对象?
例如:request.body.session
:projects/coffee-shop/agent/sessions/e6eb1812-9c3f-23fa-b590-f1656ee9a56e
如何获取确切的 ID:e6eb1812-9c3f-23fa-b590-f1656ee9a56e
而不是路径。 或如何在路径中获取会话对象projects/coffee-shop/agent/**sessions**/e6eb1812-9c3f-23fa-b590-f1656ee9a56e
是的,您可以从 WebhookClient 的代理实例中获取会话 ID:
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
console.log('Dialogflow Request body: ' + JSON.stringify(request.body));
function welcome(agent) {
agent.add(`Welcome to my agent!`);
let sessionId = agent.session;
}
let intentMap = new Map();
intentMap.set('Default Welcome Intent', welcome);
agent.handleRequest(intentMap);
});
假设我们在变量req
中有请求对象,我们可以使用以下 python 代码:
session_path = req['session']
它将打印会话对象路径:
项目/咖啡店/代理/会话/E6EB1812-9C3F-23FA-B590-F1656EE9A56E
要获得确切的 ID,您只需将其与/
拆分并获取列表的最后一个元素
session = req['session'].split('/')[-1]
它将打印确切的会话 ID:
E6EB1812-9C3F-23FA-B590-F1656EE9A56E