feat: add failure-aware preflight and Qwen review
This commit is contained in:
@@ -11,6 +11,7 @@ DEFAULT_KEY_PATH = Path("KEY.md")
|
||||
DEFAULT_KEYS_PATH = Path("KEYS.md")
|
||||
MODULE_DIR = Path(__file__).resolve().parent
|
||||
MODELSCOPE_TOKEN_ENV_NAMES = ("MODELSCOPE_API_TOKEN", "MODELSCOPE_TOKEN")
|
||||
DASHSCOPE_KEY_NAMES = ("MODELHUB_QWEN_API_KEY", "DASHSCOPE_API_KEY", "dashscope")
|
||||
|
||||
|
||||
def _token_sort_key(key: str) -> tuple[int, str]:
|
||||
@@ -56,6 +57,20 @@ def load_modelhub_tokens(values: dict[str, str]) -> list[str]:
|
||||
return [token for _, token in tokens]
|
||||
|
||||
|
||||
def ensure_dashscope_key(*paths: Path) -> bool:
|
||||
"""Load only the Qwen credential from repository-local dotenv files."""
|
||||
if os.getenv("MODELHUB_QWEN_API_KEY") or os.getenv("DASHSCOPE_API_KEY"):
|
||||
return True
|
||||
candidates = paths or (Path(".env"), MODULE_DIR.parent / ".env")
|
||||
values = load_key_files(*candidates)
|
||||
for key in DASHSCOPE_KEY_NAMES:
|
||||
value = str(values.get(key) or "").strip().strip('"').strip("'")
|
||||
if value:
|
||||
os.environ["MODELHUB_QWEN_API_KEY"] = value
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def _split_token_list(value: str | None) -> list[str]:
|
||||
if not value:
|
||||
return []
|
||||
@@ -74,6 +89,7 @@ def _add_token(tokens: list[str], token: str | None) -> None:
|
||||
|
||||
|
||||
def ensure_tokens(args: argparse.Namespace) -> None:
|
||||
ensure_dashscope_key()
|
||||
primary_key_path = Path(getattr(args, "key_path", DEFAULT_KEY_PATH))
|
||||
supplemental_key_path = primary_key_path.with_name(DEFAULT_KEYS_PATH.name)
|
||||
if not primary_key_path.exists():
|
||||
|
||||
Reference in New Issue
Block a user