完善Page类

This commit is contained in:
jingrow 2025-10-31 22:07:27 +08:00
parent 0efe02fafc
commit ede503b863
2 changed files with 28 additions and 0 deletions

View File

@ -7,6 +7,7 @@ import inspect
import logging
import os
from jingrow.model.page import Page
from jingrow.services.runtime import get_adapter
from jingrow.config import Config
_local = {}
@ -106,6 +107,22 @@ def get_meta(pagetype: str):
"""获取 pagetype 的元数据,返回后端适配器的原始结果结构。"""
return Page(pagetype).get_meta()
def get_field_mapping(pagetype: str) -> Dict[str, str]:
"""获取指定 pagetype 的字段标签到字段名映射。"""
return Page(pagetype).get_field_mapping_from_jingrow()
def map_fields(field_map: List[Dict[str, Any]], ai_outputs: Dict[str, Any], label_to_fieldname: Dict[str, str]) -> Dict[str, Any]:
"""依据字段映射与标签->字段名映射,将 AI 输出转为文档字段字典。"""
adapter = get_adapter()
return adapter.map_fields_by_labels(field_map, ai_outputs, label_to_fieldname)
def get_field_value(pagetype: str, name: str, fieldname: str) -> Optional[Any]:
"""获取指定文档字段值。"""
return Page(pagetype).get_field_value_from_jingrow(name, fieldname)
def _ensure_logging_configured() -> None:
# 统一在 root logger 上配置输出与格式,这样通过名为 "jingrow" 的 logger 打印时,

View File

@ -106,5 +106,16 @@ 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 map_fields_by_labels(self, field_map: List[Dict[str, Any]],
ai_outputs: Dict[str, Any],
label_to_fieldname: Dict[str, str]) -> Dict[str, Any]:
return self.adapter.map_fields_by_labels(field_map, ai_outputs, label_to_fieldname)
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)