ayjays132's picture
Upload 478 files
101858b verified
import argparse
import json
from pathlib import Path
from guidance_sidecar import GuidanceEngine, GuidanceSettings
def main() -> None:
parser = argparse.ArgumentParser(description="Local Hugging Face coding guidance sidecar")
subparsers = parser.add_subparsers(dest="command", required=True)
guide_parser = subparsers.add_parser("guide", help="Ask the local guidance model for structured coding help")
guide_parser.add_argument("--task", required=True)
guide_parser.add_argument("--context", default="")
guide_parser.add_argument("--project", action="store_true")
guide_parser.add_argument("--root", default=".")
guide_parser.add_argument("--model", default=None)
guide_parser.add_argument("--adapter", default=None)
guide_parser.add_argument("--bundle", default=None, help="Path to an HF bundle containing base_model/")
guide_parser.add_argument("--keep-loaded-seconds", type=int, default=None)
guide_parser.add_argument("--no-cache", action="store_true")
smoke_parser = subparsers.add_parser("smoke", help="Run one guidance request and save JSON result")
smoke_parser.add_argument("--task", default="Add input validation and tests for a Python function without changing public API.")
smoke_parser.add_argument("--output", default="./runtime/guidance_smoke_result.json")
args = parser.parse_args()
if args.command == "guide":
if args.bundle:
engine = GuidanceEngine.from_bundle(args.bundle)
else:
engine = GuidanceEngine(
model_name=args.model,
adapter_dir=args.adapter,
keep_loaded_seconds=args.keep_loaded_seconds,
)
result = (
engine.advise_project(args.task, root=args.root, use_cache=not args.no_cache)
if args.project
else engine.advise(args.task, args.context, use_cache=not args.no_cache)
)
print(json.dumps(result, indent=2))
elif args.command == "smoke":
engine = GuidanceEngine(GuidanceSettings(max_new_tokens=384))
result = engine.advise_project(args.task)
output = Path(args.output)
output.parent.mkdir(parents=True, exist_ok=True)
output.write_text(json.dumps(result, indent=2), encoding="utf-8")
print(json.dumps(result, indent=2))
if __name__ == "__main__":
main()