File size: 1,306 Bytes
ccff8f4
5d342ad
 
02ee58e
5d342ad
75d8194
ccff8f4
 
 
 
 
 
 
 
82ce9c4
 
5d342ad
02ee58e
82ce9c4
5d342ad
 
02ee58e
5d342ad
ccff8f4
 
 
 
 
5d342ad
 
 
ccff8f4
 
 
 
 
5d342ad
75d8194
 
 
5d342ad
75d8194
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import os
from functools import partial
from fastapi import FastAPI
from openenv.core.env_server import create_web_interface_app
from server.second_brain_env_environment import SecondBrainEnvironment
from models import SecondBrainAction, SecondBrainObservation

import sys
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

VALID_TASKS = ["note_categorization", "memory_retrieval", "knowledge_synthesis"]

_task = os.getenv("TASK_NAME", "note_categorization")

def create_task_env():
    return SecondBrainEnvironment(task_name=_task)

app = create_web_interface_app(
    env=create_task_env,
    action_cls=SecondBrainAction,
    observation_cls=SecondBrainObservation,
    env_name=_task,
)

@app.get("/tasks")
def list_tasks():
    return {
        "tasks": [
            {"name": "note_categorization", "difficulty": "easy",   "max_steps": 12},
            {"name": "memory_retrieval",    "difficulty": "medium",  "max_steps": 15},
            {"name": "knowledge_synthesis", "difficulty": "hard",    "max_steps": 20},
        ]
    }

@app.get("/health")
def health():
    return {"status": "ok", "environment": "second_brain_env", "task": _task}

def main():
    import uvicorn
    uvicorn.run("app:app", host="0.0.0.0", port=8000)

if __name__ == "__main__":
    main()