助手
这是管理控制台内的运营助手。它的价值体现在一句话中 —— 现在出了什么问题,原因是什么,应该怎么做。 如果通过语言询问此节点,它将读取控制台提供的 API 并给出答案;如果有需要执行的操作,它将以 审批卡片 的形式呈现。在人工审批卡片之前,不会执行任何操作。
| 项目 | 值 |
|---|---|
| 进入路径 | 导航栏的 助手 图标 —— 地址为 https://<server-ip>:4950/assistant/ |
| 必要条件 | 一个兼容 OpenAI 的 LLM 网关。由于控制台内不含此组件,需直接连接 —— 网关设置 |
| 回答依据 | 该节点的控制台 API 14 个读取工具 |
| 执行权限 | 仅限 7 个允许的操作 的审批卡片 |
| 作用范围 | 打开控制台的 该单个节点 |
界面构成
左侧为 对话 区域,右侧列自上而下排列三个板块。
| 位置 | 名称 | 功能 |
|---|---|---|
| 左侧 | 对话 | 输入问题并阅读答案。Enter 为 [询问],Shift+Enter 为换行。答案中产生的审批卡片也会在此显示 |
| 右上方 | 网关 | 平时处于单行摘要折叠状态。检测到不可用状态时会自动展开 |
| 右侧中间 | 开放建议 | 所有等待决策的卡片。无论源自对话还是报警,均在此汇总,每 10 秒读取一次 |
| 右下方 | 此答案读取的内容 | 按顺序显示最后一次回答所调用的 API 调用记录 |
现在出了什么问题
可以通过语言询问节点的状态 · 版本 · 报警 · 备份。助手会对 每个问题重新读取 并回答 —— 之前的回答被视为过期,不作为依据。关于什么是 WARN · FAIL,助手 直接传达控制台的判定结果,不对原始数值应用自己的标准。无法测量的内容会说明未测得。
可以这样询问:
- 现在是否有异常组件?
- 当前有哪些活动报警,是否有静音的报警?
- 所有 Worker 是否都已加入 Ring?
- WAL 和复制槽状态如何?
- 是否有滞后的 Kafka 消费者组?
- 最近一小时内该节点发生了什么?
- 最后一次备份何时结束,当前是否有正在运行的备份?
- 最近谁重启了什么?
- 该节点的版本和运行时间是多少?
- 此发行版包含的 Kafka 版本是多少?
system 工具读取 该节点 的标识 · 版本 · 运行时间,component_versions 工具读取 该发行版自带 的组件表。后者并非当前节点运行状态的实测值。
测量结果在下一次往返中全部传输。比起「请检查全部」,直接指明组件或界面名称询问速度更快,且答案完整返回的可能性更高。
为什么会这样
询问原因时,助手会综合读取健康状态 · 报警 · 最近操作 · 日志列表,并按此顺序回答 —— 哪里出错了(控制台判定) → 为什么(从有力候选起,指明读取的字段) → 应该怎么做(卡片或具体的下一步操作)。
服务器会在判定结果旁附加两项内容:最近 30 分钟内的操作 以及当前运行的操作 —— 因为很多原因是因为「刚刚有人重启了」。此外,还会提供问题所在行的 实际日志文件名。
- 为什么 Cassandra 是红色的?
- 请列出该报警的潜在原因候选。
- Kafka 状态为 FAIL,应该先确认什么?
除非控制台文档直接记录了原因,否则助手不会将某一项断定为事实。如果读取内容中没有指向性依据,将回答不知道原因。答案是判断素材而非诊断结论。请通过下方的 此答案读取的内容 进行复核。
助手无法读取日志正文。 日志工具仅回答存在哪些文件以及最后一次写入时间。因此,助手无法说明日志中具体记录了什么,但会指明具体文件名并引导至 日志 界面。
复核答案 —— 此答案读取的内容
答案将与依据一同给出。右侧的 此答案读取的内容 按顺序记录最后一次回答所调用的 API,每行末尾的 [打开界面] 可跳转至人工确认该事实的界面。跳转界面由服务器决定。
答案顶部的 工具调用第 N 次 为往返次数。服务器为了在判定结果旁附加信息而读取的操作 · 日志列表,若内容实际附加,也会在面板中留行。如果面板显示「最后一次回答未调用任何内容 —— 仅凭问题得出答案」,则该答案未测量此节点。
服务器校验答案
模型的答案在发出前会与本次询问中 实际发生的事 进行对比。若不一致,将要求重写一次;若仍不一致,则删除该句子并在答案下方标注。
| 答案下方的标注 | 拦截了什么 | 对策 |
|---|---|---|
| 「本次回答无读取依据 —— 未读取此节点任何内容,请勿将其视为测量值。…」 | 未读取任何内容但像测量值的答案。若有此类内容,删除整个答案 | 说明需要读取的内容并重新询问 |
| 「未能创建卡片。虽然助手写道已建议,但不存在该卡片,已删除该句子。…」 | 声称创建了不存在的卡片 | 重新请求或使用相应界面 |
| 「删除了本次读取内容中不存在的版本 · 日期。…」 | 未读取的值 —— 版本 · 日期 · 三位及以上数字 · FAIL · WARN | 在依据面板的界面中确认 |
| 「读取了以下项目但未能得出结论。…」 | 耗尽往返次数仍无结论的答案 | 打开该界面或指明单个组件询问 |
卡片中的 助手的判断 同样经过此校验。但此校验仅针对形式而非含义验证。无标注并不代表答案绝对正确。
14 个读取工具
助手能够读取的内容 仅限 以下各项。全部为 GET 且不进行任何修改,无法通过任何参数访问此处未列出的端点。
| 工具 | 读取位置 | 内容 | 依据链接跳转界面 |
|---|---|---|---|
health | /api/health | 各组件判定结果 | 状态及信息 |
services | /api/services | 服务列表 · 启动状态 · 端口 | 状态及信息 |
alarms | /api/alarms | 激活报警 · 连续故障次数 · 静音 · 未通知原因 | 报警 |
workers | /api/workers | Worker 是否加入 Ring 及容量 | Worker |
jobs | /api/jobs | 最近操作(重启 · Render · 备份 · 诊断) —— 谁在何时运行了什么及是否结束,当前运行的操作 | 操作 |
storage | /api/storage | 卷 · WAL · 复制槽 · 存储大小 | 存储 |
backup | /api/backup | 备份历史 —— 引擎 · 类型 · 状态 · 结束时间 · 大小,当前运行的备份 | 备份 |
events | /api/events | 该节点的事件时间轴 | 事件 |
flow | /api/flow | Kafka 消费者组 Lag | 拓扑 |
logs | /api/logs | 日志文件 列表 及最近记录时间 —— 非正文 | 日志 |
doctor | /api/doctor | 诊断结果 —— 通过 · 失败 · 未测 | 诊断 |
system | /api/system | 该节点标识 · 版本 · 运行时间 · 堆 | 状态及信息 |
component_versions | /api/component-versions | 发行版组件表 —— 官方版本 · 自有版本 · 端口 · 许可证 · 来源 | 状态及信息 |
service_impact | /api/services/{name}/impact | 停止此服务将导致哪些服务一同停止 | 状态及信息 |
特意排除的内容 —— 机密信息 (Secret)、Render 后的配置、日志正文 · 搜索 · 流。前两者包含凭证,日志正文最可能混入凭证等自由文本。
工具响应不会原样发送。健康状态 · 报警 · 操作 · 备份 · 日志 · 诊断 · 服务 · 版本文档将 仅提取必要字段,将问题行置前并展开时间格式后发送至模型,且每个工具的响应在 4,000 字 处截断。若被截断,模型将获知此情况,并在答案中说明并指引至界面。
应该怎么做 —— 审批卡片
若有可执行的操作,助手不会直接执行,而是提交 卡片。若是需要人工查看界面,则在不提供卡片的情况下说明应查看哪个界面。也可以直接请求。
- 请提交运行诊断的卡片。
- 请提交 Cassandra 全量备份卡片。
- 请提交关闭此报警声音的卡片。
7 个允许的操作
卡片可调用的操作仅限以下七项。超出列表的操作在卡片创建阶段将被拒绝,且不会出现在界面上。
| 操作 | 调用位置 | 对象 | 服务器在卡片前测量的内容 |
|---|---|---|---|
配置 Render (CONFIG_RENDER) | POST /api/config/render | 无 | 不测量 —— 控制台不追踪哪些服务读取 Render 后的文件 |
服务重启 (SERVICE_RESTART) | POST /api/services/{name}/restart | 单个服务 | 将一同停止的服务 |
配置 Render + 重启 (CONFIG_RENDER_RESTART) | 先执行上述两者 | 单个服务 | 将一同停止的服务,是否有运行中的操作 |
执行备份 (BACKUP_RUN) | POST /api/backup/run | postgres-full · postgres-diff · cassandra-full · cassandra-diff 之一 | 是否有运行中的备份 |
执行诊断 (DOCTOR_RUN) | POST /api/doctor/run | 无 | 无 —— 仅读取 |
关闭报警声音 (ALARM_MUTE) | POST /api/alarms/{name}/mute | 单个报警组件 | 该报警是否激活且正在鸣响 |
重新开启报警声音 (ALARM_UNMUTE) | POST /api/alarms/{name}/unmute | 单个报警组件 | 该报警是否激活且处于静音状态 |
所有操作均通过 该界面按钮已在调用的端点 执行。不存在助手专用的执行路径,因此审批不会赋予额外权限,操作锁 · 历史 · 审计记录与点击按钮时完全一致。
卡片流转路径
- 服务器测量。 当助手选择操作时,控制台直接读取上述表格的前提条件。影响范围不由模型提供,而是从服务的声明启动顺序中读取。若无法测量必须测量的内容,则不创建卡片。
- 人工审批。 阅读卡片并点击 [审批] 或 [拒绝]。在点击前不会发生任何事情。
- 审批时再次测量。 若为需测量的操作,将再次读取。若影响范围与卡片不符,则拒绝执行并对比两次记录。前提条件被破坏时同理。
- 30 分钟后过期。 判断基于瞬间状态。过期卡片将不再显示审批按钮。如需执行,请重新询问获取新卡片。
- 仅执行一次。 已决策的卡片不能再次审批。即使点击两次相同卡片,也不会运行两次。
CONFIG_RENDER 和 DOCTOR_RUN 在卡片前无需测量,因此在第 3 步中无需再次测量。
如何阅读卡片
卡片头部包含来源(源自对话 / 源自报警)、提交时间、助手的判断。判断为模型生成,可能错误。包含未读取值的句子将被服务器删除。下方内容按此顺序固定:
| 顺序 | 卡片标题 | 内容 |
|---|---|---|
| 1 | 将一同停止的内容 | 控制台测量值 —— 非模型生成。配置 Render 卡片显示「未测量」。静音卡片显示 哪些报警将静音,取消静音卡片显示 哪些报警将重新鸣响 |
| 2 | 是否可还原 | 各操作引导 |
| 3 | 具体调用内容 | 调用的方法和路径。Render + 重启将依次显示两步 |
| 4 | «不» 执行的操作 | 该操作不会触及的内容 |
| 5 | 点击审批前 · [审批] · [拒绝] | 仅在可审批卡片中出现 |
对话产生的卡片还会附带 读取内容。这是创建卡片前实际响应的读取工具,每个均链接至相应界面。
未找到一同停止的内容 与 未测得 —— 无人进行核对 是不同的。如果服务器未测得必须测量的影响,则完全不创建卡片;但如果在卡片中看到「未测得」,请勿审批。
配置 Render 卡片的「未测量» 则是另一种情况。此步骤没有会停止的内容,运行中的服务将在下次启动时读取新文件。但 下次重启将改变什么,目前无人测量。
Render 失败则不重启。Render 完成但重启失败时,新配置已在节点中,但服务仍以旧配置运行。具体进度记录在卡片的 服务器留言 中。此操作需等待 Render 完成,审批后可能耗时数分钟。若控制台提前停止等待,请在重新点击前确认卡片状态和 操作 界面。
卡片状态
| 界面文案 | 含义 |
|---|---|
| 等待决策中 | 处于 开放建议 中 |
| 已审批并执行 | 请求已接受,无后续跟踪操作。调用结果附在 服务器留言 中 |
| 已审批并开始。操作仍在运行中 | 该操作启动了异步任务。是开始而非结果。 卡片每 3 秒读取一次操作状态 |
| 已审批且操作成功结束 | 操作已成功 |
| 已审批但操作失败 —— 请查看操作界面 | 调用已接受,但操作失败 |
| 已审批并开始。未能读取结果 —— 请查看操作界面 | 已启动但结果未知。请勿将其视为失败 |
| 已审批但执行失败 | 审批通过,但调用失败。原因附在 服务器留言 中 |
| 已拒绝 | 未调用任何内容 |
| 未经决策已过期 | 已超过 30 分钟 |
不可审批的卡片不显示按钮,而是显示「此处无需决策:» 及上述状态。
卡片未能创建或执行被拒绝时
服务器的拒绝不会被隐藏。对话中由助手传达原因,审批时的拒绝则在卡片 未执行 后直接附带服务器的英文原句。
| 场景 | 发生时机 | 对策 |
|---|---|---|
| 未能读取影响 | 卡片前 · 审批时 | 确认服务名称与 状态及信息 界面 |
影响范围变更 (has CHANGED) | 审批时 | 重新询问获取新卡片 |
| 备份或恢复运行中 | 卡片前 · 审批时 | 结束后重新询问 |
| 其他操作运行中 (Render + 重启) | 卡片前 · 审批时 | 结束后重新询问 |
| 该报警不存在 · 已静音 · 非静音 | 卡片前 · 审批时 | 在 报警 界面确认状态 |
| 目标为控制台自身 | 卡片前 · 审批时 | 控制台无法重启自身。在主机使用 pd |
| 审批/拒绝已决策或运行中的卡片 | 审批 · 拒绝时 | 拒绝仅适用于等待决策的卡片。确认卡片状态 |
| 此节点无建议存储 | 卡片前 | 若无法记录,卡片可能被重复审批,因此不创建 |
若 开放建议 显示「此节点无法执行审批 —— 即便审批此处内容也不会运行」,说明该节点的存储尚未准备就绪。
源自报警的卡片
即使无人询问,卡片也可能自动出现。报警触发瞬间,控制台会询问一次网关,若有应对操作则在 开放建议 中提交卡片。来源标注为 源自报警,该路径无响应人员,因此不带工具往返,仅传输报警和服务列表。
- 可选操作仅限 服务重启 和 配置 Render。备份 · 诊断 · 静音 · Render + 重启仅在对话中出现。
- 此路径的标题和判断以 英文 记录,因为时间轴为英文。
- 重启目标由 控制台决定 而非模型。控制台在健康文档中寻找运行该报警组件的服务。
- 遵循 报警 界面的规则 —— 若规则关闭、严重程度不足或处于抑制窗口,则不询问。
- 若已有相同操作 · 相同目标的卡片开启,则不重复创建。
- 报警消除后,卡片被撤回。控制台重启后无法撤回,此时将在 30 分钟后过期。
- 开放建议 仅包含等待决策的卡片,审批后的卡片将从列表中移除。报警卡片审批后的结果在 操作 界面查看。
- 发生经过记录在 事件 时间轴中 —— 提交卡片、无建议、无法询问网关、卡片被拒绝。
需确保网关开启、建议存储就绪且配置了 PP_DATALAKE_ADMIN_API_KEY —— 此键用于在无登录用户时让控制台读取自身 API。缺失项会在日志中记录一次。报警和通知与此无关,正常运作。
无法执行的操作
以下内容不会以卡片形式出现。由于不在允许列表中,即使模型请求也会被拒绝。
| 不可执行项 | 执行位置 |
|---|---|
| 恢复 | 备份 界面 —— 该界面包含重新指定目标的程序 |
| 数据删除 | 助手无法执行 |
| 机密信息查询 · 变更 | 助手无法读取凭证。请使用各组件详情的 凭证 卡片 |
| 节点移除 | 在主机执行 Worker 界面显示的命令 |
| 备份计划变更 · 计划执行 | 助手无法执行。计划编辑在 备份 界面 |
| 操作取消 | 助手无法执行 |
| 服务启动 · 停止 | 卡片仅提供重启。停止操作若半途生效会使节点状态更糟 |
| 升级 | 升级 界面 |
对话记录存储
对话仅存储在 该浏览器标签页的 sessionStorage 中。界面也会提示 — 「此记录仅存在于本浏览器标签页内。刷新页面仍保留,关闭标签页或注销将消失。节点不存储任何记录,如有需要请自行复制。»
- 刷新页面仍保留。关闭标签页或注销将消失。 其他标签页不可见。
- 标签页仅保留最近 40 条记录。可通过 [清除] 手动清空。
- 询问时,标签页会发送之前的对话,服务器读取其中最近 20 条消息作为上下文,不作为证据依据。
- 卡片不属于对话。 卡片不复制到标签页,始终从服务器读取。标题 · 判断 · 影响 · 决策人 · 结果在节点的 PostgreSQL 中保留 7 天(启动时清理)。通过审批执行的调用保留在 审计 界面。
虽然节点不存储对话,但为了生成答案,会将 问题 · 之前对话 · 精简后的工具响应 发送至网关。报警卡片则发送报警 · 报警列表 · 服务列表。这意味着节点状态信息将传输至该网关,请连接符合公司政策的网关。
权限
此控制台仅有一个账户且无角色之分。 只要拥有登录会话,即可进行询问、审批及网关设置。
| 操作 | 必要条件 |
|---|---|
| 询问 | 登录会话 |
| 审批 · 拒绝 | 登录会话 |
| 网关保存 · 确认 | 登录会话 |
| 读取建议列表 · 网关设置 | 登录会话 或 控制台 API 密钥 |
- 询问者与审批者可以相同,也可以不同。 无需双人审批流程。标签页对话属于该标签页,但卡片属于节点,因此 开放建议 对所有登录用户可见。
- API 密钥无法进行询问或审批。 这些操作需要会话。
- 助手的测量与审批调用通过 该用户的会话 发出。不存在扩权路径。
- 卡片的决策者和审计记录将记录会话的登录名称。若共用账户则无法区分个人。
网关设置
助手调用兼容 OpenAI 的网关(GET /v1/models, POST /v1/chat/completions)。控制台无默认地址 — 需手动输入现场网络可触达的地址。设置在界面保存并进入节点的 PostgreSQL,无相关环境变量。
点击右列最上方的 [展开网关设置]。由于仅支持一个网关,无需选择名称,共有四个输入项。

