字段手册:问答主站¶
给部署问答 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 确认脱敏后的配置结果。