import re from metagpt.actions import Action from agents.utils.common_llm_api import LLMAPI class WriteMarkdown(Action): name: str = "WriteMarkdown" language: str = "Chinese" PROMPT_TEMPLATE: str = """ 将 {text} 严格转换为 Markdown 格式。请严格遵循以下要求: 1. 输出必须严格符合指定语言,{language}。 2. 目录应尽可能具体和充分,包括一级和二级目录。 3. 不需要更改原文本,保证文本的完整性。 4. 不用添加额外的描述。 4. 不要有额外的空格或换行符。 """ async def run(self, raw_text: str): prompt = self.PROMPT_TEMPLATE.format(text=raw_text, language=self.language) rsp = await LLMAPI()._aask(prompt) markdown_text = WriteMarkdown.parse_markdown(rsp) return markdown_text @staticmethod def parse_markdown(rsp): rsp = rsp.replace("```markdown", "").replace("```", "") markdown_text = "```markdown\n" + rsp + "\n```" return markdown_text