完善Page类型和入口文件
This commit is contained in:
parent
a1eb5917a2
commit
aaac5da9a9
@ -106,6 +106,45 @@ def get_meta(pagetype: str):
|
||||
"""获取 pagetype 的元数据,返回后端适配器的原始结果结构。"""
|
||||
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:
|
||||
|
||||
# 统一在 root logger 上配置输出与格式,这样通过名为 "jingrow" 的 logger 打印时,
|
||||
|
||||
@ -106,5 +106,11 @@ class Page:
|
||||
def get_single(self) -> Dict[str, Any]:
|
||||
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