跳转至

字段手册:问答主站

给部署问答 API(默认 8863)和主站 Web(默认 8862)的工程师参考。CG 检索路径见 CG_RAG。加载顺序与字段写法见 总览。

llm.generation_model 为领域门 / CG 默认生成模型,不是主站下拉框所用配置。下拉框仅读取以下 models.catalog。

question_app.yaml:api

问答 API(默认 127.0.0.1:8863)。

YAML 键 值格式 环境变量 含义
host 字符串,如 0.0.0.0 QUESTION_GENERATED_APP_HOST、QUESTION_GENERATED_APP_API_HOST 监听地址
port 整数,如 8863 QUESTION_GENERATED_APP_PORT、QUESTION_GENERATED_APP_API_PORT 监听端口
backend_mode online 或 mock QUESTION_GENERATED_APP_BACKEND_MODE 是否对接真实 CG_RAG / 生成上游
cg_rag_base_url http://127.0.0.1:8864,不含尾斜杠 QUESTION_GENERATED_APP_CG_RAG_BASE_URL Question API 访问 CG_RAG 的基址
domain_gate_enabled true / false QUESTION_GENERATED_APP_DOMAIN_GATE_ENABLED 是否启用领域门
include_debug_payloads true / false QUESTION_GENERATED_APP_INCLUDE_DEBUG_PAYLOADS 响应是否携带调试字段
timeout_seconds 正整数,单位秒 QUESTION_GENERATED_APP_TIMEOUT_SECONDS 问答请求超时时限
persistence_backend sqlite QUESTION_GENERATED_APP_PERSISTENCE_BACKEND 会话 / 反馈存储后端
sqlite_path 绝对路径,目录须可写 QUESTION_GENERATED_APP_SQLITE_PATH SQLite 文件路径
feedback_root 绝对路径 QUESTION_GENERATED_APP_FEEDBACK_ROOT 反馈根目录
chat_history_root 绝对路径 QUESTION_GENERATED_APP_CHAT_HISTORY_ROOT 对话历史目录
results_root 绝对路径 QUESTION_GENERATED_APP_RESULTS_ROOT 运行结果根目录
run_dir 绝对路径 QUESTION_GENERATED_APP_RUN_DIR 单次 run 目录
logos_dir 绝对路径 QUESTION_GENERATED_APP_LOGOS_DIR Logo 资源目录
cors_origins YAML 列表,每项一个 origin QUESTION_GENERATED_APP_CORS_ORIGINS 允许的浏览器来源,格式如 http://127.0.0.1:8862,http://localhost:8862
sse_max_workers 正整数 QUESTION_APP_SSE_MAX_WORKERS 并发生成的 SSE 上限。达到上限后新请求进入队列,不抢占正在生成的请求
sse_max_waiting 正整数,默认 128 QUESTION_APP_SSE_MAX_WAITING 闸门前最多等待的请求数;超出后本次生成不会启动
sse_queue_wait_seconds 正数,单位秒,默认 1200 QUESTION_APP_SSE_QUEUE_WAIT_SECONDS 排队等待上限时长;此段时间不计入整轮生成预算
sse_buffer_size 正整数 QUESTION_APP_SSE_BUFFER_SIZE SSE 缓冲区大小
sse_durable_put_timeout_seconds 小数,单位秒,如 0.25 QUESTION_APP_SSE_DURABLE_PUT_TIMEOUT_SECONDS SSE 持久化写入超时时限

question_app.yaml:web

主站 Next.js 配置。修改前端目录或模型 UI 后须重新执行 next build。

YAML 键 值格式 环境变量 含义
host 127.0.0.1 或 0.0.0.0 QUESTION_GENERATED_APP_WEB_HOST 监听地址
port 整数,默认 8862 QUESTION_GENERATED_APP_WEB_PORT 监听端口
mode start 或 dev QUESTION_GENERATED_APP_WEB_MODE 生产环境使用 start
build true / false QUESTION_GENERATED_APP_WEB_BUILD 启动前是否执行 build
api_base 浏览器可见的 API 前缀,可为空 NEXT_PUBLIC_QUESTION_APP_API_BASE、QUESTION_APP_API_BASE 通常留空,经同源反代访问
api_proxy_base http://127.0.0.1:8863 QUESTION_GENERATED_APP_API_PROXY_BASE Next 服务端反代目标地址
streaming_enabled true / false NEXT_PUBLIC_QUESTION_APP_STREAMING_ENABLED、QUESTION_APP_STREAMING_ENABLED 主站是否启用 SSE
tmux_window 字符串 QUESTION_GENERATED_APP_WEB_TMUX_WINDOW 本机脚本所用 tmux 窗口名
allowed_dev_origins 列表 QUESTION_GENERATED_APP_ALLOWED_DEV_ORIGINS 仅用于开发环境

