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

Bot Builder v4 Python SDK中Adaptive Cards的Action.Submit联动Input.Text异常

排查Adaptive Cards Submit操作触发502错误的方向

我来帮你梳理几个针对Bot Builder v4 Python SDK + Web Chat环境的排查要点,都是这类问题的常见诱因:

  • 检查Submit Payload的解析逻辑
    先确认Adaptive Card里Action.Submit的data字段结构和后端代码的解析逻辑匹配。比如你在Card里定义了{"feedback": "{{inputText.value}}"},那在Python的处理函数里,要确保是从turn_context.activity.value.get('feedback')获取值,而不是拼写错误的字段名。另外,建议在处理代码里打印turn_context.activity.value的内容,看看实际接收到的payload是否符合预期——如果解析时出现KeyError这类未捕获的异常,会导致Bot服务返回错误,进而被Web Chat网关转换成502。

  • 排查Bot服务的异常与日志
    502本质是网关没收到Bot的有效响应,大概率是Bot服务抛出了未处理的异常。先检查Bot的运行状态:本地测试的话用ngrok暴露端口,确认Web Chat的请求能到达Bot;如果是部署后的服务,查看服务的日志(比如Azure App Service的日志),找有没有报错堆栈信息,比如Card渲染、payload处理时的异常。

  • 验证Card版本与Web Chat兼容性
    有时候Adaptive Card的版本和Web Chat的支持度不匹配也会出问题。比如你用了高版本Card的新特性,但Web Chat还没兼容,可能导致Submit事件的格式异常。可以尝试把Card的$schema换成稳定版(比如https://adaptivecards.io/schemas/adaptive-card.json),或者对比Web Chat官方文档里的Card示例,调整你的Card结构。

  • 检查Bot端点与认证配置
    确认Bot的Messaging Endpoint配置正确,Web Chat使用的密钥或令牌能和Bot正常认证。如果认证失败,Bot会拒绝请求,网关就返回502。本地测试时,如果跳过了MicrosoftAppCredentials的配置,要确保Web Chat的配置也允许匿名访问;部署环境下,要保证App ID和密码正确配置在Bot服务里。

  • 用极简Card做对比测试
    先写一个最简化的测试Card:

    {
      "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
      "type": "AdaptiveCard",
      "version": "1.0",
      "body": [
        {
          "type": "Input.Text",
          "id": "feedbackInput",
          "placeholder": "Enter your feedback"
        }
      ],
      "actions": [
        {
          "type": "Action.Submit",
          "title": "OK",
          "data": {
            "action": "submitFeedback"
          }
        }
      ]
    }
    

    如果这个极简Card能正常提交,再逐步添加原来Card里的组件,排查是哪个部分导致的冲突——比如有没有嵌套组件、隐藏字段或者自定义Action的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:43:01