1
0
Fork 0
taleweave-ai/taleweave/models/config.py

119 lines
2.4 KiB
Python
Raw Normal View History

from typing import Dict, List
from .base import IntRange, dataclass
@dataclass
class Size:
width: int
height: int
@dataclass
class DiscordBotConfig:
channels: List[str]
content_intent: bool = False
@dataclass
class BotConfig:
discord: DiscordBotConfig
@dataclass
class RenderConfig:
cfg: int | IntRange
checkpoints: List[str]
path: str
sizes: Dict[str, Size]
steps: int | IntRange
2024-05-18 21:58:11 +00:00
@dataclass
class WebsocketServerConfig:
host: str
port: int
@dataclass
class ServerConfig:
websocket: WebsocketServerConfig
@dataclass
class WorldCharacterConfig:
conversation_limit: int
event_limit: int
note_limit: int
@dataclass
class WorldSizeConfig:
character_items: int | IntRange
item_effects: int | IntRange
portals: int | IntRange
room_characters: int | IntRange
room_items: int | IntRange
rooms: int | IntRange
@dataclass
2024-05-27 12:54:36 +00:00
class WorldTurnConfig:
action_retries: int
planning_steps: int
planning_retries: int
@dataclass
class WorldConfig:
character: WorldCharacterConfig
size: WorldSizeConfig
2024-05-27 12:54:36 +00:00
turn: WorldTurnConfig
@dataclass
class Config:
bot: BotConfig
render: RenderConfig
2024-05-18 21:58:11 +00:00
server: ServerConfig
world: WorldConfig
DEFAULT_CONFIG = Config(
bot=BotConfig(discord=DiscordBotConfig(channels=["adventure"])),
render=RenderConfig(
cfg=IntRange(min=5, max=8),
checkpoints=[
"diffusion-sdxl-dynavision-0-5-5-7.safetensors",
],
path="/tmp/adventure-images",
sizes={
"landscape": Size(width=1024, height=768),
"portrait": Size(width=768, height=1024),
"square": Size(width=768, height=768),
},
steps=IntRange(min=30, max=30),
),
server=ServerConfig(websocket=WebsocketServerConfig(host="localhost", port=8001)),
world=WorldConfig(
character=WorldCharacterConfig(
conversation_limit=2,
event_limit=5,
note_limit=10,
),
size=WorldSizeConfig(
character_items=IntRange(min=0, max=2),
item_effects=IntRange(min=1, max=1),
portals=IntRange(min=1, max=3),
rooms=IntRange(min=3, max=6),
room_characters=IntRange(min=1, max=3),
room_items=IntRange(min=1, max=3),
),
2024-05-27 12:54:36 +00:00
turn=WorldTurnConfig(
action_retries=5,
planning_steps=3,
planning_retries=3,
),
),
)