Spaces:
Sleeping
Sleeping
| from fastapi import HTTPException | |
| from pydantic import BaseModel | |
| from typing import Dict | |
| from openenv.core import create_app | |
| from models import Observation, Action | |
| from env.environment import SQLEnv | |
| from env.tasks import TASKS | |
| app = create_app( | |
| env=SQLEnv, | |
| action_cls=Action, | |
| observation_cls=Observation, | |
| env_name="sql-query-optimizer", | |
| ) | |
| async def get_tasks(): | |
| action_schema = Action.model_json_schema() | |
| task_list = [{"id": k, **v} for k, v in TASKS.items()] | |
| return { | |
| "tasks": task_list, | |
| "action_schema": action_schema, | |
| } | |
| class BaselineResponse(BaseModel): | |
| scores: Dict[int, float] | |
| async def run_baseline(): | |
| import baseline | |
| try: | |
| scores = baseline.run_all_tasks() | |
| return BaselineResponse(scores=scores) | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) | |
| def main(host: str = "0.0.0.0", port: int = 7860): | |
| import uvicorn | |
| uvicorn.run(app, host=host, port=port) | |
| if __name__ == "__main__": | |
| main() | |