Files
natural-memory/natural_memory_app.py

55 lines
1.8 KiB
Python

"""Unified entry point for Natural Memory v2 local production workflows.
Examples:
python -m dynamic_memory_lab.natural_memory_app chat --model-path ...
python -m dynamic_memory_lab.natural_memory_app serve --port 8765
python -m dynamic_memory_lab.natural_memory_app build-dataset
python -m dynamic_memory_lab.natural_memory_app train-policy --steps 240
python -m dynamic_memory_lab.natural_memory_app stress --rounds 40
python -m dynamic_memory_lab.natural_memory_app make-mega-validation
python -m dynamic_memory_lab.natural_memory_app benchmark-kv --limit 32
"""
from __future__ import annotations
import argparse
import sys
def main() -> None:
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument(
"command",
choices=(
"chat",
"serve",
"build-dataset",
"train-policy",
"stress",
"make-mega-validation",
"benchmark-kv",
),
help="workflow to run; remaining arguments are passed to that workflow",
)
args, remaining = parser.parse_known_args()
sys.argv = [sys.argv[0], *remaining]
if args.command == "chat":
from .stream_chat_qwen_memory import main as run
elif args.command == "serve":
from .natural_memory_service import main as run
elif args.command == "build-dataset":
from .build_production_memory_dataset import main as run
elif args.command == "train-policy":
from .train_production_memory_policy import main as run
elif args.command == "stress":
from .stress_test_natural_memory import main as run
elif args.command == "make-mega-validation":
from .make_mega_memory_validation import main as run
else:
from .benchmark_memory_vs_full_kv import main as run
run()
if __name__ == "__main__":
main()