项目正在快速迭代中,API 与视觉细节可能随版本调整,请勿用于生产环境。

AiPromptBox AI 输入台 ​

大模型调用的聚合输入台:模型选择、场景 chips、能力开关(深度思考 / 联网搜索等)、额度展示、发送与停止,一键交出完整调用上下文。组件不内置任何请求——send 事件把 { text, scene, capabilities, model, attachments } 一次交出,模型调用(fetch / SSE / SDK)由使用方注入,流式回写可配合 useChatEngine。

界面文案(发送 / 停止 / 添加附件 / 场景 / 设置 / 选择模型 / 占位文本等)取自语言包 eb.chat,随 EbConfigProvider 的 locale 走——机制见 Chatbot · 多语言。

本页组件在独立包 @wil-works/evoke-chat 里,安装与注册见 Chatbot 对话窗口顶部说明。

基础用法 ​

选中场景后输入台内出现可移除的场景 tag;能力开关可多选;发送后面板清空并交出上下文(下方演示直接展示载荷):

停止生成 ​

stoppable 开启后,loading 期间发送钮切换为停止钮,点击触发 stop(AbortController 建议由请求方自持)。演示用 4 秒定时任务模拟一次生成:

输入内容并发送开始模拟生成

组合成工作台 ​

需要完整 AI 工作台(欢迎标题 + 示例问题 + 会话流)时,直接使用编排组件 AiConsole,无需自行拼装。

AiPromptBox Props

参数说明类型默认值
v-model输入文本string
placeholder占位文本;不传时取当前语言包(`eb.chat.promptBox.placeholder`)string—
disabled禁用整个输入台booleanfalse
loading请求进行中;配合 stoppable 显示停止钮booleanfalse
scenes场景定义(key / label / icon){ key, label, icon? }[][]
v-model:scene当前场景 key;选中后输入台内显示可移除 tagstring
capabilities能力开关定义(词汇表由使用方定){ key, label, icon? }[][]
v-model:activeCapabilities激活的能力 key 集合string[][]
models模型注册表;非空时工具栏右侧(上下文长度之后)显示模型 pill{ key, label, icon? }[][]
v-model:model当前模型 keystring
quota额度展示;传 null 不渲染。给了 percent 只渲染数值(如 `82%`),label 全文下沉到 aria/titlestring | { label, percent }null
showSettings工具行显示设置按钮booleanfalse
allowAttachments允许附件booleantrue
maxAttachments附件数量上限number5
accept附件类型白名单(.ext / mime/* / mime/type,逗号分隔);拖拽与粘贴路径同样按它校验string—
maxFileSize单个附件字节上限,0 为不限number0
allowDrop允许拖拽进输入台与粘贴剪贴板图片booleantrue
maxLength文本长度上限,真正约束 textarea;未传不限长number—
showWordCount显示字数统计booleanfalse
maxRows输入区最大行数(超出滚动)number8
sendOnEnterEnter 发送、Shift+Enter 换行;输入法组字中的 Enter 交还输入法,不会误发booleantrue
stoppableloading 时发送钮切换为停止钮booleanfalse

AiPromptBox Events

参数说明类型默认值
send发送,载荷含完整调用上下文({ text, scene, capabilities, model, attachments }) => void—
stop停止生成(stoppable 时)() => void—
update:scene / scene-change场景切换(含取消)(key: string) => void—
update:activeCapabilities / capability-change能力开关变化(keys: string[], key: string) => void—
update:model / model-change模型切换(key: string) => void—
quota-click点击额度胶囊() => void—
settings-click点击设置按钮() => void—
attachment-add附件通过校验后触发;第二参数是列表内的响应式对象,宿主回写 status / progress 即驱动 chip 显示上传中与失败(file: File, item) => void—
attachment-reject附件被拒;reason 取 type / size / limit / empty,提示文案由宿主决定(file: File, reason: string) => void—

AiPromptBox Slots

参数说明类型默认值
toolbar-extra工具行左侧追加内容——
(窄容器降级,非 prop)输入台宽度 ≤560px 时(容器查询)能力项只留图标、额度只留数值;模型 pill 文本保留——
toolbar-meta工具行右侧追加内容(上下文占用、统计读数这类贴输入台的读数)——
scenes-append场景 chips 行末尾追加——