rectify_OCR_result.py 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. from openai import OpenAI
  2. import config.config
  3. class RectifyClient_application:
  4. def __init__(self, base_url: str = None, api_key: str = None):
  5. self.base_url = base_url or "https://api.deepseek.com"
  6. self.api_key = api_key or getattr(config.config, "DEEPSEEK_API", None)
  7. if not self.api_key:
  8. raise ValueError("API Key 缺失,请检查 config.config.DEEPSEEK_API")
  9. self.client = OpenAI(
  10. api_key=self.api_key,
  11. base_url=self.base_url
  12. )
  13. def extract_legal_document(self, input_text: str):
  14. system_prompt = """你是一个法律文书深度解析专家。请根据文书的语义逻辑,提取以下三个核心功能板块的内容。
  15. 任务目标:
  16. 根据语义逻辑提取信息,忽略页码、杂质字符、页眉页脚及“无正文”等标注。
  17. 提取逻辑说明:
  18. 1. 当事人信息板块:提取所有参与方的信息(无论其被称为申请人、原告、被申请人、被告还是第三人)。包含姓名/名称、证件号、地址、联系方式等所有原文描述。
  19. 2. 诉求事项板块:提取其要求解决的具体事项(无论标题是“申请事项”、“请求事项”还是“诉讼请求”)。请按原文序号分行罗列。
  20. 3. 事实与理由板块:提取文书中描述背景经过、证据理由的内容。
  21. - 截断规则:该部分内容提取完毕后即停止,忽略后续的“此致”、“致某某委员会”、“落款签名”、“日期”以及“附:证据清单”等信息。
  22. 核心要求:
  23. - 数据零偏差:身份证号、电话、统一社会信用代码、金额、日期必须与原文完全一致。
  24. - 剔除杂质:自动识别并删除OCR产生的乱码(如单独的“考”、“黄”)、页码(第x页)、或无关的地点水印(如文中散落的“苏州”字样)。
  25. - 保持结构:保留原文的段落感,不要压缩文本。
  26. - 注意生成的内容不要以markdown形式输出,我要纯文本"""
  27. messages = [
  28. {"role": "system", "content": system_prompt},
  29. {"role": "user", "content": f"请解析以下法律文书:\n{input_text}"}
  30. ]
  31. try:
  32. response = self.client.chat.completions.create(
  33. model="deepseek-chat",
  34. messages=messages,
  35. temperature=0.0, # 必须为0以确保数字准确性
  36. stream=False
  37. )
  38. return response.choices[0].message.content
  39. except Exception as e:
  40. # 在实际接口中,我们抛出异常以便被 FastAPI 捕获
  41. raise Exception(f"模型调用失败: {str(e)}")
  42. if __name__ == '__main__':
  43. test_input_3 = """
  44. 001
  45. 劳动人事争议仲裁申请书
  46. 申请人:刘正新,性别:男,民族:汉族,国籍:中国,公民身份证证件号:320911199504094914,
  47. 出生日期:1995年4月9日,手机号:16761734657,户籍地:江苏省盐城市盐都区郭猛镇育才巷33
  48. -2号
  49. 被申请人:上海沐璨信息科技有限公司,住所地:上海市浦东新区杨南路455号A510室,法定代表
  50. 人:王需勇,单位电话:17316383135,法定代表人电话:17316383135
  51. 被申请人:
  52. 第三人:
  53. 苏州
  54. 请求事项:
  55. 1、请求被申请人向申请人支付2021年11月1日至2021年12月31日期间劳动报酬25000元;
  56. 苏州
  57. 事实与理由:
  58. 申请人于2021年4月21日在南京入职,担任销售主管的岗位,约定底薪6000
  59. 元,提成另算,2021年7月开始担任苏州城市经理。于12月份监管苏州、南京、
  60. 杭州,底薪调整为13000元。截止目前,11月薪资尚有11000元未发放,12月薪资
  61. 14000元未发放,老板2021年12月底以公司经营不善为由关门停业,薪资不予发
  62. 放。特申请劳动仲裁,要求单位支付剩余工资。(本页无正文)
  63. 苏州市
  64. --- Next Page ---
  65. 002
  66. (以下无正文)
  67. 此致
  68. 苏州市劳动人事争议仲裁委员会
  69. 刘新
  70. 申请人:
  71. (签名或盖章)
  72. 2022年1月19日
  73. 附:本申请书副本1份
  74. 注:1、申请书应用钢笔、毛笔书写或打印。
  75. 2、申请书副本份数,应按被申请人、第三人人数提交。
  76. 3、请求事项应简明扼要地写明具体、明确的要求。
  77. 4、事实与理由部分页面不够使用时,可用同样大小纸张续加中页
  78. 5、当事人为自然人的,应写明姓名、性别、民族、户口性质、出生
  79. 年月日、住址、确认有效的通讯住址和邮编、电话等;当事人为
  80. 用人单位的,应写明单位名称、性质、住所地、确认有效的通讯
  81. 地址和邮编、电话、法定代表人(或主要负责人)姓名、职务等。
  82. """
  83. client = RectifyClient_application()
  84. result = client.extract_legal_document(test_input_3)
  85. print(result)