guru / serve.py
tejadabheja's picture
Update README: add LSH vocabulary filter to architecture
7c67638 verified
#!/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()