botp
/

Solomon / mlx /src /solomon_mlx /cli.py
orz99's picture ArcherHume's picture
Duplicate from DoccyHealth/Solomon
1d2de8a
Raw
History Blame Contribute Delete
2.99 kB
import argparse
import json
from pathlib import Path
def main():
parser = argparse.ArgumentParser(description="Private Solomon BF16 MLX tooling")
commands = parser.add_subparsers(dest="command", required=True)
verify = commands.add_parser("verify-source")
verify.add_argument("directory")
download = commands.add_parser("download-base")
download.add_argument("--output", default="snapshots/base")
convert = commands.add_parser("prepare")
convert.add_argument("--base", default="snapshots/base")
convert.add_argument("--solomon", default="snapshots/solomon")
convert.add_argument("--manifest", default="snapshots/base-manifest.json")
convert.add_argument("--output", default="models/quality")
decide = commands.add_parser("decide")
decide.add_argument("--model", default="models/quality")
decide.add_argument("--document", required=True)
decide.add_argument("--questions", required=True)
decide.add_argument(
"--evidence", choices=["none", "support", "sufficiency", "removal"], default="support"
)
args = parser.parse_args()
if args.command == "verify-source":
from .artifacts import verify_release
print(json.dumps(verify_release(args.directory), indent=2))
elif args.command == "download-base":
from huggingface_hub import HfApi, snapshot_download
from .artifacts import BASE_REVISION
from .prepare import verify_base
model = HfApi().model_info("Qwen/Qwen3.8-27B", revision=BASE_REVISION, files_metadata=True)
manifest = {
"revision": model.sha,
"files": [
{
"name": f.rfilename,
"size": f.size,
"blob_id": f.blob_id,
"sha256": f.lfs.sha256 if f.lfs else None,
}
for f in model.siblings
],
}
Path(args.output).parent.mkdir(parents=True, exist_ok=True)
Path(args.output + "-manifest.json").write_text(json.dumps(manifest, indent=2))
snapshot_download("Qwen/Qwen3.8-27B", revision=BASE_REVISION, local_dir=args.output, max_workers=18)
verified = verify_base(args.output, manifest)
Path(args.output + "-verified.json").write_text(json.dumps(verified, indent=2))
elif args.command == "prepare":
from .prepare import prepare
prepare(args.base, args.solomon, args.output, args.manifest)
else:
from .api import Solomon
model = Solomon.load(args.model)
with model.prefill(Path(args.document).read_text()) as state:
print(
json.dumps(
model.decide(
state=state,
questions=json.loads(Path(args.questions).read_text()),
evidence=args.evidence,
),
indent=2,
)
)
if __name__ == "__main__":
main()