gpt4 book ai didi

javascript - 使用dialogflow将多个参数写入firestore数据库

转载 作者:太空宇宙 更新时间:2023-11-04 01:18:58 24 4
gpt4 key购买 nike

我创建了一个对话流代理来注册用户的一些信息,并且我需要为每个用户将这些答案编写为同一文档,但我编写的代码是将每个答案写入单个文档而不是所有文档不同的是,日志没有显示任何错误,所以我认为这是一个我无法识别的逻辑问题......

index.js:

'use strict';

const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const {Card, Suggestion} = require('dialogflow-fulfillment');
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();

process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements

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 cadastroHandler(agent) {
let nome = agent.parameters.nome ;
db.collection("cadastros").add({ nome: nome });

let estado = agent.parameters.estado ;
db.collection("cadastros").add({ estado: estado });

let cidade = agent.parameters.cidade ;
db.collection("cadastros").add({ cidade: cidade });

let coord = agent.parameters.coord ;
db.collection("cadastros").add({ coord: coord });

let wppcoord = agent.parameters.wppcoord ;
db.collection("cadastros").add({ wppcoord: wppcoord });

let emailcoord = agent.parameters.emailcoord ;
db.collection("cadastros").add({ emailcoord: emailcoord });

let area = agent.parameters.area ;
db.collection("cadastros").add({ area: area });

agent.add(`cadastro concluido`);
}

function fallback(agent) {
agent.add(`I didn't understand`);
agent.add(`I'm sorry, can you try again?`);
}


let intentMap = new Map();
intentMap.set('cadastro', cadastroHandler);
intentMap.set('Default Fallback Intent', fallback);
// intentMap.set('your intent name here', yourFunctionHandler);
// intentMap.set('your intent name here', googleAssistantHandler);
agent.handleRequest(intentMap);
});

每个参数都会以相同的“cadastro”意图按顺序向用户询问,并作为单独的参数登录

最佳答案

将您的功能更改为此

function cadastroHandler(agent) {
let { nome, estado, cidade, coord, wppcoord, emailcoord, area } = agent.parameters;
db.collection("cadastros").add({
nome: nome,
estado: estado,
cidade: cidade,
coord : coord ,
wppcoord : wppcoord ,
emailcoord: emailcoord ,
area :area
});

agent.add(`cadastro concluido`);
}

关于javascript - 使用dialogflow将多个参数写入firestore数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59969241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com