SuperAPI AI 工具集

tanstack-ai-core-custom-backend-integration

智能体与模型

查看项目

更新于 10-16 00:02

技能介绍

用途:把 useChat 连接到非 TanStack AI 后端,通过自定义连接适配器接入自有协议。前置需先阅读 ai-core 与 ai-core/chat-experience。

主要能力:fetchServerSentEvents 用于 SSE(text/event-stream,data: {json} 帧)后端,是推荐默认;fetchHttpStream 用于 NDJSON(application/x-ndjson)后端,每行一个 JSON StreamChunk。两者都接受静态或按请求求值的 URL 与 options(同步或异步),支持动态 token 与 URL,options.body 会与 messages、data 合并进 POST 请求体,并支持自定义 fetchClient。完全自定义协议(WebSocket、gRPC-web、二进制、server functions)可实现 ConnectionAdapter,两种互斥模式:ConnectConnectionAdapter(拉取式,async iterable,用 connect 生成 StreamChunk)与 SubscribeConnectionAdapter(推送式,subscribe 返回长期 AsyncIterable,send 派发消息)。stream() 辅助函数可由异步生成器快速创建 ConnectConnectionAdapter。

用法要点:useChat({ connection: ... }) 传入适配器;SSE 示例使用 fetchServerSentEvents('https://my-api.com/chat', { headers: { Authorization: Bearer ${token} } })。

限制与常见错误:同时提供 connect 与 subscribe+send 会在运行时抛错,只能选一种模式;浏览器对 SSE 连接有每域 6-8 条限制,可用 HTTP/2、fetchHttpStream、关闭空闲连接或单一持久 WebSocket 缓解;HTTP stream 无自动重连,需自行实现重试;fetchServerSentEvents 底层用 fetch 而非 EventSource,同样不会自动重连。

适用场景:自有 SSE/NDJSON 后端、WebSocket 或推送式协议接入聊天界面。