openenvhack / server /app.py
aadi-joshi's picture
Initial commit
822ca51
Raw History Blame Contribute Delete
1.22 kB
"""FastAPI application entrypoint for DB-ER.
Wires together:
openenv.core.env_server.http_server.create_app(...)
Exposes the standard OpenEnv HTTP API:
POST /reset POST /step GET /state GET /schema GET /metadata GET /health
POST /mcp WS /ws GET /openapi.json GET /docs
Run locally:
uvicorn server.app:app --host 0.0.0.0 --port 8000 --reload
# or via pyproject.toml script:
uv run server
"""
from __future__ import annotations
import os
from openenv.core.env_server.http_server import create_app
from db_er.models import DBERAction, DBERObservation
from server.environment import DBEREnvironment
# FastAPI app (used by openenv.yaml app = server.app:app)
app = create_app(
env=DBEREnvironment,
action_cls=DBERAction,
observation_cls=DBERObservation,
env_name="db_er",
max_concurrent_envs=1,
)
# Entrypoint (used by pyproject.toml [project.scripts] server)
def main(host: str = "0.0.0.0", port: int = 8000) -> None:
import uvicorn
port = int(os.environ.get("PORT", port))
uvicorn.run(
"server.app:app",
host=host,
port=port,
log_level="info",
reload=False,
)
if __name__ == "__main__":
main()