Spaces:
Sleeping
Sleeping
| from tinytroupe.enrichment import logger | |
| from tinytroupe.utils import JsonSerializableRegistry | |
| from tinytroupe.utils.llm import LLMChat | |
| import tinytroupe.utils as utils | |
| class TinyStyler(JsonSerializableRegistry): | |
| """ | |
| A class for applying a specified writing or speaking style to content while preserving | |
| the original information. | |
| """ | |
| def __init__(self, use_past_results_in_context=False) -> None: | |
| """ | |
| Initialize the TinyStyler. | |
| Args: | |
| use_past_results_in_context (bool): Whether to use past styling results in the context. | |
| """ | |
| self.use_past_results_in_context = use_past_results_in_context | |
| self.context_cache = [] | |
| def apply_style(self, content: str, style: str, content_type: str = None, | |
| context_info: str = "", context_cache: list = None, verbose: bool = False, | |
| temperature: float = 0.7): | |
| """ | |
| Apply a specified style to the content while preserving all the original information. | |
| Args: | |
| content (str): The content to style. | |
| style (str): The style to apply (e.g., "professional", "casual", "technical", etc.). | |
| content_type (str, optional): The type of content (e.g., "email", "report", "conversation"). | |
| context_info (str, optional): Additional context information. | |
| context_cache (list, optional): Previous styling results to use as context. | |
| verbose (bool, optional): Whether to print debug information. | |
| temperature (float, optional): The temperature to use for the LLM generation. | |
| Returns: | |
| str: The styled content. | |
| """ | |
| if context_cache is None and self.use_past_results_in_context: | |
| context_cache = self.context_cache | |
| rendering_configs = { | |
| "content": content, | |
| "style": style, | |
| "content_type": content_type, | |
| "context_info": context_info, | |
| "context_cache": context_cache | |
| } | |
| # Initialize the LLMChat with appropriate templates | |
| chat = LLMChat( | |
| system_template_name="styler.system.mustache", | |
| user_template_name="styler.user.mustache", | |
| base_module_folder="enrichment", | |
| temperature=temperature | |
| ) | |
| # Call the model and get the response | |
| result = chat.call(**rendering_configs) | |
| debug_msg = f"Styling result: {result}" | |
| logger.debug(debug_msg) | |
| if verbose: | |
| print(debug_msg) | |
| # Extract the styled content from code blocks if present | |
| if result is not None: | |
| styled_content = utils.extract_code_block(result) | |
| # If no code block was found, use the raw result | |
| if not styled_content: | |
| styled_content = result | |
| # Add to context cache if enabled | |
| if self.use_past_results_in_context: | |
| self.context_cache.append({ | |
| "original": content, | |
| "style": style, | |
| "styled": styled_content | |
| }) | |
| return styled_content | |
| else: | |
| return None | |