Spaces:
Running
Running
Download helpers/context_utils.py from Leon4gr45/openoperator: direct link, hf CLI and curl.
- Browser
- Download file 1.21 kB
-
https://huggingface.co/spaces/Leon4gr45/openoperator/resolve/main/helpers/context_utils.py
- Command line
-
hf download hf://spaces/Leon4gr45/openoperator/helpers/context_utils.py
-
curl -L -o context_utils.py https://huggingface.co/spaces/Leon4gr45/openoperator/resolve/main/helpers/context_utils.py
1.21 kB
| """Shared context helper used by both ApiHandler and WsHandler.""" | |
| import threading | |
| from typing import Union | |
| ThreadLockType = Union[threading.Lock, threading.RLock] | |
| def use_context(lock: ThreadLockType, ctxid: str, create_if_not_exists: bool = True): | |
| from agent import AgentContext | |
| from helpers import projects | |
| from initialize import initialize_agent | |
| with lock: | |
| if not ctxid: | |
| first = AgentContext.first() | |
| if first: | |
| AgentContext.use(first.id) | |
| return first | |
| context = AgentContext(config=initialize_agent(), set_current=True) | |
| projects.reconcile_agent_profile( | |
| context, projects.get_context_project_name(context) | |
| ) | |
| return context | |
| got = AgentContext.use(ctxid) | |
| if got: | |
| return got | |
| if create_if_not_exists: | |
| context = AgentContext( | |
| config=initialize_agent(), id=ctxid, set_current=True | |
| ) | |
| projects.reconcile_agent_profile( | |
| context, projects.get_context_project_name(context) | |
| ) | |
| return context | |
| raise Exception(f"Context {ctxid} not found") | |