| 数字 | 位置 | 功能 |
|---|---|---|
| ① | 右上方 | 折叠的单行摘要 — 点击可展开 |
| ② | 端点 (Endpoint) | 网关基准 URL |
| ③ | 密钥 (Key) | 仅显示是否保存及末四位 |
| ④ | 模型 (Model) | 从网关返回的列表中选择 |
| ⑤ | 使用此网关 · [保存] | 必须保存后方可生效 |
| ⑥ | 确认 | [确认连接] — 详见 下方 |
| 输入项 | 输入内容 |
|---|---|
| 端点 | 网关基准 URL。必填。必须以 http:// 或 https:// 开头,末尾是否包含 /v1 均可 |
| 密钥 | 选填。信任网关可不设密钥。留空则保留原保存密钥。 界面仅显示保存状态和末四位,不显示完整值 |
| 模型 | 从列表中选择。仅显示网关返回的名称,无自由输入框 |
| 使用此网关 | 关闭后控制台将不进行任何询问且不创建报警卡片。必须保存后生效 |
首次连接步骤:
- 输入 端点 和 密钥 并点击 [保存]。确认步骤将使用 保存后的值 进行 접속。
- 点击 [确认连接]。一次性确认地址 · TLS · 密钥 · 模型列表。
- 选择 模型 并再次点击 [保存]。随后对话界面开启。
- 运行一次 [工具调用测试]。观察模型是否实际调用工具而非仅通过语言描述。即使未通过也可询问,但该模型将无法读取答案依据且无法创建卡片。
若网关和模型已保存,控制台在每次打开界面时会自动执行一次 [确认连接]。因此界面开启瞬间会显示「正在确认此网关」,通过后对话界面开启。[工具调用测试] 涉及实际模型调用,故不自动运行。
未设置时
对话界面无法开启,输入框位置将显示 尚未创建输入项 及具体原因。不提供灰色不可用输入框。
| 右侧摘要 | 含义 | 对策 |
|---|---|---|
| 无保存网关 | 未保存端点 | 输入端点并保存 |
| 无选择模型 | 有网关但无模型 | 确认连接 → 选择模型 → 保存 |
| 网关已关闭 | 保存的设置处于关闭状态 | 开启 使用此网关 并保存 |
| 窗体有未保存变更 | 询问将通过已保存的网关发送 | 保存 |
| 已保存但此标签页未确认 | 无法确定控制台响应状态 | 确认连接 |
| 正在确认此网关 | 自动确认运行中 | 等待片刻 |
| 最后一次确认失败 - 原因 | 见下方判定 | 按判定执行对策 |
| 网关已确认 - 模型名称 | 正常 | 对话界面已开启 |
若显示「此节点无法保存助手设置」,意味着该节点无法访问 Data Lake PostgreSQL,此时无法点击 [保存]。
确认结果读取方法
即使地址和密钥正确,也可能因其他原因失败。在重新输入地址前,请先阅读判定结果。 下方的 网关留言 为网关返回的未翻译原句。相同判定亦出现在对话答案区域。
| 判定 | 含义 | 对策 |
|---|---|---|
| 通过 | 网关有响应且收到了模型列表(工具测试中模型调用了工具) | — |
| 无须确认 | 无保存端点。非通过也非失败 | 输入端点并保存 |
| 网关无响应 | 网关在给定地址未响应。非控制台问题,未测试密钥 | 确认端点及该容器是否可触达该主机 · 端口。防火墙和超时亦如此显示 |
| 密钥被拒绝 | 地址正确但密钥被拒绝 | 输入新密钥并保存。留空则保留被拒绝密钥 |
| 此模型不可用 | 端点与密钥均正常。所选模型无法处理此请求 | 从列表中选择其他模型 |
| 上游额度耗尽 | 端点与密钥均正常。网关侧上游账户额度用尽 | 无需修改此处设置。额度恢复后原设置将通过 |
| 未调用工具 | 模型仅通过语言回答 | 选择支持工具调用的模型 |
| 未能读取网关响应 | 不属于上述任何分类 | 阅读 网关留言 |
等待与截断答案
单个问题可能会多次调用工具,导致回答延迟,此为正常现象。等待期间秒数递增,可通过 [停止等待] 中断。单个问题的往返上限为 8 次,耗尽后不再读取,根据已读内容得出结论。
| 界面显示内容 | 含义 | 对策 |
|---|---|---|
| 「在 N 秒后停止了此问题。» | 人工手动停止。无任何变更 | 重新询问 |
| 「此答案中途截断» | 未完整返回的答案。请勿将其视为最终答案 | 缩小范围重新询问 |
| 「控制台等待 200 秒后停止。» | 非节点或网关故障。控制台停止等待 | 缩小范围重新询问 |
| 「控制台无法触达自身服务器,未能询问任何内容。» | 非网关问题,而是控制台服务器端问题 | 在 状态及信息 界面或主机确认 |
相关文档
- 管理控制台 — 접속 · 로그인 · 화면 구성
pdCLI — 콘솔이 보여 주는 것의 원본- 웹 화면 로그인 계정