[配置]:完成 .env 文件读取配置,包含自动加载、CLI 参数、测试覆盖和中文说明
This commit is contained in:
@@ -21,6 +21,7 @@ from .wakeword import KeywordWakeWordProvider
|
||||
|
||||
def main(argv: list[str] | None = None) -> int:
|
||||
parser = argparse.ArgumentParser(prog="owner-voice-pet")
|
||||
parser.add_argument("--env-file", default=".env", help="Path to .env config file")
|
||||
parser.add_argument("--show-config", action="store_true", help="Print non-secret config summary")
|
||||
subparsers = parser.add_subparsers(dest="command")
|
||||
subparsers.add_parser("acceptance", help="Run deterministic end-to-end pipeline acceptance")
|
||||
@@ -32,7 +33,7 @@ def main(argv: list[str] | None = None) -> int:
|
||||
args = parser.parse_args(argv)
|
||||
|
||||
if args.show_config:
|
||||
config = AppConfig.from_env()
|
||||
config = AppConfig.from_dotenv(args.env_file)
|
||||
print(
|
||||
json.dumps(
|
||||
{
|
||||
@@ -53,7 +54,7 @@ def main(argv: list[str] | None = None) -> int:
|
||||
return 0
|
||||
|
||||
if args.command == "validate-assets":
|
||||
infos = validate_pet_assets(AppConfig.from_env().asset_dir)
|
||||
infos = validate_pet_assets(AppConfig.from_dotenv(args.env_file).asset_dir)
|
||||
print(json.dumps({"assets": len(infos), "valid": True}, ensure_ascii=False, sort_keys=True))
|
||||
return 0
|
||||
|
||||
@@ -68,7 +69,7 @@ def main(argv: list[str] | None = None) -> int:
|
||||
return 0 if result["success"] else 1
|
||||
|
||||
if args.command == "llm-smoke":
|
||||
config = AppConfig.from_env()
|
||||
config = AppConfig.from_dotenv(args.env_file)
|
||||
if args.no_stream:
|
||||
config = AppConfig(
|
||||
wake_word=config.wake_word,
|
||||
@@ -102,7 +103,7 @@ def main(argv: list[str] | None = None) -> int:
|
||||
|
||||
|
||||
def run_acceptance() -> dict[str, object]:
|
||||
validate_pet_assets(AppConfig.from_env().asset_dir)
|
||||
validate_pet_assets(AppConfig.from_dotenv().asset_dir)
|
||||
frames = [
|
||||
AudioFrame(b"\x80\x80", 16000, 1, 0, 0, {"duration_ms": 20, "wake_word": "小杰小杰", "wake_confidence": 0.99}),
|
||||
AudioFrame(b"\xff\xff", 16000, 1, 20, 1, {"duration_ms": 20, "speech": True, "transcript": "你是谁"}),
|
||||
|
||||
Reference in New Issue
Block a user