| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- # 2️ 解析审查项配置
- from typing import List, Dict, Union
- def _replace_review_suffix(items: List[str], mapping: Dict[str, Union[str, List[str]]]) -> List[str]:
- """
- 将列表中字符串的下划线后内容替换为映射表中的对应值
- 处理多值映射(如completeness_check对应两个值时生成两条结果)
- """
- result = []
- for item in items:
- # 拆分下划线前后部分(只拆分第一个下划线,因为后缀可能包含下划线)
- if '_' in item:
- prefix, suffix = item.split('_', 1) # split('_', 1) 确保只拆分一次
- else:
- # 无下划线时直接保留原字符串(根据实际需求可调整)
- result.append(item)
- continue
-
- # 获取映射值,无匹配时保留原后缀
- mapped_value = mapping.get(suffix, suffix)
-
- # 处理单值映射
- if isinstance(mapped_value, str):
- result.append(f"{prefix}_{mapped_value}")
- # 处理多值映射(列表类型)
- elif isinstance(mapped_value, list):
- for val in mapped_value:
- result.append(f"{prefix}_{val}")
-
- return result
- review_func_mapping: Dict[str, Union[str, List[str]]] = {
- 'sensitive_word_check': 'sensitive_word_check',
- 'semantic_logic_check': 'check_semantic_logic',
- 'completeness_check': ['check_completeness', 'outline_check'],
- 'timeliness_check': 'timeliness_basis_reviewer',
- 'reference_check': 'reference_basis_reviewer',
- 'sensitive_check': 'check_sensitive',
- 'non_parameter_compliance_check': 'check_non_parameter_compliance',
- 'parameter_compliance_check': 'check_parameter_compliance'
- }
- review_item_config = [
- "safety_sensitive_check",
- "overview_completeness_check",
- "basis_timeliness_check",
- "basis_sensitive_word_check",
- "catalogue_sensitive_word_check",
- "catalogue_semantic_logic_check",
- "basis_timeliness_check",
- ]
- review_item_config = _replace_review_suffix(review_item_config, review_func_mapping)
- review_item_dict = {}
- for item in review_item_config:
- key, value = item.split("_", 1)
- review_item_dict.setdefault(key, []).append(value)
- # 依据方案标准章节顺序进行排序
- sgfa_chapter_index_order = ["catalogue", "basis", "overview", "plan","technology", "safety", "quality", "environment",
- "management", "acceptance", "other"]
- all_keys = review_item_dict.keys()
- sorted_keys = sorted(
- all_keys,
- key=lambda x :sgfa_chapter_index_order.index(x)
- )
- review_item_dict_sorted = {}
- for key in sorted_keys:
- review_item_dict_sorted[key] = review_item_dict[key]
- print(f"审查项配置解析完成: {review_item_dict_sorted}")
- # 3️ 获取结构化内容
|