From f09062491e9d08b43a5fd13362d9dcc916b72452 Mon Sep 17 00:00:00 2001 From: zzlgreat Date: Mon, 22 Dec 2025 00:02:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0Company=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E7=9A=84UI=E4=B8=BAFUI=E9=A3=8E=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 57 +++++++++++++++++++++++++++------------------------------ 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/app.py b/app.py index 71f841af..3941c297 100755 --- a/app.py +++ b/app.py @@ -11046,40 +11046,37 @@ def get_events_by_mainline(): concept_hierarchy_map = {} # { concept_name: { lv1, lv2, lv1_id, lv2_id } } try: - # 调用 concept-api 获取层级结构 - hierarchy_resp = requests.get( - 'https://api.valuefrontier.cn/concept-api/hierarchy', - timeout=10 - ) - if hierarchy_resp.status_code == 200: - hierarchy_data = hierarchy_resp.json() - hierarchy_list = hierarchy_data.get('hierarchy', []) + # 从本地文件读取概念层级结构 + import json + import os + hierarchy_file = os.path.join(os.path.dirname(__file__), 'concept_hierarchy_v3.json') + with open(hierarchy_file, 'r', encoding='utf-8') as f: + hierarchy_data = json.load(f) + hierarchy_list = hierarchy_data.get('hierarchy', []) - # 构建概念名称 -> lv2 映射 - # 结构: L1 -> L2 -> L3 -> concepts (concepts 只在 L3 层) - for lv1 in hierarchy_list: - lv1_name = lv1.get('name', '') - lv1_id = lv1.get('id', '') + # 构建概念名称 -> lv2 映射 + # 结构: L1 -> L2 -> L3 -> concepts (concepts 只在 L3 层) + for lv1 in hierarchy_list: + lv1_name = lv1.get('name', '') + lv1_id = lv1.get('id', '') - for lv2 in lv1.get('children', []) or []: - lv2_name = lv2.get('name', '') - lv2_id = lv2.get('id', '') + for lv2 in lv1.get('children', []) or []: + lv2_name = lv2.get('name', '') + lv2_id = lv2.get('id', '') - # L3 层包含 concepts - for lv3 in lv2.get('children', []) or []: - for concept in lv3.get('concepts', []) or []: - concept_name = concept if isinstance(concept, str) else concept.get('name', '') - if concept_name: - concept_hierarchy_map[concept_name] = { - 'lv1': lv1_name, - 'lv1_id': lv1_id, - 'lv2': lv2_name, - 'lv2_id': lv2_id - } + # L3 层包含 concepts + for lv3 in lv2.get('children', []) or []: + for concept in lv3.get('concepts', []) or []: + concept_name = concept if isinstance(concept, str) else concept.get('name', '') + if concept_name: + concept_hierarchy_map[concept_name] = { + 'lv1': lv1_name, + 'lv1_id': lv1_id, + 'lv2': lv2_name, + 'lv2_id': lv2_id + } - app.logger.info(f'[mainline] 加载概念层级映射: {len(concept_hierarchy_map)} 个概念') - else: - app.logger.warning(f'[mainline] 概念层级API返回非200: {hierarchy_resp.status_code}') + app.logger.info(f'[mainline] 加载概念层级映射: {len(concept_hierarchy_map)} 个概念') except Exception as e: app.logger.warning(f'[mainline] 获取概念层级失败: {e}')