> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hitheo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 后续追问

> Theo 如何生成建议的下一步提示，以及如何在聊天界面中渲染它们。

每次 Theo 补全都会返回一个 `follow_ups: Array<{ label, prompt }>` 字段。这些是由 AI 生成、感知当前模式的下一轮建议 —— 可以直接作为建议芯片放入聊天界面。

## 何时会生成后续追问

* 在**每一次文本模式补全**中（`auto`、`fast`、`think`、`code`、`research`、`roast`、`genui`、`vision`，以及隐身文本变体）。
* 在**图像 / 视频 / 文档**轮次中 —— 后续追问通常是编辑/变体类提示（例如"试试更宽的宽高比"、"把背景调亮一些"）。
* **不会**在 `stt`（语音转文本）或 `tts`（文本转语音）响应中生成 —— 因为不存在自然的下一轮。
  服务器每次响应会返回 0 到 3 条后续追问。对于简短的回答、出错情况，或 Theo 没有可供建议内容的场景，返回空数组也是正常情况。

## 数据结构

```typescript theme={null}
interface FollowUp {
  /** Short label suitable for a UI chip (max ~60 chars). */
  label: string;
  /** Full prompt to send on click — safe to use as-is in the next request. */
  prompt: string;
}
```

`label` 是芯片上展示给用户的文本。`prompt` 是用户点击该芯片时，作为下一次请求的 `prompt` 字段提交的内容。两者通常并不相同 —— `label` 是简短的祈使句，`prompt` 则是一条完整的指令，承接上一轮对话的内容继续下去。

## 生成方式

Theo 会将该轮对话的内容、使用过的工具以及产出的任何附件，传入一个在主补全之后运行的轻量级后续追问生成器。这些建议是由 AI 生成的，而非基于规则，因此质量会随模型档位不同而有所差异 —— `think` 模式生成的后续追问通常比 `fast` 模式更好。这里不存在单独的"后续追问费用"项目；生成器是搭载在同一次 LLM 调用上完成的。

## 在聊天界面中渲染

一个最简单的 React 模式：在最后一条助手气泡下方渲染一行芯片。

```tsx theme={null}
{assistantMessage.follow_ups?.length ? (
  <div className="flex flex-wrap gap-2 mt-3">
    {assistantMessage.follow_ups.map((f) => (
      <button
        key={f.label}
        onClick={() => sendPrompt(f.prompt)}
        className="px-3 py-1 rounded-full border text-sm hover:bg-zinc-100"
      >
        {f.label}
      </button>
    ))}
  </div>
) : null}
```

* 在完整消息显示**之后**再渲染这些芯片。对于流式响应，`follow_ups` 只会在 `done` 事件中出现，因此要等到该事件出现之后再渲染。
* 当用户点击某个芯片时，将 `prompt` 原样作为下一次的 `prompt` 发送。不要将它与用户自己输入的内容拼接在一起 —— 这些 prompt 本身就是自包含、可直接使用的。
* 一旦用户开始输入新消息，就隐藏芯片行，并在下一轮补全完成后再重新显示新的芯片。这也是大多数生产环境聊天界面所采用的模式。

## 流式场景

对于流式补全，后续追问会出现在 `done` 事件中：

```typescript theme={null}
for await (const event of stream) {
  if (event.type === "done") {
    setFollowUps(event.data.follow_ups);
  }
}
```

完整的事件结构请参见[流式补全](/api-reference/completions/streaming)。

## 关闭该功能

如果后续追问让你的界面显得杂乱，直接忽略该字段即可。目前没有针对单次请求的开关 \u2014 生成成本足够低，可以始终生成，而且部分调用方（语音、分析）即便不渲染也会读取这个字段。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.