# 长文本字段归纳Skill 设计 ## 1. Skill 定位 `长文本字段归纳Skill` 负责对规则和表格无法稳定抽取的长文本字段进行证据限定后的 LLM 归纳。 英文实现标识建议使用 `LongTextFieldSummarizeSkill`。 本 Skill 必须通过 LLM Provider 调用模型,并支持 Mock Provider。 ## 2. 输入 ```python @dataclass class LongTextFieldSummarizeInput: documents: list[DocumentContent] field_definitions: list[FieldDefinition] enable_rag_context: bool = True ``` ## 3. 输出 ```python @dataclass class LongTextFieldSummarizeOutput: candidates: list[FieldCandidate] evidence_refs: list[EvidenceRef] tool_calls: list[dict] failed_fields: list[dict] ``` ## 4. 处理字段 1. 检测靶标。 2. 适用范围 / 预期用途。 3. 性能指标。 4. 临床评价路径。 ## 5. 核心方法 ### 5.1 `run(input) -> LongTextFieldSummarizeOutput` 主入口方法。 ### 5.2 `locate_field_context(document, field_definition) -> list[EvidenceChunk]` 通过 RAG 或关键词定位候选片段。 ### 5.3 `build_llm_prompt(field_definition, chunks) -> str` 构造限定上下文提示词。 ### 5.4 `call_provider(prompt, output_schema) -> dict` 调用 LLM Provider。 ### 5.5 `validate_output(output) -> FieldCandidate` 校验结构化输出。 ## 6. 技术实现 使用技术: 1. RAG fallback / Chroma 2. LLM Provider 3. JSON schema 4. Mock Provider ## 7. 异常处理 1. 找不到候选片段:字段标记待人工复核。 2. Provider 不可用:跳过 LLM。 3. 输出 JSON 非法:丢弃结果。 4. 输出没有来源片段:标记低可信。 ## 8. 测试要点 1. Mock Provider 可返回固定字段。 2. 找不到上下文时不会编造字段。 3. 非法 JSON 被拦截。 4. LLM 关闭时主流程仍可完成。