1.8 KiB
1.8 KiB
长文本字段归纳Skill 设计
1. Skill 定位
长文本字段归纳Skill 负责对规则和表格无法稳定抽取的长文本字段进行证据限定后的 LLM 归纳。
英文实现标识建议使用 LongTextFieldSummarizeSkill。
本 Skill 必须通过 LLM Provider 调用模型,并支持 Mock Provider。
2. 输入
@dataclass
class LongTextFieldSummarizeInput:
documents: list[DocumentContent]
field_definitions: list[FieldDefinition]
enable_rag_context: bool = True
3. 输出
@dataclass
class LongTextFieldSummarizeOutput:
candidates: list[FieldCandidate]
evidence_refs: list[EvidenceRef]
tool_calls: list[dict]
failed_fields: list[dict]
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. 技术实现
使用技术:
- RAG fallback / Chroma
- LLM Provider
- JSON schema
- Mock Provider
7. 异常处理
- 找不到候选片段:字段标记待人工复核。
- Provider 不可用:跳过 LLM。
- 输出 JSON 非法:丢弃结果。
- 输出没有来源片段:标记低可信。
8. 测试要点
- Mock Provider 可返回固定字段。
- 找不到上下文时不会编造字段。
- 非法 JSON 被拦截。
- LLM 关闭时主流程仍可完成。