You need to enable JavaScript to run this app. 如何使用C#解析QnAMaker响应以生成卡片或展示图片
优惠活动
大模型
产品
解决方案
定价
更多

如何使用C#解析QnAMaker响应以生成卡片或展示图片

QnAMaker 富文本响应解析的官方支持与实现路径

官方提供的C#解析能力

微软没有针对QnAMaker单独开发专属的富文本解析类,但在官方Bot技术栈内有成熟的内置组件可以直接使用:

  • Bot Framework SDK 内置了完整的Markdown渲染与解析逻辑,全流程支持识别QnAMaker返回内容里的普通文本、超链接、内嵌图片格式,原生不需要手动编写解析规则。
  • SDK底层依赖的Markdig库是微软官方开源维护的高性能C# Markdown解析器,是所有Bot相关组件处理Markdown内容的通用实现,完全可以脱离Bot框架独立在其他C#项目中使用。

可直接落地的实现方法

  1. 如果开发场景基于Bot Framework技术栈
    常规展示场景下不需要手动解析QnAMaker返回的原始字符串,SDK会自动把Markdown格式的内容转换成对应渠道可展示的交互元素;如果需要提取结构化内容来拼接自定义交互卡片,直接调用SDK暴露的Markdown解析接口,就能把原始响应拆成独立的内容块:
    • 普通文本块:提取纯展示文案
    • 链接块:提取按钮展示文本与跳转地址
    • 图片块:提取图片描述与资源地址
  2. 如果是单独调用QnAMaker接口、没有引入全量Bot SDK
    可以直接使用Markdig类库,对QnAMaker返回的字符串做语法树解析,遍历树节点时过滤出链接、图片类型的节点,即可拿到结构化的内容。
    这种解析方式能避免自己写正则时碰到的格式转义、特殊字符嵌入等边界问题,适配绝大多数在QnAMaker后台配置的富文本格式。

针对你当前收到的QnAMaker响应,通过上述方法可以稳定拆分出三类独立内容:

  • 基础展示文本:A new way to interact
  • 可交互链接:显示文本为 FIND OUT MORE
  • 可展示图片:对应内容中的内嵌图片资源
    拆分完成后就可以自由组合成自适应卡片、英雄卡片等自定义交互组件,不需要额外处理格式兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 11:57:01