useXChat 数据管理
配合 Agent hook 进行对话数据管理。
何时使用
通过 Agent 进行会话数据管理,并产出供页面渲染使用的数据。
代码演示
基本
基础用法。
流式输出
使用流式输出更新内容。
多项建议
通过定制能力,返回多个推荐内容。
Hello, what can I do for you?
模型接入
接入云服务平台,可发送消息、处理数据、终止消息。
API
tsx
type useXChat<
AgentMessage,
ParsedMessage = AgentMessage,
Input = RequestParams<AgentMessage>,
Output = SSEOutput,
> = (config: XChatConfig<AgentMessage, ParsedMessage>) => XChatConfigReturnType;XChatConfig
| 属性 | 说明 | 类型 | 默认值 | 版本 |
|---|---|---|---|---|
| agent | 通过 useXAgent 生成的 agent,当使用 onRequest 方法时, agent 参数是必需的。 | XAgent | - | |
| conversationKey | 多会话隔离 key,切换时自动持久化/恢复消息列表 | string | symbol | - | |
| defaultMessages | 默认展示信息 | { status, message }[] | - | |
| parser | 将 AgentMessage 转换成消费使用的 ParsedMessage,不设置时则直接消费 AgentMessage。支持将一条 AgentMessage 转换成多条 ParsedMessage | (message: AgentMessage) => BubbleMessage | BubbleMessage[] | - | |
| requestFallback | 请求失败的兜底信息,不提供则不会展示 | AgentMessage | () => AgentMessage | - | |
| requestPlaceholder | 请求中的占位信息,不提供则不会展示 | AgentMessage | () => AgentMessage | - | |
| transformMessage | 可在更新数据时对messages做转换,同时会更新到messages | (info: {originMessage?: AgentMessage,chunk: Output,chunks: Output[],status: MessageStatus}) => AgentMessage | - | - |
| transformStream | 可选的转换函数,用于处理流数据 | XStreamOptions<Output>['transformStream'] | - | - |
| resolveAbortController | AbortController 控制器,用于控制流状态 | (abortController: AbortController) => void | - | - |
XChatConfigReturnType
| 属性 | 说明 | 类型 | 版本 |
|---|---|---|---|
| messages | 当前管理的内容 | AgentMessages[] | |
| parsedMessages | 经过 parser 转译过的内容 | ParsedMessages[] | |
| onRequest | 添加一条 Message,并且触发请求,若无key为message的数据则会将整个数据做为消息处理 | (requestParams: AgentMessage | RequestParams) => void | |
| abort | 中止当前进行中的请求;已流式输出的内容会保留,状态置为 abort | () => void | |
| setMessages | 直接修改 messages,不会触发请求 | (messages: { message, status }[]) => void | |
| isRequesting | 当前会话是否正在请求 | ComputedRef<boolean> | |
| conversationKey | 当前会话 key | Ref<string | symbol> |
MessageStatus:local | loading | updating | success | error | abort。
OpenAI Provider
ts
import { useXChat, useXAgent, OpenAIChatProvider } from 'ant-design-x-vue-next';
const provider = new OpenAIChatProvider();
const [agent] = useXAgent({ baseURL: '/api/chat', model: 'gpt-4o-mini' });
const { onRequest, abort, messages } = useXChat({
agent: agent.value,
conversationKey: 'session-1',
transformMessage: provider.asTransformMessage(),
});RequestParams
继承 XRequestParams。
| 属性 | 说明 | 类型 | 默认值 | 版本 |
|---|---|---|---|---|
| message | 当前消息的内容 | AgentMessage | - | - |
贡献者
贡献者
正在加载贡献者信息...