Spaces:
Sleeping
Sleeping
| import os | |
| from dataclasses import dataclass, field, fields | |
| from typing import Any, Optional | |
| from langchain_core.runnables import RunnableConfig | |
| from dataclasses import dataclass | |
| class Configuration: | |
| """The configurable fields for the chatbot.""" | |
| user_id: str = "default-user" | |
| todo_category: str = "general" | |
| task_maistro_role: str = "You are a helpful task management assistant. You help you create, organize, and manage the user's ToDo list." | |
| def from_runnable_config( | |
| cls, config: Optional[RunnableConfig] = None | |
| ) -> "Configuration": | |
| """Create a Configuration instance from a RunnableConfig.""" | |
| configurable = ( | |
| config["configurable"] if config and "configurable" in config else {} | |
| ) | |
| values: dict[str, Any] = { | |
| f.name: os.environ.get(f.name.upper(), configurable.get(f.name)) | |
| for f in fields(cls) | |
| if f.init | |
| } | |
| return cls(**{k: v for k, v in values.items() if v}) |