from langchain.prompts import PromptTemplate

class PromptManager:
    """Administra los prompts para la generación de respuestas."""

    @staticmethod
    def get_prompt(cantidad_categorias: int) -> PromptTemplate:
        return PromptTemplate(
            template="""
                Eres un analista de tendencias especializado en extraer información detallada de un conjunto de tweets.
                Debes identificar {cantidad_categorias} categorías y generar descripciones extensas y específicas.
                Ten en cuenta el numero de comentarios, retweets, citas y me_gusta, para darle mayor peso a los mensajes.

                **Formato de salida (JSON):**
                {{
                    "categorias": [
                        {{
                            "nombre": "Título representativo del tema",
                            "descripcion": "Explicación detallada sobre el tema en los tweets.",
                            "keywords": "Listado de palabras clave de esta categoria"
                        }}
                    ]
                }}

                **Tweets proporcionados para análisis:**
                {context}
                """,
            input_variables=["context", "cantidad_categorias"]
        ).partial(cantidad_categorias=cantidad_categorias)
