36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
|
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
|
|||
|
|