Files

59 lines
1.9 KiB
Python
Raw Permalink Normal View History

from __future__ import annotations
import json
from app.services.consistency.schema import RequirementSnapshot
SYSTEM_INSTRUCTION = """你是需求代码一致性审查助手。
只能基于输入的需求验收准则函数摘要代码片段调用链证据判断
不得补充未给出的代码事实
证据不足时输出 uncertain
输出严格 JSON不要 Markdown"""
def build_requirement_query(requirement: RequirementSnapshot) -> str:
parts = []
req_type = (requirement.requirement_type or "").lower()
if req_type == "interface":
parts.extend(
[
requirement.interface_name or "",
requirement.interface_type or "",
requirement.data_source or "",
requirement.data_destination or "",
requirement.description,
]
)
else:
parts.extend(
[
requirement.description,
"\n".join(requirement.acceptance_criteria),
requirement.section_title or "",
requirement.interface_name or "",
requirement.data_source or "",
requirement.data_destination or "",
]
)
return "\n".join(part for part in parts if part).strip()
def build_judgment_prompt(requirement: RequirementSnapshot, evidence_context: str) -> str:
payload = {
"requirement": requirement.to_dict(),
"evidence": evidence_context,
"output_schema": {
"verdict": "implemented | partial | missing | conflict | uncertain",
"confidence": 0.0,
"covered_points": [],
"missing_points": [],
"conflict_points": [],
"primary_evidence": [],
"reasoning": "brief reason based only on evidence",
"suggestion": "next action",
},
}
return SYSTEM_INSTRUCTION + "\n\n" + json.dumps(payload, ensure_ascii=False, indent=2)