feat: surface permit metadata in v2 responses
This commit is contained in:
parent
e1705198f3
commit
bba9dea59d
|
|
@ -114,16 +114,13 @@ def search_v2(query: str, return_debug: bool = False) -> Dict[str, Any]:
|
||||||
continue
|
continue
|
||||||
region_id, theme_id = option_id.split(":", 1)
|
region_id, theme_id = option_id.split(":", 1)
|
||||||
payload = load_theme_payload(region_id, theme_id)
|
payload = load_theme_payload(region_id, theme_id)
|
||||||
prompt_text = _compose_prompt(payload)
|
|
||||||
results.append(
|
results.append(
|
||||||
{
|
{
|
||||||
"id": option_id,
|
"id": option_id,
|
||||||
"display_name": item["display_name"],
|
"display_name": item["display_name"],
|
||||||
"region": payload["region"],
|
"region": payload["region"],
|
||||||
"theme": payload["theme"],
|
"theme": payload["theme"],
|
||||||
"business_scopes": payload["business_scopes"],
|
|
||||||
"permits": payload["permits"],
|
"permits": payload["permits"],
|
||||||
"prompt_snippet": prompt_text,
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -114,13 +114,20 @@ def load_permits_and_risks(region_id: str, theme_id: str) -> List[Dict[str, obje
|
||||||
rk.risk_content,
|
rk.risk_content,
|
||||||
rk.legal_basis,
|
rk.legal_basis,
|
||||||
rk.document_no,
|
rk.document_no,
|
||||||
rk.summary
|
rk.summary,
|
||||||
|
rpd.permit_status,
|
||||||
|
rpd.subitem_summary,
|
||||||
|
rpd.responsible_contact,
|
||||||
|
rpd.jurisdiction_scope
|
||||||
FROM region_theme_permits rtp
|
FROM region_theme_permits rtp
|
||||||
JOIN permits p ON p.id = rtp.permit_id
|
JOIN permits p ON p.id = rtp.permit_id
|
||||||
LEFT JOIN region_permit_risks rpr
|
LEFT JOIN region_permit_risks rpr
|
||||||
ON rpr.region_id = rtp.region_id
|
ON rpr.region_id = rtp.region_id
|
||||||
AND rpr.permit_id = rtp.permit_id
|
AND rpr.permit_id = rtp.permit_id
|
||||||
LEFT JOIN risks rk ON rk.id = rpr.risk_id
|
LEFT JOIN risks rk ON rk.id = rpr.risk_id
|
||||||
|
LEFT JOIN region_permit_details rpd
|
||||||
|
ON rpd.region_id = rtp.region_id
|
||||||
|
AND rpd.permit_id = rtp.permit_id
|
||||||
WHERE rtp.region_id = %s AND rtp.theme_id = %s
|
WHERE rtp.region_id = %s AND rtp.theme_id = %s
|
||||||
ORDER BY p.name, rk.risk_content
|
ORDER BY p.name, rk.risk_content
|
||||||
"""
|
"""
|
||||||
|
|
@ -129,7 +136,19 @@ def load_permits_and_risks(region_id: str, theme_id: str) -> List[Dict[str, obje
|
||||||
cur = conn.cursor()
|
cur = conn.cursor()
|
||||||
cur.execute(sql, (region_id, theme_id))
|
cur.execute(sql, (region_id, theme_id))
|
||||||
for row in cur.fetchall():
|
for row in cur.fetchall():
|
||||||
permit_id, permit_name, risk_id, risk_content, legal_basis, document_no, summary = row
|
(
|
||||||
|
permit_id,
|
||||||
|
permit_name,
|
||||||
|
risk_id,
|
||||||
|
risk_content,
|
||||||
|
legal_basis,
|
||||||
|
document_no,
|
||||||
|
summary,
|
||||||
|
permit_status,
|
||||||
|
subitem_summary,
|
||||||
|
responsible_contact,
|
||||||
|
jurisdiction_scope,
|
||||||
|
) = row
|
||||||
pid = str(permit_id)
|
pid = str(permit_id)
|
||||||
entry = permits.setdefault(
|
entry = permits.setdefault(
|
||||||
pid,
|
pid,
|
||||||
|
|
@ -138,8 +157,20 @@ def load_permits_and_risks(region_id: str, theme_id: str) -> List[Dict[str, obje
|
||||||
"name": str(permit_name),
|
"name": str(permit_name),
|
||||||
"business_scopes": [],
|
"business_scopes": [],
|
||||||
"risks": [],
|
"risks": [],
|
||||||
|
"permit_status": None,
|
||||||
|
"subitem_summary": None,
|
||||||
|
"responsible_contact": None,
|
||||||
|
"jurisdiction_scope": None,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
if entry["permit_status"] is None and permit_status:
|
||||||
|
entry["permit_status"] = permit_status.strip() or None
|
||||||
|
if entry["subitem_summary"] is None and subitem_summary:
|
||||||
|
entry["subitem_summary"] = subitem_summary.strip() or None
|
||||||
|
if entry["responsible_contact"] is None and responsible_contact:
|
||||||
|
entry["responsible_contact"] = responsible_contact.strip() or None
|
||||||
|
if entry["jurisdiction_scope"] is None and jurisdiction_scope:
|
||||||
|
entry["jurisdiction_scope"] = jurisdiction_scope.strip() or None
|
||||||
if risk_id is not None:
|
if risk_id is not None:
|
||||||
entry["risks"].append(
|
entry["risks"].append(
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue