Files
rag_agent/rag-web-ui/backend/app/services/consistency/prompt.py

59 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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)