| |
| """ |
| 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() |
|
|
| |
| os.environ["BRAIN_DB_PATH"] = args.db |
| os.environ["PORT"] = str(args.port) |
| os.environ["MODEL_NAME"] = args.model |
|
|
| |
| |
| 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() |
|
|