💻 源码
import argparse

import bootstrap  # noqa: F401

from backend.cli_output import print_results
from backend.config import get_cli_config
from backend.label_service import label_samples, save_results


def main() -> None:
    parser = argparse.ArgumentParser(description="金融文本大模型打标")
    parser.add_argument(
        "--task",
        choices=["classify", "extract", "match"],
        required=True,
        help="选择打标任务:classify、extract、match",
    )
    parser.add_argument(
        "--difficulty",
        choices=["easy", "medium", "hard"],
        help="可选,只运行指定难度的样本",
    )
    parser.add_argument(
        "--output",
        choices=["summary", "json", "quiet"],
        help="终端输出模式,默认读取 config.yaml 中的 cli.output_mode",
    )
    args = parser.parse_args()

    cli_config = get_cli_config()
    output_mode = args.output or cli_config.get("output_mode", "summary")
    show_raw_output = bool(cli_config.get("show_raw_output", False))
    text_preview_length = int(cli_config.get("text_preview_length", 60))
    save_json = bool(cli_config.get("save_json", True))

    results = label_samples(
        args.task,
        args.difficulty,
        include_raw_on_success=show_raw_output,
    )

    output_path = None
    if save_json:
        output_path = save_results(args.task, results)

    print_results(
        args.task,
        results,
        output_mode=output_mode,
        text_preview_length=text_preview_length,
        show_raw_output=show_raw_output,
        output_path=output_path,
    )


if __name__ == "__main__":
    main()