77Modified By: the developer formerly known as Christian Nonis at <alch.infoemail@gmail.com>
88-----
99"""
10+
1011import json
1112from src .utils .logging import log
1213from fastapi import APIRouter
1314from src .services .kg_agent .main import cache_adapter
1415
1516tasks_router = APIRouter (prefix = "/tasks" , tags = ["tasks" ])
1617
18+
19+ @tasks_router .get ("/" )
20+ async def get_tasks (brain_id : str = "default" ):
21+ try :
22+ tasks = cache_adapter .get_task_keys (brain_id )
23+ results = []
24+ for task in tasks :
25+ str_result = cache_adapter .get (task , brain_id = brain_id )
26+ if str_result is None :
27+ continue
28+ result = json .loads (str_result )
29+ results .append (
30+ {"id" : task .split (":" )[- 1 ], "status" : result .get ("status" , "unknown" )}
31+ )
32+ return {"tasks" : results }
33+ except Exception as e :
34+ log (f"Error in get_tasks: { type (e ).__name__ } : { str (e )} " )
35+ return {
36+ "status" : "error" ,
37+ "result" : {"error" : str (e ), "error_type" : type (e ).__name__ },
38+ }
39+
40+
1741@tasks_router .get ("/{task_id}" )
1842async def get_task (task_id : str , brain_id : str = "default" ):
1943 """
@@ -25,7 +49,7 @@ async def get_task(task_id: str, brain_id: str = "default"):
2549 return {
2650 "task_id" : task_id ,
2751 "status" : "pending" ,
28- "result" : {"message" : "Task is still processing or not found" }
52+ "result" : {"message" : "Task is still processing or not found" },
2953 }
3054 if isinstance (str_result , bytes ):
3155 result = json .loads (str_result .decode ("utf-8" ))
@@ -34,15 +58,12 @@ async def get_task(task_id: str, brain_id: str = "default"):
3458 return {
3559 "task_id" : task_id ,
3660 "status" : result .get ("status" , "unknown" ),
37- "result" : result
61+ "result" : result ,
3862 }
3963 except Exception as e :
4064 log (f"Error in get_task: { type (e ).__name__ } : { str (e )} " )
4165 return {
4266 "task_id" : task_id ,
4367 "status" : "error" ,
44- "result" : {
45- "error" : str (e ),
46- "error_type" : type (e ).__name__
47- }
48- }
68+ "result" : {"error" : str (e ), "error_type" : type (e ).__name__ },
69+ }
0 commit comments