45 lines
886 B
Python
45 lines
886 B
Python
import os
|
|
from typing import Any
|
|
|
|
import orjson
|
|
|
|
|
|
def load_scenes() -> dict[str, Any]:
|
|
"""
|
|
从JSON文件加载场景数据
|
|
|
|
Returns:
|
|
Dict: 包含所有场景的字典
|
|
"""
|
|
current_dir = os.path.dirname(os.path.abspath(__file__))
|
|
json_path = os.path.join(current_dir, "template_scene.json")
|
|
|
|
with open(json_path, encoding="utf-8") as f:
|
|
return orjson.loads(f.read())
|
|
|
|
|
|
PERSONALITY_SCENES = load_scenes()
|
|
|
|
|
|
def get_scene_by_factor(factor: str) -> dict | None:
|
|
"""
|
|
根据人格因子获取对应的情景测试
|
|
|
|
Args:
|
|
factor (str): 人格因子名称
|
|
|
|
Returns:
|
|
dict: 包含情景描述的字典
|
|
"""
|
|
return PERSONALITY_SCENES.get(factor, None)
|
|
|
|
|
|
def get_all_scenes() -> dict:
|
|
"""
|
|
获取所有情景测试
|
|
|
|
Returns:
|
|
Dict: 所有情景测试的字典
|
|
"""
|
|
return PERSONALITY_SCENES
|