增加代码知识库;修复文档处理内容;增加API设置
This commit is contained in:
58
rag-web-ui/backend/app/services/consistency/prompt.py
Normal file
58
rag-web-ui/backend/app/services/consistency/prompt.py
Normal file
@@ -0,0 +1,58 @@
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user