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