borderless / ui /intake /examples.py
spagestic's picture
data expanded
43b2c38
Raw
History Blame Contribute Delete
1.22 kB
# ui/intake/examples.py
from __future__ import annotations
from typing import Any, TypedDict
from ui.intake.loader import load_demo_personas
from ui.intake.prompts import build_profile_prompt
class PersonaProfile(TypedDict):
citizenship: list[str] | str
current_country: str
residence_status: str
education: str
occupation: str
experience: str
languages: list[str] | str
budget: str
family: str
timeline: str
goals: str
class DemoPersona(TypedDict):
id: str
label: str
profile: PersonaProfile
def demo_personas() -> list[DemoPersona]:
return load_demo_personas() # type: ignore[return-value]
def persona_prompt(profile: PersonaProfile | dict[str, Any]) -> dict[str, object]:
return build_profile_prompt(
profile.get("citizenship"),
profile.get("current_country"),
profile.get("residence_status"),
profile.get("education"),
profile.get("occupation"),
profile.get("experience"),
profile.get("languages"),
profile.get("budget"),
profile.get("family"),
profile.get("timeline"),
profile.get("goals", ""),
)