86 lines
2.9 KiB
Python
86 lines
2.9 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
云顶之弈阵容推荐器 - 主程序
|
|
"""
|
|
import sys
|
|
import argparse
|
|
import logging
|
|
import os
|
|
|
|
from src.data_provider_demo import main as data_provider_demo
|
|
from src.recommendation_demo import main as recommendation_demo
|
|
from src.interface.cli import main as cli_main
|
|
from src.scoring.scoring_system import TeamScorer
|
|
from src.test_scoring import main as test_scoring
|
|
|
|
# 配置日志
|
|
logging.basicConfig(
|
|
level=logging.INFO,
|
|
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
|
)
|
|
logger = logging.getLogger("TFT-Strategist")
|
|
|
|
def main():
|
|
"""主程序入口"""
|
|
parser = argparse.ArgumentParser(description="云顶之弈阵容推荐器")
|
|
|
|
# 添加子命令
|
|
subparsers = parser.add_subparsers(dest="command", help="可用命令")
|
|
|
|
# 数据提供模块演示
|
|
data_parser = subparsers.add_parser("data", help="数据提供模块演示")
|
|
|
|
# 阵容推荐模块演示
|
|
recommend_parser = subparsers.add_parser("recommend", help="阵容推荐模块演示")
|
|
|
|
# 命令行界面
|
|
cli_parser = subparsers.add_parser("cli", help="交互式命令行界面")
|
|
cli_parser.add_argument("--population", type=int, help="阵容人口数量")
|
|
cli_parser.add_argument("--results", type=int, help="推荐结果数量")
|
|
cli_parser.add_argument("--level-weight", type=float, help="羁绊等级权重")
|
|
cli_parser.add_argument("--count-weight", type=float, help="羁绊数量权重")
|
|
cli_parser.add_argument("--cost-weight", type=float, help="棋子费用权重")
|
|
|
|
# 评分模块测试 (新增)
|
|
scoring_parser = subparsers.add_parser("scoring", help="评分模块测试")
|
|
scoring_parser.add_argument("--config", type=str, help="指定配置文件路径")
|
|
|
|
# 解析命令行参数
|
|
args = parser.parse_args()
|
|
|
|
# 根据子命令执行相应功能
|
|
if args.command == "data":
|
|
logger.info("启动数据提供模块演示")
|
|
# 调用数据提供模块演示函数
|
|
data_provider_demo()
|
|
|
|
elif args.command == "recommend":
|
|
logger.info("启动阵容推荐模块演示")
|
|
# 调用阵容推荐模块演示函数
|
|
recommendation_demo()
|
|
|
|
elif args.command == "cli":
|
|
logger.info("启动交互式命令行界面")
|
|
# 将命令行参数传递给cli_main函数
|
|
return cli_main(
|
|
population=args.population,
|
|
results=args.results,
|
|
level_weight=args.level_weight,
|
|
count_weight=args.count_weight,
|
|
cost_weight=args.cost_weight
|
|
)
|
|
|
|
elif args.command == "scoring":
|
|
logger.info("启动评分模块测试")
|
|
if args.config:
|
|
# 如果指定了配置文件路径,使用该路径进行测试
|
|
test_scoring(config_path=args.config)
|
|
else:
|
|
# 否则使用默认配置文件
|
|
test_scoring()
|
|
|
|
else:
|
|
parser.print_help()
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main()) |