question_app.yaml:llm

Question API 的领域门与智能生成默认上游配置。不是 /api/models 列表。

YAML 键 值格式 环境变量 含义
provider deepseek / poly / openai_compatible QUESTION_GENERATED_APP_LLM_PROVIDER 领域门 / 默认生成 adapter
sglang_base_url URL 或空 QUESTION_GENERATED_APP_SGLANG_BASE_URL 本地 SGLang 地址
api_key 仅写入 secrets QUESTION_GENERATED_APP_API_KEY 默认生成鉴权;亦可作为 DeepSeek 官方模型的回退密钥
generation_endpoint 完整 chat completions URL QUESTION_GENERATED_APP_GENERATION_ENDPOINT 默认生成端点地址
generation_model 上游模型名,如 deepseek-v4-flash QUESTION_GENERATED_APP_GENERATION_MODEL CG_RAG / 领域门默认模型
domain_gate_model 模型名 QUESTION_GENERATED_APP_DOMAIN_GATE_MODEL 领域门所用模型
smart_generation_model 模型名 QUESTION_GENERATED_APP_SMART_GENERATION_MODEL 智能生成默认模型
smart_generation_thinking_model 模型名或 "" QUESTION_GENERATED_APP_SMART_GENERATION_THINKING_MODEL 思考所用模型;空值表示与主模型相同
smart_generation_thinking_enabled_default true / false QUESTION_GENERATED_APP_SMART_GENERATION_THINKING_ENABLED_DEFAULT 主站思考开关默认状态
smart_generation_tool_policy prefer 等 QUESTION_GENERATED_APP_SMART_GENERATION_TOOL_POLICY 工具调用策略
smart_generation_max_tool_rounds 正整数 QUESTION_GENERATED_APP_SMART_GENERATION_MAX_TOOL_ROUNDS 智能生成最大工具轮数
generation_streaming true / false QUESTION_GENERATED_APP_GENERATION_STREAMING 问答侧是否启用流式输出
generation_max_tokens 正整数 QUESTION_GENERATED_APP_GENERATION_MAX_TOKENS 默认 max_tokens
generation_response_format_json true / false QUESTION_GENERATED_APP_GENERATION_RESPONSE_FORMAT_JSON 是否请求 JSON response format
domain_gate_response_format_json true / false QUESTION_GENERATED_APP_DOMAIN_GATE_RESPONSE_FORMAT_JSON 领域门是否使用 JSON 格式
generation_enable_thinking true / false QUESTION_GENERATED_APP_GENERATION_ENABLE_THINKING 默认是否启用 thinking
domain_gate_enable_thinking true / false QUESTION_GENERATED_APP_DOMAIN_GATE_ENABLE_THINKING 领域门是否启用 thinking

question_app.yaml:attachments

主站图片附件配置。前端另有独立的张数上限(当前 UI 为 4 张)。

YAML 键 值格式 环境变量 含义
enabled true / false QUESTION_APP_ATTACHMENTS_ENABLED 是否启用附件落盘
root 绝对路径 QUESTION_APP_ATTACHMENT_ROOT 附件存储目录
sqlite_path 绝对路径 QUESTION_APP_ATTACHMENT_SQLITE_PATH 附件 SQLite 路径
max_file_bytes 字节数 QUESTION_APP_ATTACHMENT_MAX_FILE_BYTES 单文件大小上限
max_count 正整数 QUESTION_APP_ATTACHMENT_MAX_COUNT 单次上传最多张数
max_pixels 正整数 QUESTION_APP_ATTACHMENT_MAX_PIXELS 像素数上限
max_dimension 正整数 QUESTION_APP_ATTACHMENT_MAX_DIMENSION 长边像素上限
normalized_max_dimension 正整数 QUESTION_APP_ATTACHMENT_NORMALIZED_MAX_DIMENSION 规范化后的长边上限
draft_ttl_seconds 秒数 QUESTION_APP_ATTACHMENT_DRAFT_TTL_SECONDS 草稿 TTL

models.yaml(Question API 目录)

可独立为 sidecar,也可将 providers / models 直接写入 question_app.yaml。密钥不得写入此文件。

