113 lines
4.1 KiB
Python
113 lines
4.1 KiB
Python
# mythology.py
|
||
|
||
from abc import ABC, abstractmethod
|
||
from typing import Dict, Any
|
||
|
||
class MythologyEngine(ABC):
|
||
"""
|
||
神话引擎抽象基类 (Abstract Base Class)。
|
||
|
||
定义了所有神话体系映射的统一接口,确保上层应用(如FSM)
|
||
可以无差别地调用,实现核心逻辑与文化叙事的解耦。
|
||
"""
|
||
|
||
@abstractmethod
|
||
def get_actor_name(self, component: str) -> str:
|
||
"""
|
||
根据技术组件名称,获取其在神话体系中对应的角色名称。
|
||
:param component: 技术组件的标识符 (e.g., 'refiner', 'verifier').
|
||
:return: 神话角色的名称 (e.g., '太上老君', '灵宝道君').
|
||
"""
|
||
pass
|
||
|
||
@abstractmethod
|
||
def get_process_metaphor(self, process: str) -> str:
|
||
"""
|
||
根据技术流程名称,获取其在神话体系中的隐喻。
|
||
:param process: 技术流程的标识符 (e.g., 'external_fetch').
|
||
:return: 神话流程的隐喻 (e.g., '撒豆成兵').
|
||
"""
|
||
pass
|
||
|
||
@abstractmethod
|
||
def get_system_narrative(self) -> str:
|
||
"""
|
||
获取整个系统的世界观或宏大叙事。
|
||
:return: 描述系统哲学的字符串。
|
||
"""
|
||
pass
|
||
|
||
|
||
class DaoistMythologyEngine(MythologyEngine):
|
||
"""
|
||
道家“封神”神话引擎的具体实现。
|
||
|
||
将“太公心易”系统的组件和流程映射到道家和封神演义的神话体系中。
|
||
"""
|
||
|
||
def __init__(self):
|
||
self._actor_map: Dict[str, str] = {
|
||
# FSM States / Core Components
|
||
'collector': '聚仙楼',
|
||
'divergence_handler': '白虎观会议',
|
||
'refiner': '太上老君',
|
||
'verifier': '灵宝道君',
|
||
'synthesizer': '元始天尊',
|
||
'actuator': '打神鞭',
|
||
# Agent Roles
|
||
'macro_analyst': '铁拐李',
|
||
'strategist': '汉钟离',
|
||
'sentiment_analyst': '张果老',
|
||
'compliance_checker': '曹国舅',
|
||
}
|
||
self._process_map: Dict[str, str] = {
|
||
'multi_agent_debate': '八仙论道',
|
||
'refinement_process': '兜率宫炼丹',
|
||
'external_verification': '撒豆成兵',
|
||
'final_decision': '元始决断',
|
||
'async_webhook_call': '元神出窍',
|
||
}
|
||
self._narrative = "本系统是一个道法自然、洞察万象的AI智能决策生态,名为“太公心易”。"
|
||
|
||
def get_actor_name(self, component: str) -> str:
|
||
"""
|
||
获取道家神话体系中的角色名称。
|
||
"""
|
||
return self._actor_map.get(component, "未知神祇")
|
||
|
||
def get_process_metaphor(self, process: str) -> str:
|
||
"""
|
||
获取道家神话体系中的流程隐喻。
|
||
"""
|
||
return self._process_map.get(process, "混沌演化")
|
||
|
||
def get_system_narrative(self) -> str:
|
||
"""
|
||
返回“太公心易”系统的宏大叙事。
|
||
"""
|
||
return self._narrative
|
||
|
||
# --- 示例:如何使用解耦的引擎 ---
|
||
if __name__ == '__main__':
|
||
# 上层应用可以声明它需要一个 MythologyEngine,而无需关心具体实现
|
||
def describe_system_component(engine: MythologyEngine, component: str, process: str):
|
||
actor = engine.get_actor_name(component)
|
||
metaphor = engine.get_process_metaphor(process)
|
||
print(f"组件 '{component}' 由 [{actor}] 负责,其核心流程 '{process}' 被称为 [{metaphor}]。")
|
||
|
||
# 在运行时,我们可以传入任何一个具体的引擎实例
|
||
daoist_engine = DaoistMythologyEngine()
|
||
|
||
print(f"系统世界观: {daoist_engine.get_system_narrative()}")
|
||
print("-" * 50)
|
||
|
||
describe_system_component(daoist_engine, 'refiner', 'refinement_process')
|
||
describe_system_component(daoist_engine, 'verifier', 'external_verification')
|
||
|
||
# 如果未来要切换到希腊神话,只需实现一个 GreekMythologyEngine 即可,
|
||
# 上层应用 describe_system_component 的代码完全不需要修改。
|
||
# class GreekMythologyEngine(MythologyEngine):
|
||
# ...
|
||
# greek_engine = GreekMythologyEngine()
|
||
# describe_system_component(greek_engine, 'refiner', 'refinement_process')
|