You need to enable JavaScript to run this app. 如何让Bot Framework机器人从XML或JSON文件中提取数据
优惠活动
大模型
产品
解决方案
定价
更多

如何让Bot Framework机器人从XML或JSON文件中提取数据

实现方案汇总

1. 直接读取本地JSON文件的实现方式

1.1 Bot Composer场景解决方案

Bot Composer没有可视化的文件添加操作入口,可通过手动操作实现读取:

  • 打开Composer项目对应的本地文件夹,将处理好的笑话JSON文件复制到/runtime/azurewebapp/目录(dotnet runtime场景)
  • 在Composer流程中添加「C#代码片段」动作,写入读取逻辑,示例代码如下:
using System.IO;
using Newtonsoft.Json.Linq;

// 读取JSON文件
var jsonPath = Path.Combine(System.AppContext.BaseDirectory, "你的笑话库文件名.json");
var jsonContent = File.ReadAllText(jsonPath);
// 解析后存入Composer全局变量,供后续流程调用
var jokeLib = JObject.Parse(jsonContent);
turn["jokeLibrary"] = jokeLib;
  • 后续需要调取笑话时,直接从turn.jokeLibrary中匹配提取对应内容即可。

1.2 C#版Bot Framework SDK场景解决方案

完全支持直接读取本地文件,无需额外对接第三方服务,步骤如下:

  • 将JSON文件放入C#项目根目录,右键点击文件→属性,设置「复制到输出目录」为「如果较新则复制」
  • 项目启动阶段一次性读取文件内容缓存到内存,避免每次请求都读取IO,示例代码如下:
// Program.cs服务注册阶段读取解析
var jokeJson = File.ReadAllText("jokes.json");
var jokeLibrary = JsonSerializer.Deserialize<JokeLibrary>(jokeJson);
// 注册为单例服务全局复用
builder.Services.AddSingleton(jokeLibrary);
  • 后续在Dialog或核心Bot逻辑中直接注入该JokeLibrary实例即可随时调用数据。

2. HTTP API对接说明

只有当你的笑话库需要高频更新、或者多机器人实例共享数据时,才需要单独搭建API服务。如果是固定笑话库、更新频率极低,直接读取本地JSON的性能和开发复杂度都远优于调用API,完全不需要额外搭建后端服务。

3. 优化建议

如果需要支持不重启更新笑话库,可以添加简单的文件变更监听逻辑,检测到JSON文件更新时自动重载内存中的笑话库数据即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 19:45:03