更新 providers
This commit is contained in:
@@ -7,13 +7,46 @@ Puzzle 模块 - 谜题生成系统
|
||||
from .base import BasePuzzle
|
||||
from .cloze import ClozePuzzle
|
||||
from .mcq import MCQPuzzle
|
||||
from .factory import PuzzleFactory
|
||||
from .loader import PuzzleLoader
|
||||
|
||||
__all__ = [
|
||||
'BasePuzzle',
|
||||
'ClozePuzzle',
|
||||
'MCQPuzzle',
|
||||
'PuzzleFactory',
|
||||
'PuzzleLoader',
|
||||
]
|
||||
]
|
||||
|
||||
puzzles = {
|
||||
"mcq": MCQPuzzle,
|
||||
"cloze": ClozePuzzle,
|
||||
"base": BasePuzzle,
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def create_by_dict(config_dict: dict) -> BasePuzzle:
|
||||
"""
|
||||
根据配置字典创建谜题
|
||||
|
||||
Args:
|
||||
config_dict: 配置字典,包含谜题类型和参数
|
||||
|
||||
Returns:
|
||||
BasePuzzle: 谜题实例
|
||||
|
||||
Raises:
|
||||
ValueError: 当配置无效时抛出
|
||||
"""
|
||||
puzzle_type = config_dict.get('type')
|
||||
|
||||
if puzzle_type == 'cloze':
|
||||
return puzzles["cloze"](
|
||||
text=config_dict['text'],
|
||||
min_denominator=config_dict.get('min_denominator', 7)
|
||||
)
|
||||
elif puzzle_type == 'mcq':
|
||||
return puzzles["mcq"](
|
||||
mapping=config_dict['mapping'],
|
||||
jammer=config_dict.get('jammer', []),
|
||||
max_riddles_num=config_dict.get('max_riddles_num', 2),
|
||||
prefix=config_dict.get('prefix', '')
|
||||
)
|
||||
else:
|
||||
raise ValueError(f"未知的谜题类型: {puzzle_type}")
|
||||
Reference in New Issue
Block a user