phase 2 checkpoint

This commit is contained in:
2026-03-10 10:42:24 -04:00
parent 8116f4ea94
commit 41a40aaa68
8 changed files with 349 additions and 6 deletions

View File

@@ -435,3 +435,53 @@ class BiasProfile:
tool_weights=data.get("tool_weights", {}),
category_multipliers=data.get("category_multipliers", {}),
)
@dataclass
class Persona:
name: str
provider: Optional[str] = None
model: Optional[str] = None
preferred_models: List[str] = field(default_factory=list)
system_prompt: str = ''
temperature: Optional[float] = None
top_p: Optional[float] = None
max_output_tokens: Optional[int] = None
tool_preset: Optional[str] = None
bias_profile: Optional[str] = None
def to_dict(self) -> Dict[str, Any]:
res = {
"system_prompt": self.system_prompt,
}
if self.provider is not None:
res["provider"] = self.provider
if self.model is not None:
res["model"] = self.model
if self.preferred_models:
res["preferred_models"] = self.preferred_models
if self.temperature is not None:
res["temperature"] = self.temperature
if self.top_p is not None:
res["top_p"] = self.top_p
if self.max_output_tokens is not None:
res["max_output_tokens"] = self.max_output_tokens
if self.tool_preset is not None:
res["tool_preset"] = self.tool_preset
if self.bias_profile is not None:
res["bias_profile"] = self.bias_profile
return res
@classmethod
def from_dict(cls, name: str, data: Dict[str, Any]) -> "Persona":
return cls(
name=name,
provider=data.get("provider"),
model=data.get("model"),
preferred_models=data.get("preferred_models", []),
system_prompt=data.get("system_prompt", ""),
temperature=data.get("temperature"),
top_p=data.get("top_p"),
max_output_tokens=data.get("max_output_tokens"),
tool_preset=data.get("tool_preset"),
bias_profile=data.get("bias_profile"),
)