Add Memory Gateway agent plugin
This commit is contained in:
50
plugins/memory-gateway-agent/memory_gateway_plugin/config.py
Normal file
50
plugins/memory-gateway-agent/memory_gateway_plugin/config.py
Normal file
@ -0,0 +1,50 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
from dataclasses import dataclass
|
||||
|
||||
|
||||
def _env_bool(name: str, default: bool) -> bool:
|
||||
value = os.environ.get(name)
|
||||
if value is None:
|
||||
return default
|
||||
return value.strip().lower() in {"1", "true", "yes", "on"}
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class PluginConfig:
|
||||
gateway_url: str = "http://127.0.0.1:1934"
|
||||
api_key: str = ""
|
||||
default_user_id: str = ""
|
||||
default_agent_id: str = ""
|
||||
default_workspace_id: str = ""
|
||||
auto_search: bool = True
|
||||
auto_append_episode: bool = True
|
||||
auto_commit_session: bool = False
|
||||
review_mode: bool = True
|
||||
timeout: int = 30
|
||||
|
||||
@classmethod
|
||||
def from_env(cls) -> "PluginConfig":
|
||||
try:
|
||||
timeout_val = int(os.environ.get("MEMORY_GATEWAY_TIMEOUT", "30"))
|
||||
except ValueError:
|
||||
timeout_val = 30
|
||||
|
||||
return cls(
|
||||
gateway_url=os.environ.get("MEMORY_GATEWAY_URL", cls.gateway_url).rstrip("/"),
|
||||
api_key=os.environ.get("MEMORY_GATEWAY_API_KEY", ""),
|
||||
default_user_id=os.environ.get("MEMORY_GATEWAY_DEFAULT_USER_ID", ""),
|
||||
default_agent_id=os.environ.get("MEMORY_GATEWAY_DEFAULT_AGENT_ID", ""),
|
||||
default_workspace_id=os.environ.get("MEMORY_GATEWAY_DEFAULT_WORKSPACE_ID", ""),
|
||||
auto_search=_env_bool("MEMORY_GATEWAY_AUTO_SEARCH", True),
|
||||
auto_append_episode=_env_bool("MEMORY_GATEWAY_AUTO_APPEND_EPISODE", True),
|
||||
auto_commit_session=_env_bool("MEMORY_GATEWAY_AUTO_COMMIT_SESSION", False),
|
||||
review_mode=_env_bool("MEMORY_GATEWAY_REVIEW_MODE", True),
|
||||
timeout=timeout_val,
|
||||
)
|
||||
|
||||
|
||||
def load_config() -> PluginConfig:
|
||||
return PluginConfig.from_env()
|
||||
|
||||
Reference in New Issue
Block a user