#!/usr/bin/env python3 """ CLI entry point: start the OpenAI-compatible webmind-brain server. Usage: python serve.py python serve.py --port 8080 python serve.py --db ~/my-brain --model my-brain-v2 """ import argparse import os import sys def main(): parser = argparse.ArgumentParser(description="Webmind Brain — OpenAI-compatible server") parser.add_argument("--port", type=int, default=int(os.environ.get("PORT", "8000")), help="Port to listen on (default: 8000)") parser.add_argument("--host", default="0.0.0.0", help="Host to bind to (default: 0.0.0.0)") parser.add_argument("--db", default=os.environ.get("BRAIN_DB_PATH", os.path.expanduser("~/nexus-brain")), help="Path to brain database directory") parser.add_argument("--model", default=os.environ.get("MODEL_NAME", "webmind-brain-v1"), help="Model name to report in API responses") args = parser.parse_args() # Set env vars so server.py picks them up os.environ["BRAIN_DB_PATH"] = args.db os.environ["PORT"] = str(args.port) os.environ["MODEL_NAME"] = args.model # Find and import the server # Look for server.py in the engine source engine_paths = [ os.path.join(os.path.dirname(__file__), "engine"), os.path.expanduser("~/webmind-research/papers/new-gen-ai"), ] server_path = None for p in engine_paths: candidate = os.path.join(p, "server.py") if os.path.exists(candidate): server_path = p break if server_path is None: print("Error: Could not find server.py. Set WEBMIND_ENGINE_PATH or place engine/ alongside this file.") sys.exit(1) sys.path.insert(0, server_path) import uvicorn from server import app print(f"Starting webmind-brain server") print(f" Host: {args.host}:{args.port}") print(f" DB: {args.db}") print(f" Model: {args.model}") uvicorn.run(app, host=args.host, port=args.port) if __name__ == "__main__": main()