# /api/chat 字段与取值中文对照 适用日期:2026-09-14。配合 [接口文档与完整样例](api-chat.md) 阅读。本页按实际返回层级解释英文key和固定value,不改变接口协议。 **key是字段名,value是字段值。** 例如 `"eligibility":"not_evaluated"` 表示“资格评估:未评估”;`"priority":{"rank":1}` 表示“展示优先级:第1位”,不是通过率。 阅读约定:`[]`表示数组中的每一项;下面的路径是定位字段用的写法,不是额外的接口参数。`true`表示是,`false`表示否,`null`表示未提供/未知,不能都当成“否”;`[]`表示空列表,`{}`表示空对象。ID、原文路径、哈希值和错误码用于程序关联,不适合作为页面正文。 例如收到progress事件时,里面的JSON可以这样读。以下是带中文注释的阅读示例(JSONC),实际接口JSON不含注释: ```jsonc { "thread_id": "window-001", // 这个结果属于哪个会话窗口 "request_id": "a78b17a3b38241fa83c8ee91f40ec608", // 当前这一轮请求的标识 "data": { // 当前事件的具体内容 "stage": "retrieve", // 处理阶段:政策与服务检索 "status": "running", // 阶段状态:正在处理 "message": "正在检索相关政策和配套服务……" // 前端直接展示这段中文 } } ``` ## 1. 最常用字段:页面上显示什么 | 英文key / 路径 | 中文名称 | 前端展示建议 | | --- | --- | --- | | progress.data.message | 当前处理提示 | 显示“正在检索相关政策……” | | heartbeat.data.elapsed_seconds | 已等待秒数 | 显示“已等待20秒” | | answer.data.text | 回答文本 | 普通聊天的完整回复;推荐场景的开场概述 | | item.data.card.name.text | 政策/产品/服务完整名称 | 卡片标题 | | item.data.card.department.text | 所属部门或提供机构 | 卡片“所属部门” | | item.data.card.support_objects.text | 支持对象 | 卡片“支持对象” | | item.data.card.support_methods_standards.text | 支持方式和标准 | 卡片“支持内容” | | item.data.card.application_conditions.text | 申报条件 | 卡片“申报条件” | | item.data.match_reason | 与当前问题的匹配原因 | 卡片“匹配原因” | | summary.data.text | 综合说明 | 所有卡片后的结论与下一步 | | interrupt.data.question | 需要用户回答的问题 | 公司补问/候选确认提示 | | result.data.errors | 本轮图流程错误列表 | 非空时提示本轮存在异常,不把错误码直接当回复 | 左侧的progress/item等是SSE事件名,**不在JSON对象中**。事件data内的JSON统一还有thread_id、request_id、data三项。卡片字段可能为null,先判断对象存在再取.text;可显示“原文未明确”或隐藏该栏。 ## 2. 请求、事件与统一封装 | key | 中文名称 | value含义 | | --- | --- | --- | | thread_id | 会话窗口ID | 例如window-001,同一窗口复用;不是用户ID或权限凭证 | | question | 用户本轮输入 | 普通问题,或针对补问的回复字符串 | | request_id | 本次请求ID | 每次POST生成一个新ID,用于区分同一窗口的不同轮次 | | data | 本事件的数据内容 | 具体结构取决于event;不是所有data都具有相同字段 | | event(SSE行) | 事件类型 | 下表说明;不是JSON里的key | | event固定value | 中文含义 | 是否是最终内容 | | --- | --- | --- | | accepted | 已接收问题 | 否,只表示接纳 | | progress | 处理阶段更新 | 否,过程提示 | | heartbeat | 等待中的存活通知 | 否,显示仍在处理 | | answer | 回答文本 | 是,正文或概述 | | source | 一条参考来源 | 是,证据详情 | | item | 一项推荐 | 是,一张卡片及其依据 | | summary | 综合说明 | 是,末尾结论 | | interrupt | 等待用户补充/确认 | 是交互问题,尚需继续 | | result | 本轮完整结果快照 | 与前面answer/item等有重复,不重复追加展示 | | done | 本次响应流正常结束 | 停止本轮加载动画 | | error | 本次响应流异常结束 | 显示错误并停止加载 | ## 3. 进度与完成状态 | key | 中文名称 | 说明 | | --- | --- | --- | | stage | 当前阶段标识 | 固定英文值见下表 | | status | 当前状态 | 同名字段在不同位置含义不同,必须结合路径判断 | | message | 给用户看的说明 | 直接展示已返回的中文 | | elapsed_seconds | 本次请求累计耗时 | 单位秒,不是剩余时间或节点单独耗时 | | stage的value | 中文含义 | | --- | --- | | session | 读取会话信息 | | prepare | 整理用户问题 | | analyze | 识别需求;普通对话的LLM回复也在此生成 | | direct | 输出普通对话回复 | | clarify | 准备补问信息 | | search | 查找公司候选(此处不是政策检索) | | confirm | 整理公司候选供用户确认 | | basic | 查询工商信息 | | honors | 查询企业荣誉/资质 | | handoff | 汇总需求及已有信息 | | plan | 拆解需求、规划检索 | | retrieve | 检索政策及配套服务 | | recommend | 分析原文、核对条件并整理回答 | | status所在位置 | 固定value | 中文含义 | | --- | --- | --- | | progress.data.status | running | 正在处理这一阶段 | | progress.data.status | completed | 这一阶段执行结束,不保证所有业务结果成功 | | progress.data.status | waiting_input | 等待用户补充或确认 | | progress.data.status | failed | 阶段执行抛错 | | heartbeat.data.status | processing | 本次请求仍在处理 | | done.data.status | completed | 本轮流程结束,不等于审批通过 | | done.data.status | needs_input | 本轮流已结束,等待用户下一次POST继续 | ## 4. 最终result与recommendation 以下相对 `result.data` 解释;普通聊天的recommendation为 `{}`,没有下面的推荐子字段。 | key | 中文名称 | 说明 | | --- | --- | --- | | response | 本轮回复文本 | 与answer.data.text一致 | | recommendation | 政策/服务推荐结果 | 聊天为空对象;政策或具体需求为结构化对象 | | errors | 会话及图流程错误 | 字符串列表;不覆盖所有候选分析或检索错误 | 以下相对 `result.data.recommendation` 解释: | key | 中文名称 | value / 用途 | | --- | --- | --- | | overview | 开场概述 | 与本轮response一致 | | conversation_kind | 会话目的 | policy_overview=了解政策;specific_need=解决具体需求 | | audience | 本轮处理对象 | general=一般政策介绍;individual=个人/无需公司路径;enterprise=需要企业信息的路径,不代表公司已核实 | | items | 推荐条目列表 | 每项与一个item事件的数据一致 | | sources | 来源列表 | 每项与一个source事件的数据一致;可能多于推荐条目 | | follow_up_questions | 待补充的资格条件问题 | 字符串列表,不等于公司interrupt中断 | | summary | 综合结论 | 内容与summary事件一致 | | excluded_items | 未入选展示的条目 | 包含source_id和reason | | presentation | 推荐展示方式 | 顺序提示,见下表 | | retrieval_analysis_complete | 本轮检索和分析是否完整 | true只代表本轮有限候选处理完整,不代表没有遗漏政策 | | complete | 本轮结果完整性标记 | 还考虑必要企业信息和规划等;不是获批结果,也不覆盖summary降级 | | company_context | 公司信息获取情况 | 不是完整工商画像 | | analysis_errors | 候选逐项分析错误 | 每项record_id=知识记录ID、code=错误码 | | retrieval | 检索过程信息 | 查询及失败范围等,可用于详情或诊断 | | search_plan | 查询拆解计划 | 查询方向是假设,不代表政策存在 | | 嵌套key | 中文名称 | 固定value中文解释 | | --- | --- | --- | | presentation.order | 建议展示顺序 | ["items","summary"]=先推荐卡片,再综合说明 | | presentation.sorted_by | 排序依据标识 | subject_policy_evidence=主体与政策证据;纯政策介绍实际仍按原检索顺序,以items/priority为准 | | company_context.profile_verified | 已取得身份核对后的公司工商资料 | true=已取得;不代表政策资格已通过 | | company_context.honors_complete | 荣誉获取是否完整 | true=完整,false=未完整,null=无该状态/未查询 | | company_context.errors | 公司流程错误列表 | 如工商查询失败等 | 普通对话在图内部还有service_intro=身份/能力咨询、greeting=问候/致谢、smalltalk=闲聊/轻量创作、general_info=一般信息咨询、needs_clarification=需求待说明、out_of_scope=无法处理的范围外任务、analysis_failed=识别失败。**这些内部分类目前不单独返回在普通聊天result中**,不要要求前端必须收到它们。 ## 5. item与卡片字段 以下相对 `item.data` 或 `recommendation.items[]` 解释: | key | 中文名称 | 说明 | | --- | --- | --- | | source_id | 对应来源ID | 与sources[].id关联 | | title | 来源标题 | 页面正式名称优先显示card.name.text | | card | 卡片信息 | 各字段见下表 | | answer | 这一条的解释正文 | 与外层answer事件不同,是单条政策/服务说明 | | match_reason | 匹配原因 | 此处是字符串 | | match_basis | 主体与政策的比较依据 | 数组,逐项记录用户/公司事实与政策条款 | | citations | 引用列表 | 每条包含path、quote | | conditions | 条件核验列表 | 不是原文中所有申报条件的简单拷贝 | | eligibility | 资格评估状态 | not_evaluated=未评估;当前具体需求入选条目通常为“待确认” | | recommendation_status | 推荐结论说明 | 已是中文,如“相关政策与服务介绍”“相关线索,资格待核验” | | priority | 展示优先级 | 不表示概率 | | priority.rank | 展示序号 | 1=第1项,2=第2项,数值越小越靠前 | | priority.basis | 排序理由 | 已是中文,如“原检索顺序” | | card内key | 中文名称 | value结构/含义 | | --- | --- | --- | | kind | 卡片类型 | policy=政策;financial_product=金融产品;service=服务事项 | | name | 正式完整名称 | {text,citations},应保留完整名称 | | department | 所属部门/提供机构 | {text,citations}或null | | support_objects | 支持对象 | {text,citations}或null | | support_methods_standards | 支持方式和标准 | {text,citations}或null | | application_conditions | 申报条件 | {text,citations}或null | | match_reason | 匹配原因信息 | 对象,含text、citations、subject_policy_comparisons;不是字符串 | | match_reason.subject_policy_comparisons | 主体与政策逐项比较 | 与item.match_basis对应的比较数组 | | text | 可展示文本 | 实际中文内容,不是英文枚举 | | citations[].path | 引用在原始记录中的字段路径 | 例如/title、/raw_record/content;不是网址 | | citations[].quote | 原文引句 | 逐字引用的文本 | 同名key要看层级:`item.match_reason`是文字,`item.card.match_reason`是对象;`item.answer`是单条说明,SSE `answer.data.text`是整轮正文或概述。 ## 6. conditions:资格条件核验 | key | 中文名称 | value含义 | | --- | --- | --- | | dimension | 核验维度 | 地区/主体/行业/时间/其他条件,已是中文 | | status | 条件核验状态 | 满足/不满足/待确认,已是中文;当前模型输出“满足”会被保守转为“待确认” | | requirement | 条件要求 | 原文规定或尚需核验的要求 | | quote | 条件依据的原文引句 | 可能为空,表示没有该引用 | | user_evidence | 已知用户信息依据 | 用户自述或当前已有事实,可能为空 | | question | 需要补问的内容 | 可能为空;不代表一定触发interrupt | | evidence_path | 证据所在字段路径 | 可选字段,例如明确有效期已过时附带 | “待确认”不是“不符合”;“有相关依据”不是“已具备资格”。页面宜显示核验状态和具体缺口,不转换为通过率。 ## 7. match_basis:主体事实与政策比较 | key | 中文名称 | value含义 | | --- | --- | --- | | dimension | 比较维度 | 需求/地区/行业/资质/主体/时间/其他;与conditions维度不完全相同 | | status | 相关性比较结论 | supports=支持相关性;conflicts=存在冲突;unknown=无法判断 | | fact_path | 主体事实路径 | 例如/question=本轮原问题,/company/...=工商字段,/honors/...=荣誉字段 | | fact_quote | 主体事实引文 | 用户或公司资料中的原始内容 | | policy_path | 政策证据路径 | 政策原文记录内的位置 | | policy_quote | 政策原文引句 | 用来比较的政策条款 | | explanation | 比较结论解释 | 中文说明 | | fact_origin | 主体事实来源类别 | user=用户自述;company=工商资料;honor=荣誉资质资料 | | provenance | 来源追溯信息 | 根据来源类型附带不同字段 | | provenance.type | 来源类型说明 | user_statement=用户自述 | | provenance.api_code | 企业信息接口编号 | 886=公司候选查询;410=工商详情;1001=荣誉资质(主体比较通常用后两项) | | provenance.fetched_at | 信息获取时间 | 时间字符串,不是政策发布日期 | | provenance.page_index | 原始查询页码 | 荣誉分页等使用 | `supports`只能译为“有支持相关性的依据”,不能译成“已满足条件”。 ## 8. summary与排除原因 | key | 中文名称 | value含义 | | --- | --- | --- | | summary.text | 综合说明正文 | 中文结论及下一步 | | summary.source_ids | 综合说明依据的来源ID列表 | 对应sources[].id | | summary.status | 说明生成状态 | generated=模型已生成;fallback=生成失败后使用备用说明;no_recommendations=没有入选推荐 | | summary.notices | 补充提示列表 | 例如资料未获取完整、同名条目处理等 | | summary.error | 综合说明错误码 | 可选,summary_generation_failed=综合说明生成失败 | | excluded_items[].source_id | 未入选条目的来源ID | 可关联sources查看原文 | | excluded_items[].reason | 未入选原因 | 下表释义 | | reason固定value | 中文含义 | | --- | --- | | expired | 原文明示的执行/有效期限已过 | | ineligible | 存在明确不满足的资格条件 | | reference_only | 仅供参考,未形成可展示的具体卡片 | | subject_conflict | 主体事实与政策条款有冲突 | | insufficient_personal_match | 缺少针对当前主体的需求/行业/资质匹配依据 | | duplicate_name | 与已展示条目名称重复,未合并不同版本 | ## 9. source:引用来源与原文 | key(相对source.data或sources[]) | 中文名称 | 说明 | | --- | --- | --- | | id | 来源记录ID | 与item.source_id关联 | | title | 原始记录标题 | 可能与卡片正式名称不同 | | type | 检索知识类型 | 下表释义 | | source | 原始资料来源信息 | 来源对象或null,不是原文正文 | | full_record | 完整知识记录 | 保留入库字段及原始内容,下面只解释统一模板字段 | | snapshot | 知识快照标识 | 用来定位这批入库数据,不能当作有效期或日期 | | analysis_complete | 这条资料是否分析完整 | true/false;不表示资格核验通过 | | detail_anchor | 页面详情锚点建议值 | 例如source-k_...;不是后端详情URL | | source.type / retrieval.searched_types值 | 中文含义 | | --- | --- | | policy | 政策知识 | | finance | 金融产品知识 | | qa | 问答知识 | | article | 文章类知识 | | service_guide | 办事指南 | | service_catalog | 服务目录 | 注意:金融知识类型是finance,金融卡片类型是financial_product;不是拼写错误。原始full_record.kind还可能是general=通用知识;catalog=索引目录是入库分类,当前常规搜索不查询它。 ### 原始source对象中的统一字段 | key | 中文名称 | | --- | --- | | file | 来源文件相对路径 | | locator | 文件内定位信息(结构依资料类型) | | sha256 | 来源文件内容校验值 | | url | 原始网页地址;为空时不应自行拼接 | | publisher | 发布机构 | | published_text | 原文发布日期文字 | | updated_text | 原文更新时间文字 | | acquired_at | 资料获取时间 | ### full_record统一模板字段 | key | 中文名称 / 说明 | | --- | --- | | schema_version | 数据结构版本 | | id、kind、title | 记录ID、原始知识类别、标题 | | collection | 所属资料集合 | | classification_path | 分类层级路径 | | applicability | 适用范围对象 | | applicability.region | 适用地区 | | applicability.target | 适用对象 | | source | 原始来源信息,见上表 | | validity | 有效性信息 | | validity.status | 有效性状态;unverified=未核实,不是“已失效” | | validity.effective_from / effective_to | 生效/失效日期,可能未知 | | data | 按资料类型整理的业务字段,不同于SSE外层data | | sections | 分段内容列表 | | raw_record | 原始资料记录,字段来自原数据,不能强制套用卡片字段含义 | | content_sha256 | 内容校验值,不用于正文展示 | | quality_flags | 资料整理质量提示列表,不是推荐评分 | | duplicate_of | 重复记录对应的ID;null=没有该关联 | 以上仅解释统一模板,实际full_record还可能包含摘要增强等字段;外部raw_record中的任意字段不能在没有来源定义时猜译。前端日常展示优先用card,原始数据可放入展开的“完整来源”。模板见 [政策](../knowledge/templates/policy.template.json)、[金融](../knowledge/templates/finance.template.json)、[问答](../knowledge/templates/qa.template.json)、[通用知识](../knowledge/templates/general.template.json)。 ## 10. 检索与需求拆解字段 | key(相对recommendation) | 中文名称 | 说明 | | --- | --- | --- | | search_plan.needs | 拆解出的独立需求 | 对象数组 | | search_plan.needs[].need | 需求描述 | 用户想解决什么 | | search_plan.needs[].evidence | 用户原话依据 | 必须来自本轮问题 | | search_plan.needs[].query | 为此需求生成的检索表达 | 搜索方向,不是政策名称或结论 | | search_plan.queries | 扩展检索表达列表 | 原问题仍会单独进入检索 | | search_plan.error | 拆解失败码 | null=此字段无错误;query_planning_failed=需求拆解失败 | | retrieval.queries | 实际用于检索的查询列表 | 包括原问题及有效扩展 | | retrieval.failed_databases | 检索失败的知识库类型列表 | 英文类型见第9节;retrieval_service=检索服务整体失败占位标识 | | retrieval.failed_queries | 失败的查询与知识类型组合 | 对象数组 | | retrieval.failed_queries[].query_index | 查询序号 | 从0开始,对应retrieval.queries;不同于从1开始的卡片rank | | retrieval.failed_queries[].type | 失败的知识类型 | policy/finance/qa等 | | retrieval.content_failures | 原文读取或校验失败的记录ID列表 | 不是未命中列表 | | retrieval.complete | 检索阶段是否完整 | true不代表每个政策都找到了 | | retrieval.snapshot | 检索所用知识快照 | 数据批次标识 | | retrieval.searched_types | 搜索过的知识类型 | 如policy、finance等 | | retrieval.candidate_limit | 候选预算上限 | 当前默认12,不是已推荐条数 | 整体服务降级时retrieval的部分字段可能缺失,不能把缺失强制转换成正常空列表。 ## 11. interrupt与公司候选 | key | 中文名称 | value含义 | | --- | --- | --- | | kind | 补问类型 | company_need=补充是否需要公司信息;company_selection=确认公司候选 | | question | 给用户的问题 | 直接展示 | | input_help | 输入方式提示 | 直接展示 | | schema | 内部补问参数结构说明 | 不要当成HTTP额外请求参数 | | schema.needs_company | 是否需要公司信息 | 文档提示boolean=布尔值;API仍通过question文字提交 | | schema.company_hint | 公司线索 | 文档提示string=字符串 | | result | 本次公司候选查询结果 | 不等于SSE result事件的最终答复 | | result.candidates | 公司候选列表 | 保持后端顺序,以显示序号选择 | | result.may_have_more | 是否可能有下一页 | true显示下一页操作 | | result.error | 候选查询失败码 | 有此错误时,不把空候选说成“查无公司” | | result.source | 公司查询来源信息 | 与知识source对象结构不同,见下表 | | page | 当前候选页码 | 从1开始 | | actions | 内部支持操作说明 | select=选择,refine=换关键词,next=下一页,retry=重试,cancel=取消公司查询 | | actions.select.key_no | 所选公司的内部标识 | 当前API由数字序号映射,不直接提交该对象 | | actions.refine.keyword | 新查询关键词 | API用question字符串提交 | | candidates[]中的key | 中文含义 | | --- | --- | | KeyNo | 公司候选唯一标识 | | Name | 公司名称 | | CreditCode | 统一社会信用代码 | | StartDate | 成立日期 | | OperName | 法定代表人/负责人姓名(依主体类型) | | Status | 企业登记状态,例如存续、注销;不是请求处理状态 | | No | 企业注册号 | | Address | 企业注册地址 | | 公司查询result.source中的key | 中文含义 | | --- | --- | | provider | 数据提供方,当前为企查查 | | api_code | 查询接口编号,886/410/1001释义见第7节 | | document_url | 数据接口文档地址,不是公司主页 | | fetched_at | 查询获取时间 | | page_index | 本次查询页码,未分页时可能为null | | total_records | 服务提供方报告的总条数,未知时为null | 用户选择第1家公司时提交 `question="1"`;换关键词直接提交新名称;/next=下一页,/retry=重试,/cancel=取消公司查询。不需要公司信息可输入“不需要”“无需公司信息”或/skip。不要把schema或actions里的对象原样塞入question。 ## 12. 错误码中文说明 错误对象中 `error`或`code`是程序识别的错误码,`message`是可选用户提示;不是每个错误都有message。多个层级的错误来源不同,页面应结合当前操作描述。 ### HTTP层和SSE终止错误 | 固定value | 中文含义 | | --- | --- | | application_json_required | 请求必须使用application/json | | invalid_request | 请求JSON或参数不符合要求 | | request_too_large | 请求内容超过64KiB | | request_timeout | 接收请求体超时 | | thread_busy | 该会话已有问题正在处理 | | server_busy | 服务处理容量已满或正在关闭 | | service_unavailable | 暂时无法提交后台处理任务 | | processing_failed | 本轮处理异常失败 | | stream_timeout | 流持续时间超过上限 | | unfinished_turn | 上轮还有未完成阶段,需要/retry恢复或换新会话 | ### 图流程与推荐中的常见错误 | 固定value | 中文含义 | | --- | --- | | intent_analysis_failed | 用户意图识别/普通对话模型调用失败 | | direct_response_unavailable | 普通回复缺失或格式不合法,已使用兜底 | | search_limit | 达到本轮公司候选查询次数上限 | | query_planning_failed | 需求拆解失败,本轮按原问题检索 | | summary_generation_failed | 综合说明生成失败,使用备用说明 | | analysis_budget_limit | 候选原文超过单条分析预算 | | analysis_context_limit | 模型输入超过上下文预算 | | incomplete_generation | 模型输出未完整结束 | | model_service_failure | 模型服务调用失败或输出无法解析 | | analysis_failed | 候选分析异常失败 | | invented_citation | 引文无法在对应原文中找到,已拒绝使用 | | invented_condition_quote | 条件引用无法在原文中找到 | | invented_card_citation | 卡片字段引用无法在原文中找到 | | invented_match_evidence | 主体或政策比较证据无法核对 | | missing_citations / missing_card_citation | 缺少正文/卡片引用 | | missing_card | 缺少规定的卡片字段 | | rewritten_policy_name | 卡片名称与原文完整名称不一致 | 分析错误还可能出现invalid_*、missing_*等结构校验码;这些表示模型输出未通过相应字段校验,不是用户资格“不满足”。未知码可显示“部分内容未能完成分析”,保留原码供排查,不猜测为“没有政策”。 ### 公司查询错误(可能带search:、basic:、honors:前缀) | 值或前缀 | 中文含义 | | --- | --- | | search: | 公司候选查询阶段 | | basic: | 工商资料查询阶段 | | honors: | 荣誉资质查询阶段 | | network_failure | 网络连接失败或超时 | | http_数字 | 上游HTTP错误,例如http_503=上游暂不可用 | | provider_failure | 企查查业务返回失败 | | response_too_large | 上游响应内容过大 | | invalid_json | 上游不是合法JSON | | invalid_result / invalid_search_result | 上游数据结构不符合要求 | | invalid_candidate / duplicate_candidate | 候选身份缺失或重复 | | invalid_paging | 分页信息不合法 | | company_identity_mismatch | 工商详情与用户确认的公司身份不一致 | | invalid_honor_result / invalid_honor_data | 荣誉返回结构不合法 | | inconsistent_honor_result / inconsistent_honor_paging | 荣誉记录或分页数据不一致 | | page_limit | 已到荣誉查询页数上限,资料可能未取全 | 例如 `basic:network_failure` 应理解为“查询工商信息时网络失败”,不能只显示“basic”。Redis等未捕获异常在API层通常被统一为processing_failed,不应期待接口透出所有内部错误。 ## 13. 不同“完成”标记分别判断什么 | 字段 | 可以理解为 | 不能理解为 | | --- | --- | --- | | progress.status=completed | 当前阶段结束 | 依赖一定成功、政策一定符合 | | done.status=completed | 本次响应流正常结束 | 模型一定没有降级、用户一定符合资格 | | retrieval.complete=true | 本轮检索范围内处理完整 | 所有政策都找到了 | | recommendation.complete=true | 本轮规定信息完整性条件通过 | 综合说明一定是模型生成、政策一定获批 | | summary.status=generated | 综合说明成功生成 | 内容已获人工审核或资格审批 | | conditions.status=待确认 | 资格条件还需补充核验 | 不符合条件 | | match_basis.status=supports | 当前事实支持相关性判断 | 全部申报条件已满足 | 页面上优先展示后端给出的中文message/text和具体事实。英文状态按所在字段翻译成标签即可,原始ID、路径、校验值、错误码放在引用详情或诊断信息中。