1. #### 新增需求
      
    - 集成钉钉 Stream SDK（如 `dingtalk-stream-sdk-go`），创建websocket管理，进行多个机器人实例的接入管理，监听固定 Topic：`/v1.0/card/instances/callback` 接收用户交互回调。
    - 业务端 robot_config 进行机器人配置管理，管理机器人的相关配置信息，新增robot_config时，如果reply_type = 2时，就在websocket中新增实例，
    - 需要 Access Token：建立 Stream 连接鉴权需使用应用凭证（ClientID/Secret）或 Access Token。access token通过获取企业内部应用的accessToken接口获取。
    - 调用钉钉创建卡片接口：必须先调用“创建卡片”接口生成卡片实例，获取 `outTrackId` 和 `guid`，流式更新依赖这些标识。
    - 业务端创建、更新、删除robot_config的同时，websocket中实例也进行相应的操作

2. **执行流式更新**：

    - 收到回调后，业务逻辑处理数据，通过outTrackId查询robot_config，并调用ragflow中的ChatCompletionsStream，将返回的流式消息返回给AI流式接口。

    - 调用"AI 卡片流式更新”接口，**`/v1.0/card/instances/streamingUpdate`** 传入 `guid`、`outTrackId` 及分段内容 `content`。

    - 设置 `isFull=false` 进行增量更新，数据返回完毕后设置 `isFull=true` 结束流。



1. **状态管理**：流式传输结束时，务必将 `isFull` 设为 `true`，否则卡片会一直处于“加载中”状态。若发生异常，需设置失败状态以终止加载。
2. **并发控制**：同一卡片的流式更新请求需按顺序发送，避免乱序导致内容显示错误。
3. **超时处理**：建议在服务端设置合理的超时机制，防止长连接因网络波动断开后未重连。