add vitepress docs
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# AI 对话
|
||||
|
||||
把对话面板嵌进带标题栏的页面骨架,并自定义欢迎语与角色名。
|
||||
|
||||
## 组合演示
|
||||
|
||||
:::preview 完整对话 || 回答由本地假流逐块吐出,可随时点「停止」或用「清空」重开
|
||||
|
||||
demo-preview=../demos/scenarios/ai.vue
|
||||
|
||||
:::
|
||||
|
||||
## 这个场景覆盖了什么
|
||||
|
||||
- **会话接线**:`useAiChat` 提供 `messages` 与生成状态,面板只负责渲染
|
||||
- **页面骨架**:标题栏与面板组合成完整页面,`清空` 调用 `resetConversation`
|
||||
- **自定义文案**:`roleNames` 把「助手」换成「分析助手」,`welcome` 插槽替换空态
|
||||
- **流式呈现**:思考过程、工具状态、回答与引用按事件依次出现
|
||||
|
||||
## 换成真实后端
|
||||
|
||||
示例里的 `request` 返回的是本地构造的假流。接真实接口时只要返回一个 SSE 流式的 `Response` 即可,其余不用改:
|
||||
|
||||
```ts
|
||||
const chat = useAiChat({
|
||||
request: ({ message, signal }) => fetch("/api/chat", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ message }),
|
||||
signal
|
||||
})
|
||||
});
|
||||
```
|
||||
|
||||
事件名与载荷字段见 [AiChatPanel](/components/ai-chat-panel) 的协议表;后端用的是另一套事件名时,用 `parseEvent` 转换。
|
||||
|
||||
## 相关组件
|
||||
|
||||
- [AiChatPanel](/components/ai-chat-panel)
|
||||
- [AiChatMessageList](/components/ai-chat-message-list)
|
||||
- [AiChatComposer](/components/ai-chat-composer)
|
||||
- [AiChatThinking](/components/ai-chat-thinking)
|
||||
Reference in New Issue
Block a user