SuperAPI AI 工具集

x-chat-provider

设计与创作

查看项目

更新于 10-15 16:49

技能介绍

用途:聚焦一个问题——如何把流式接口快速适配到 Ant Design X 的 Chat Provider;不涉及 useXChat 使用教程。技术栈分三层:UI 层 @ant-design/x、逻辑层 @ant-design/x-sdk、渲染层 @ant-design/x-markdown。

Provider 选择:标准 OpenAI/DeepSeek API 用内置 OpenAIChatProvider、DeepSeekChatProvider;原始数据格式即消息时用 DefaultChatProvider(直接透传,渲染需 contentRender);其余情况自定义 Provider。注意导出名拼写。

自定义四步:分析接口格式(URL、请求方式、响应格式如 SSE、鉴权方式);新建类继承 AbstractChatProvider,只实现三个方法——transformParams(合并 onRequest 参数与 XRequest 默认参数,须带第二参数 options)、transformLocalMessage(把请求参数转为用户侧展示消息)、transformMessage(依据 originMessage 与 chunk 做流式累积,仅返回消息类型,不得含 status 字段);校验(只有三个方法、无 request 方法、tsc --noEmit 通过);使用 Provider,XRequest 必须设 manual: true,否则构造函数会抛错。

核心导出:XModelMessage、XModelParams、XModelResponse、SSEFields、SSEOutput、TransformMessage、XRequestOptions、XRequestCallbacks、MessageInfo。

XRequest 进阶:callbacks 支持 onUpdate/onSuccess/onError,第三参数为处理后的 MessageInfo,与 useXChat 的 requestFallback 不冲突;retryInterval 与 retryTimes 控制重试,onError 返回数字可动态设置重试间隔(用户取消不重试);transformStream 可为固定 TransformStream 或按 URL/响应头动态判断,用于非标准 SSE 流。

限制与规则:禁止实现 request 方法;transformMessage 不得返回 status;React 组件内用 useState 创建 Provider 避免重复实例化;未明确需要测试用例则不添加测试文件;完成后运行 tsc --noEmit 并清理未用变量与导入。其余未提供。