SuperAPI AI 工具集

tanstack-ai-core-chat-experience

编程与开发

查看项目

更新于 10-16 00:02

技能介绍

用途:在 TanStack Start 中搭建端到端聊天体验,服务端用 chat() 生成流,客户端用 useChat 消费。需先阅读 ai-core。

主要能力:

  1. SSE 流式聊天:服务端 chat({ adapter, messages, systemPrompts, abortController }) 配合 toServerSentEventsResponse();客户端 useChat({ connection: fetchServerSentEvents('/api/chat') }),返回 messages、sendMessage、isLoading、error、stop、status。
  2. 可恢复流:向 toServerSentEventsResponse 传 durability 适配器(memoryStream 用于开发测试,durableStream 用于生产),客户端自动用 Last-Event-ID 重连并支持 joinRun(runId)。
  3. 思考内容:模型输出 ThinkingPart,按 part.type === 'thinking' 渲染;服务端通过 modelOptions 开启(如 Gemini 的 thinkingConfig)。
  4. 多模态:sendMessage 传 MultimodalContent,支持图片 data/url 与音频;音频用 useAudioRecorder 录制后取 recording.part 发送。
  5. HTTP 流替代:toHttpResponse + fetchHttpStream,同样支持 durability 与重连。
  6. MCP 工具发现:chat({ mcp: { clients, connection, lazyTools, onDiscoveryError } }),connection 默认 'close','keep-alive' 由调用方管理生命周期。
  7. 消息队列:useChat 的 queue 选项,whenBusy 为 'queue'|'drop'|'interrupt',drain 为 'fifo'|'batch',含 maxSize/onOverflow;队列项可用 cancelQueued(id) 取消。
  8. 刷新持久化:persistence 选项,适配器有 localStoragePersistence、sessionStoragePersistence、indexedDBPersistence,按 threadId 存储;传 true 表示服务端权威,需 hydrate 处理器与 GET 端点。

使用方式:服务端定义 API 路由返回流式 Response,客户端在 React/Vue/Solid/Svelte/Preact 中导入对应 useChat 与连接函数。

限制:可恢复流与中途刷新重连依赖 delivery-durability 适配器及 GET 重放端点;队列消息仅在成功结束后自动发送,出错、stop、clear、unsubscribe、reload 时丢弃;持久化需稳定 threadId。具体版本、收费与平台支持资料未提供。