完善Page类型和入口文件
This commit is contained in:
parent
a1eb5917a2
commit
aaac5da9a9
@ -106,6 +106,45 @@ def get_meta(pagetype: str):
|
|||||||
"""获取 pagetype 的元数据,返回后端适配器的原始结果结构。"""
|
"""获取 pagetype 的元数据,返回后端适配器的原始结果结构。"""
|
||||||
return Page(pagetype).get_meta()
|
return Page(pagetype).get_meta()
|
||||||
|
|
||||||
|
|
||||||
|
def get_field_mapping_from_jingrow(pagetype: str):
|
||||||
|
"""获取字段的label到fieldname的映射,返回 {label: fieldname} 的映射字典。"""
|
||||||
|
return Page(pagetype).get_field_mapping_from_jingrow()
|
||||||
|
|
||||||
|
|
||||||
|
def get_field_value_from_jingrow(pagetype: str, name: str, fieldname: str):
|
||||||
|
"""从Jingrow获取字段的当前值,返回字段的当前值,如果为空则返回None。"""
|
||||||
|
return Page(pagetype).get_field_value_from_jingrow(name, fieldname)
|
||||||
|
|
||||||
|
|
||||||
|
def map_fields_by_labels(field_map: list, ai_outputs: dict, label_to_fieldname: dict) -> dict:
|
||||||
|
"""
|
||||||
|
根据 field_map 将 ai_outputs 映射为记录字段数据。
|
||||||
|
- field_map: [{ 'from': '来源字段', 'to': '目标label或字段名' }]
|
||||||
|
- ai_outputs: 上游节点聚合的输出
|
||||||
|
- label_to_fieldname: 来自 Jingrow 的 label 到字段名映射
|
||||||
|
返回: dict 记录字段数据
|
||||||
|
"""
|
||||||
|
record_data = {}
|
||||||
|
fieldname_set = set(label_to_fieldname.values())
|
||||||
|
for mapping in field_map or []:
|
||||||
|
source_key = mapping.get('from')
|
||||||
|
to_raw = mapping.get('to')
|
||||||
|
if not source_key or to_raw is None:
|
||||||
|
continue
|
||||||
|
value = ai_outputs.get(source_key)
|
||||||
|
if value is None:
|
||||||
|
continue
|
||||||
|
# 目标字段既支持label也支持字段名
|
||||||
|
to_field = label_to_fieldname.get(str(to_raw).strip())
|
||||||
|
if not to_field and str(to_raw).strip() in fieldname_set:
|
||||||
|
to_field = str(to_raw).strip()
|
||||||
|
if not to_field:
|
||||||
|
continue
|
||||||
|
record_data[to_field] = value
|
||||||
|
return record_data
|
||||||
|
|
||||||
|
|
||||||
def _ensure_logging_configured() -> None:
|
def _ensure_logging_configured() -> None:
|
||||||
|
|
||||||
# 统一在 root logger 上配置输出与格式,这样通过名为 "jingrow" 的 logger 打印时,
|
# 统一在 root logger 上配置输出与格式,这样通过名为 "jingrow" 的 logger 打印时,
|
||||||
|
|||||||
@ -106,5 +106,11 @@ class Page:
|
|||||||
def get_single(self) -> Dict[str, Any]:
|
def get_single(self) -> Dict[str, Any]:
|
||||||
return self.adapter.get_single_pagetype(self.pagetype)
|
return self.adapter.get_single_pagetype(self.pagetype)
|
||||||
|
|
||||||
|
def get_field_mapping_from_jingrow(self) -> Dict[str, str]:
|
||||||
|
return self.adapter.get_field_mapping_from_jingrow(self.pagetype)
|
||||||
|
|
||||||
|
def get_field_value_from_jingrow(self, name: str, fieldname: str) -> Optional[Any]:
|
||||||
|
return self.adapter.get_field_value_from_jingrow(self.pagetype, name, fieldname)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user