#!/usr/bin/env python # -*- coding: utf-8 -*- """ 风格模板管理模块 提供多种文案风格模板,支持动态参数填充 """ class StyleTemplateManager: def __init__(self): # 定义预设的风格模板 self.templates = { "通用文案": { "description": "适用于大多数场景的通用文案风格", "template": """你是专业文案助手,基于以下资料生成文案。 资料:{context} 要求: - 风格:通用正式文案 - 字数:{min_length}~{max_length}字 - 严格基于资料,不编造信息;资料不足时,明确提示"信息不足"。 - 使用清晰、准确的语言表达 - 保持逻辑连贯,结构清晰""", "temperature": 0.3 }, "小红书种草风": { "description": "适合小红书平台的种草文案风格", "template": """你是小红书种草文案专家,基于以下资料生成吸引人的种草文案。 资料:{context} 要求: - 风格:小红书种草风,活泼、亲切、有感染力 - 字数:{min_length}~{max_length}字 - 严格基于资料,不编造信息;资料不足时,明确提示"信息不足"。 - 使用emoji表情符号增加趣味性 - 加入个人体验感受词汇,如"我觉得"、"个人认为"等 - 可以使用感叹号增加情绪表达""", "temperature": 0.5 }, "官方通告": { "description": "适合官方发布的正式通告风格", "template": """你是官方通告撰写专家,基于以下资料生成正式的官方通告。 资料:{context} 要求: - 风格:官方正式通告,严谨、权威、规范 - 字数:{min_length}~{max_length}字 - 严格基于资料,不编造信息;资料不足时,明确提示"信息不足"。 - 使用正式、规范的语言表达 - 保持结构清晰,条理分明 - 避免口语化表达""", "temperature": 0.2 }, "知乎科普": { "description": "适合知乎平台的科普文案风格", "template": """你是知乎科普文章作者,基于以下资料生成专业的科普内容。 资料:{context} 要求: - 风格:知乎科普风,专业、深入、有见解 - 字数:{min_length}~{max_length}字 - 严格基于资料,不编造信息;资料不足时,明确提示"信息不足"。 - 使用专业但易懂的语言表达 - 可以加入分析和解读内容 - 保持逻辑严谨,论据充分""", "temperature": 0.3 }, "微博热点": { "description": "适合微博平台的热点话题文案风格", "template": """你是微博热点文案专家,基于以下资料生成吸引关注的微博文案。 资料:{context} 要求: - 风格:微博热点风,简洁、有力、有话题性 - 字数:{min_length}~{max_length}字 - 严格基于资料,不编造信息;资料不足时,明确提示"信息不足"。 - 使用简洁明了的语言表达 - 可以使用网络流行语和热点词汇 - 加入话题标签# #增加曝光 - 保持内容的时效性和话题性""", "temperature": 0.4 } } def get_template(self, style_name: str) -> dict: """ 获取指定风格的模板 Args: style_name: 风格名称 Returns: 模板字典,包含description、template和temperature """ return self.templates.get(style_name, self.templates["通用文案"]) def get_all_templates(self) -> dict: """ 获取所有可用的风格模板 Returns: 所有模板的字典 """ return self.templates def add_template(self, name: str, description: str, template: str, temperature: float = 0.3): """ 添加新的风格模板 Args: name: 模板名称 description: 模板描述 template: 模板内容 temperature: 温度参数 """ self.templates[name] = { "description": description, "template": template, "temperature": temperature } def remove_template(self, name: str): """ 删除指定的风格模板 Args: name: 要删除的模板名称 """ if name in self.templates and name not in ["通用文案", "小红书种草风", "官方通告", "知乎科普", "微博热点"]: del self.templates[name] # 创建全局实例 style_manager = StyleTemplateManager()