ashish-sarvam's picture
Upload folder using huggingface_hub
fc1a684 verified
from __future__ import annotations
import random
from typing import Dict
class BotRandomizer:
"""
Encapsulates weighted random selection for bot generation style groups.
"""
def __init__(self, weights_cfg: Dict[str, Dict[str, int]]) -> None:
# Shallow copy to avoid external mutation
self._weights_cfg: Dict[str, Dict[str, int]] = dict(weights_cfg or {})
def choose_style(self) -> Dict[str, str]:
selected: Dict[str, str] = {}
for group_name, options in self._weights_cfg.items():
option_names = list(options.keys())
if not option_names:
continue
option_weights = [int(w) for w in options.values()]
normalized = [w if w > 0 else 1 for w in option_weights]
chosen = random.choices(option_names, weights=normalized, k=1)[0]
selected[group_name] = chosen
return selected