41 lines
1015 B
Python
41 lines
1015 B
Python
"""Start the RAG-cut backend API server."""
|
|||
|
|
|
||
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
import argparse
|
||
|
|
import sys
|
||
|
|
from pathlib import Path
|
||
|
|
|
||
|
|
BACKEND_DIR = Path(__file__).resolve().parent
|
||
|
|
|
||
|
|
|
||
|
|
def main() -> None:
|
||
|
|
parser = argparse.ArgumentParser(description="Start RAG-cut backend API")
|
||
|
|
parser.add_argument("--host", default="127.0.0.1", help="Bind host (default: 127.0.0.1)")
|
||
|
|
parser.add_argument("--port", type=int, default=8000, help="Bind port (default: 8000)")
|
||
|
|
parser.add_argument(
|
||
|
|
"--reload",
|
||
|
|
action=argparse.BooleanOptionalAction,
|
||
|
|
default=True,
|
||
|
|
help="Auto-reload on code changes (default: on)",
|
||
|
|
)
|
||
|
|
args = parser.parse_args()
|
||
|
|
|
||
|
|
backend = str(BACKEND_DIR)
|
||
|
|
if backend not in sys.path:
|
||
|
|
sys.path.insert(0, backend)
|
||
|
|
|
||
|
|
import uvicorn
|
||
|
|
|
||
|
|
uvicorn.run(
|
||
|
|
"api.main:app",
|
||
|
|
host=args.host,
|
||
|
|
port=args.port,
|
||
|
|
reload=args.reload,
|
||
|
|
reload_dirs=[backend] if args.reload else None,
|
||
|
|
)
|
||
|
|
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
main()
|