mirror of
https://18126008609:longquanjian123@gitee.com/feigong123/aurask.git
synced 2026-04-19 13:38:24 +00:00
66 lines
2.4 KiB
Python
66 lines
2.4 KiB
Python
"""Command line entrypoint."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import argparse
|
|
import json
|
|
from pathlib import Path
|
|
|
|
from aurask.api import run_server
|
|
from aurask.app import create_app
|
|
|
|
|
|
DEFAULT_DATA_PATH = Path(".aurask/state.json")
|
|
|
|
|
|
def main() -> None:
|
|
parser = argparse.ArgumentParser(prog="aurask", description="Aurask MVP gateway and workflow backend")
|
|
parser.set_defaults(data=str(DEFAULT_DATA_PATH), reset=False)
|
|
subparsers = parser.add_subparsers(dest="command")
|
|
|
|
serve_parser = subparsers.add_parser("serve", help="Run the Aurask HTTP gateway")
|
|
serve_parser.add_argument("--data", default=str(DEFAULT_DATA_PATH), help="JSON state file for MVP persistence")
|
|
serve_parser.add_argument("--host", default="127.0.0.1")
|
|
serve_parser.add_argument("--port", type=int, default=8080)
|
|
serve_parser.add_argument("--reset", action="store_true", help="Reset local MVP state before serving")
|
|
|
|
demo_parser = subparsers.add_parser("demo", help="Bootstrap a tenant and run a safe template workflow")
|
|
demo_parser.add_argument("--data", default=str(DEFAULT_DATA_PATH), help="JSON state file for MVP persistence")
|
|
demo_parser.add_argument("--reset", action="store_true", help="Reset local MVP state before running demo")
|
|
|
|
args = parser.parse_args()
|
|
command = args.command or "demo"
|
|
|
|
if command == "serve":
|
|
app = create_app(args.data, reset=args.reset)
|
|
run_server(app, host=args.host, port=args.port)
|
|
return
|
|
|
|
if command == "demo":
|
|
app = create_app(args.data, reset=args.reset)
|
|
bootstrap = app.bootstrap_demo()
|
|
run = app.orchestrator.run_template(
|
|
bootstrap["tenant"]["id"],
|
|
bootstrap["user"]["id"],
|
|
"tpl_knowledge_qa",
|
|
workspace_id=bootstrap["workspace"]["id"],
|
|
inputs={"question": "How can Aurask help my support team?"},
|
|
)
|
|
print(
|
|
json.dumps(
|
|
{
|
|
"message": "Aurask MVP demo completed",
|
|
"api_key": bootstrap["api_key"],
|
|
"tenant_id": bootstrap["tenant"]["id"],
|
|
"workspace_id": bootstrap["workspace"]["id"],
|
|
"workflow_run": run,
|
|
"quota": app.quota.get_account(bootstrap["tenant"]["id"]),
|
|
},
|
|
ensure_ascii=False,
|
|
indent=2,
|
|
)
|
|
)
|
|
return
|
|
|
|
parser.error(f"unknown command: {command}")
|