fix: 清除硬编码API Key与机器特定路径,改用环境变量+混合式路径解析

This commit is contained in:
hangshuo652
2026-08-25 21:53:18 +08:00
parent b3895a905e
commit 8e81f960af
32 changed files with 200 additions and 76 deletions
+19 -5
View File
@@ -33,11 +33,20 @@ from pathlib import Path
# ============================================================================
PROJECT_ROOT = Path(__file__).resolve().parent.parent
_DESKTOP = Path(os.environ.get("USERPROFILE", "")) / "Desktop"
_CONTEST_ROOT = _DESKTOP / "2026技术大赛"
# COBOL test data project: env var -> contest sibling dir fallback
COBOL_PROJECT = Path(
os.environ["COBOL_TNA_ROOT"]
) if "COBOL_TNA_ROOT" in os.environ else _CONTEST_ROOT / "cobol-tna-system"
# jcl-cobol-data-create candidates: env var first, then common locations
JCL_ROOT_CANDIDATES = [
Path(r"C:\Users\marye\Desktop\2026技术大赛\jcl-cobol-data-create"),
*( [Path(os.environ["JCL_ROOT"])] if "JCL_ROOT" in os.environ else [] ),
_CONTEST_ROOT / "jcl-cobol-data-create",
Path(r"D:\jcl-cobol-data-create"),
]
COBOL_PROJECT = Path(r"C:\Users\marye\Desktop\2026技术大赛\cobol-tna-system")
PROGRAM = "ZAN04MAT"
TEST_INPUTS = {
@@ -48,8 +57,9 @@ TEST_INPUTS = {
"db-md": COBOL_PROJECT / "詳細設計書" / "DB定義書.md",
}
DEFAULT_API_KEY = "sk-6156cccdc9c14d949cf5bfc5afc67a03"
DEFAULT_API_MODEL = "deepseek-v4-flash"
# API key/model come from env or black-box-data-create/config.json (never hardcoded)
DEFAULT_API_KEY = os.environ.get("DEEPSEEK_API_KEY", "")
DEFAULT_API_MODEL = os.environ.get("DEEPSEEK_MODEL", "deepseek-v4-flash")
ORCHESTRATOR_JCL = PROJECT_ROOT / "orchestrator_jcl.py"
@@ -414,10 +424,14 @@ def run_full_pipeline():
"--cpy", str(TEST_INPUTS["cpy"]),
"--db-md", str(TEST_INPUTS["db-md"]),
"--output", str(output_dir),
"--api-key", DEFAULT_API_KEY,
"--api-model", DEFAULT_API_MODEL,
"--verbose",
]
if DEFAULT_API_KEY:
# Only pass explicitly when provided; otherwise main.py falls back
# to black-box-data-create/config.json or DEEPSEEK_API_KEY env.
idx = cmd.index("--api-model")
cmd[idx:idx] = ["--api-key", DEFAULT_API_KEY]
step("Executing pipeline (this may take several minutes)...")
info(f"Command: {' '.join(cmd)}")