管理台亦有一份同名 models.yaml,与本文件无关。详见 总览 中的说明。

providers.<id>

YAML 键 值格式 含义
(映射键本身) 如 deepseek_official、polyic,或自定义 id provider id
display_name 可读名称 内部标注
adapter deepseek / polyic_openai_compatible / qwen_openai_compatible / openai_compatible 请求构造方式
env_key 环境变量名 该 provider 的 API key 变量;默认为 QUESTION_APP_PROVIDER_<ID>_API_KEY
api_key 仅写入 secrets 的 providers.<id>.api_key 写入上述 env_key 对应的变量

内置两个 provider:deepseek_official、polyic。YAML 配置可覆盖或新增。

models

YAML 键 值格式 含义
default 须为公开模型的 id 主站默认模型;同时写入 QUESTION_APP_DEFAULT_MODEL_ID
include_builtin true / false 设为 false 时丢弃四个内置模型,仅保留 catalog 中的条目
catalog 映射,键为模型 id 见下表

内置 id:deepseek-v4-flash、deepseek-v4-pro、polyic-deepseek-v4-flash(默认 public: false)、qwen-3.6-27b。include_builtin: true 时,catalog 中同 id 的字段将覆盖内置模板。

models.catalog.<id>

新增模型无需修改 Python 代码:配置 include_builtin 后在 catalog 中追加相应条目即可。新建条目必须包含 display_name 和 provider。

YAML 键 值格式 是否进环境变量 含义
(映射键) URL-safe id,如 qwen-3.6-27b 否 /api/models 返回的 id
env_prefix 大写字母与下划线,如 POLYIC_QWEN_3_6_27B 前缀 操作开关形如 QUESTION_APP_MODEL_<PREFIX>_…;省略则由 id 自动推导
display_name 简短中文或英文名称 否 主站展示名
description 一句话说明 否 主站说明文字;UI 以 API 返回值为准
provider 已有 provider id 否 所用网关与密钥
endpoint chat completions URL …_ENDPOINT 上游端点地址
upstream_model 上游实际模型名 …_UPSTREAM_MODEL 发送给供应商的 model 字段值
enabled true / false …_ENABLED 运维开关;false 时若 public: true 则 UI 可见但不可选
public true / false 否 false 时不出现在 /api/models 响应中
thinking_policy user_selectable / always_on / off 否 设为 user_selectable 时前端才显示思考开关
generation_modes 列表,元素仅限 constrained、free_form、smart 否 该模型允许的回答模式
adapter 见 providers 否 覆盖 provider 默认 adapter
inline_think_blocks true / false 否 Qwen 类内联 think 块处理方式
streaming true / false …_STREAMING 默认是否使用流式输出
image_input true / false 否 能力声明:是否支持图像输入
image_input_enabled true / false,默认 false …_IMAGE_INPUT_ENABLED 运维闸门:能力已声明不等同于对用户开放
max_tokens 正整数 …_MAX_TOKENS 默认 max_tokens
temperature 0–2 …_TEMPERATURE 温度参数
vision_max_tokens 正整数 …_VISION_MAX_TOKENS 视觉模式 max_tokens
vision_temperature 0–2 …_VISION_TEMPERATURE 视觉模式温度参数

默认模型须设置 public: true,否则进程无法启动。

主站以 /api/models 为唯一模型目录来源。请求体中不得包含 endpoint 或密钥。

question_app.secrets.yaml

文件权限须为 0600。结构与主 YAML 相同,仅存放密钥。CG 的 cg_rag.api_key 同样写入此文件。

YAML 路径 环境变量 含义
llm.api_key QUESTION_GENERATED_APP_API_KEY 问答默认密钥 / DeepSeek 回退密钥
cg_rag.api_key CG_RAG_API_KEY CG_RAG 文本生成密钥
cg_rag.vision.api_key CG_RAG_VISION_API_KEY 视觉模块密钥;可为空
providers.<id>.api_key 该 provider 的 env_key 模型目录对应网关的密钥

示例(占位符,真实密钥不得写入文档或 git):

llm:
  api_key: replace-with-api-key
cg_rag:
  api_key: replace-with-api-key
  vision:
    api_key: ""
providers:
  deepseek_official:
    api_key: replace-with-deepseek-official-key
  polyic:
    api_key: ""

修改完成后须重启问答 API。前端模型 UI 有变更时还需重新执行 next build。可通过 /api/models 确认脱敏后的配置结果。