Skip to content

useAiChat 数据响应流

@yh-ui/hooks 提供了一套适合 AI 场景的 Headless Hooks。useAiChat 负责消息流、请求生命周期和中止控制,useAiConversations 负责会话列表与元数据管理。

基础请求接管

把你自己的 request 函数注入给 useAiChat,就可以直接把异步请求结果接到聊天 UI 上。

极简接管

流式生成与强制中止

request 返回 AsyncGenerator 时,useAiChat 会自动把流式内容拼成连续输出。调用 stop() 时,会同时中止请求与后续渲染。

流式生成与强制中止

会话状态管理

如果你需要做带左侧会话栏的 AI 页面,可以把会话列表单独交给 useAiConversations

历史会话无头管理

API Reference

useAiChat Options

参数说明类型
initialMessages默认消息列表AiChatMessage[]
request请求适配器,签名为 (message, history, abortSignal) => AsyncGenerator | Promise<string | Response>Function
idGenerator自定义消息 ID 生成器() => string
parserSSE / 流式分块解析器,用于适配不同厂商返回格式StreamChunkParser

useAiChat Returns

名称说明类型
messages当前消息列表Ref<AiChatMessage[]>
isGenerating是否正在生成Ref<boolean>
sendMessage发送消息(message: string) => Promise<void>
stop中止当前流式请求() => void
clear清空消息() => void

useAiConversations Options

参数说明类型
initialConversations初始会话列表AiConversation[]
idGenerator自定义会话 ID 生成器() => string

useAiConversations Returns

名称说明类型
conversations会话列表Ref<AiConversation[]>
createConversation创建会话(title?: string) => string
removeConversation删除会话(id: string) => void

Released under the MIT License.