import textwrap def get_ner_name_prompt(text: str) -> str: """ Returns a prompt that generates a mapping of original names/companies to their masked versions. Args: text (str): The input text to be analyzed for masking Returns: str: The formatted prompt that will generate a mapping dictionary """ prompt = textwrap.dedent(""" 你是一个专业的法律文本实体识别助手。请从以下文本中抽取出所有需要脱敏的敏感信息,并按照指定的类别进行分类。请严格按照JSON格式输出结果。 实体类别包括: - 人名 (不包括律师、法官、书记员、检察官等公职人员) - 英文人名 待处理文本: {text} 输出格式: {{ "entities": [ {{"text": "原始文本内容", "type": "人名"}}, {{"text": "原始文本内容", "type": "英文人名"}}, ... ] }} 请严格按照JSON格式输出结果。 """) return prompt.format(text=text) def get_ner_company_prompt(text: str) -> str: """ Returns a prompt that generates a mapping of original companies to their masked versions. Args: text (str): The input text to be analyzed for masking Returns: str: The formatted prompt that will generate a mapping dictionary """ prompt = textwrap.dedent(""" 你是一个专业的法律文本实体识别助手。请从以下文本中抽取出所有需要脱敏的敏感信息,并按照指定的类别进行分类。请严格按照JSON格式输出结果。 实体类别包括: - 公司名称 - 英文公司名称 - Company with English name - 公司名称简称 - 公司英文名称简称 待处理文本: {text} 输出格式: {{ "entities": [ {{"text": "原始文本内容", "type": "公司名称"}}, {{"text": "原始文本内容", "type": "英文公司名称"}}, {{"text": "原始文本内容", "type": "公司名称简称"}}, {{"text": "原始文本内容", "type": "公司英文名称简称"}}, ... ] }} 请严格按照JSON格式输出结果。 """) return prompt.format(text=text) def get_ner_address_prompt(text: str) -> str: """ Returns a prompt that generates a mapping of original addresses to their masked versions. Args: text (str): The input text to be analyzed for masking Returns: str: The formatted prompt that will generate a mapping dictionary """ prompt = textwrap.dedent(""" 你是一个专业的法律文本实体识别助手。请从以下文本中抽取出所有需要脱敏的敏感信息,并按照指定的类别进行分类。请严格按照JSON格式输出结果。 实体类别包括: - 地址 待处理文本: {text} 输出格式: {{ "entities": [ {{"text": "原始文本内容", "type": "地址"}}, ... ] }} 请严格按照JSON格式输出结果。 """) return prompt.format(text=text) def get_ner_project_prompt(text: str) -> str: """ Returns a prompt that generates a mapping of original project names to their masked versions. """ prompt = textwrap.dedent(""" 你是一个专业的法律文本实体识别助手。请从以下文本中抽取出所有需要脱敏的敏感信息,并按照指定的类别进行分类。请严格按照JSON格式输出结果。 实体类别包括: - 项目名 待处理文本: {text} 输出格式: {{ "entities": [ {{"text": "原始文本内容", "type": "项目名"}}, ... ] }} 请严格按照JSON格式输出结果。 """) return prompt.format(text=text) def get_ner_case_number_prompt(text: str) -> str: """ Returns a prompt that generates a mapping of original case numbers to their masked versions. """ prompt = textwrap.dedent(""" 你是一个专业的法律文本实体识别助手。请从以下文本中抽取出所有需要脱敏的敏感信息,并按照指定的类别进行分类。请严格按照JSON格式输出结果。 实体类别包括: - 案号 待处理文本: {text} 输出格式: {{ "entities": [ {{"text": "原始文本内容", "type": "案号"}}, ... ] }} 请严格按照JSON格式输出结果。 """) return prompt.format(text=text)