---
url: /chat/ai-console.md
---
# AiConsole AI 工作台

完整的大模型对话工作台编排：欢迎标题（高亮词渐变）+ 示例问题 + AI 输入台 + 会话流。首次发送后欢迎区自动收起、会话区展开；模型调用通过 `transport` 注入（`transport(content, attachments, context)`），流式回写直接驱动 [useChatEngine](#api) 暴露的方法，组件内部不发起任何请求。

> 本页组件在独立包 `@wil-works/evoke-chat` 里，安装与注册见 [Chatbot 对话窗口](/chat/chatbot)顶部说明。

界面文案（底部提示、默认显示名、输入台占位等）取自语言包 `eb.chat`，随 `EbConfigProvider` 的 `locale` 走——机制见 [Chatbot · 多语言](/chat/chatbot#多语言)。

## 基础用法

`engine` 缺省时组件内部自建引擎；`transport` 里模拟流式打字即可看到完整会话流。点击示例问题直接发送：

> 高度约定：**父容器给了确定高度时 Console 撑满它**——会话区吃掉剩余空间、输入区贴底（`chat-height` 只是会话区上限）；父容器高度 auto 时按内容收缩，行为与从前一致。文档示例因此统一包一层定高容器（560px）。

## 插槽

| 插槽 | 位置 | 用途 |
| --- | --- | --- |
| `input-prepend` | 输入区顶部（状态条之上） | 待发送队列（`EbChatQueue`）、附件条这类贴着输入台的内容 |
| `toolbar-extra` / `toolbar-meta` | 透传给输入台工具栏左侧 / 右侧 | 额外工具与读数（上下文占用由组件内部经 `#toolbar-meta` 传入） |
| `empty` | 消息列表空态 | 自定义欢迎区 |

## 实例方法（ref 调用）

| 方法 | 说明 |
| --- | --- |
| `setDraft(text)` | 回填输入台草稿（队列「取回编辑」、外部按钮用） |
| `send(text, attachments?)` | 程序化发送，与输入台同一条路径（队列「立即发送」用） |
| `focus()` | 聚焦输入框 |
| `clear()` | 清空会话回欢迎页 |
| `engine` / `listRef` | 引擎与消息列表 ref 透出，供宿主自行编排 |

## 受控引擎

传 `engine`（`useChatEngine` 返回值）即完全受控：消息列表、loading、会话历史归使用方所有，Console 只负责编排与交互；`clear()` 一键清空回欢迎页。

## API
