You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js遍历JSON数组填充变量及Dialogflow训练短语导入问题咨询

问题根因

你读取到的inputPhrases是完整的JSON文件对象,训练短语数组存放在它的Training_Phrases属性下。原代码额外用[]把inputPhrases包裹后,生成的trainingPhrases_Parts是嵌套结构[完整JSON对象],遍历只会拿到一个元素,就会把多条短语合并为单条导入。

修复后的代码

async function createIntent(inputPhrases)  { 
      const displayName = ('Intent: ' + intentName);
      // 直接从JSON对象中取训练短语数组,无需额外嵌套
      const trainingPhrases_Parts = inputPhrases.Training_Phrases;
      const trainingPhrases = [];
      trainingPhrases_Parts.forEach(phraseText => {
         const part = {
           text: phraseText,
         };
         // 每个短语生成一个独立的训练短语对象
         const trainingPhrase_con = {
           parts: [part],
         };
         trainingPhrases.push(trainingPhrase_con);
      });
      // 构造Intent
      const intent = {
         displayName: displayName,
         trainingPhrases: trainingPhrases,
         messages: [message], 
      };
      // 后续原有调用Dialogflow接口的逻辑保持不变即可
}

核心修改点

  • 删除了对inputPhrases的额外数组嵌套操作,直接读取inputPhrases.Training_Phrases拿到所有训练短语的原生数组
  • 遍历过程中每个元素对应单条训练短语文本,分别生成独立的训练短语对象推入数组,即可实现多条短语独立导入

内容的提问来源于stack exchange,提问作者McD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 00:12:01