在民商事诉讼中,大量的合同履行纠纷证据并非规整的 Word 文档,而是散落在业务员手机中的微信聊天截图、催款短信照片、银行付款回单以及邮寄律师函的 EMS 面单。
法务和律师在立案前,必须花费大量时间从这些异构碎片材料中人工提炼出时间线,否则极易在庭审中出现逻辑漏洞。
三函代码针对此需求,设计了一套全自动的案件卷宗整理与时间线构建引擎。
一、 微信截图多模态提取架构
微信聊天截图由于包含头像、气泡、未读消息提示等视觉干扰,直接 OCR 识别会打乱对话顺序。 我们使用多模态大模型进行“版面感知 + 角色匹配”:
- 版面识别:自动切分屏幕,区分左侧气泡(对方发言)与右侧气泡(我方发言)。
- 时间戳匹配:识别页面顶部或气泡之间灰色的时间分隔条(如“昨天 14:32”)。
- 语义合成:按照时序合成结构化的对话历史 JSON。
二、 时间线生成与交叉对齐 Python 代码
以下代码展示了如何读取提取出的对话、回单和合同要点,使用 Python 算法构建全案时间线,并标注证据的关联性:
import datetime
def generate_case_timeline(chat_events, financial_events, contract_sign_date):
"""
chat_events: [{'date', 'sender', 'text', 'evidence_id'}]
financial_events: [{'date', 'amount', 'type', 'evidence_id'}]
"""
timeline = []
sign_dt = datetime.datetime.strptime(contract_sign_date, "%Y-%m-%d")
# 1. 录入合同签署基准点
timeline.append({
"date": sign_dt,
"event": "合同签订生效",
"evidence_id": "证据一",
"status": "APPROVED"
})
# 2. 录入财务事件
for fe in financial_events:
fe_dt = datetime.datetime.strptime(fe['date'], "%Y-%m-%d")
timeline.append({
"date": fe_dt,
"event": f"发生付款交易:金额 {fe['amount']} 元",
"evidence_id": fe['evidence_id'],
"status": "APPROVED"
})
# 3. 解析催款事件(微信聊天)
keywords_urgency = ["还款", "欠款", "付钱", "月底", "违约"]
for ce in chat_events:
ce_dt = datetime.datetime.strptime(ce['date'], "%Y-%m-%d %H:%M")
if any(kw in ce['text'] for kw in keywords_urgency):
timeline.append({
"date": ce_dt,
"event": f"我方进行催告,对方回复: '{ce['text'][:20]}...'",
"evidence_id": ce['evidence_id'],
"status": "WARNING" # 标记为争议/催告节点
})
# 按时间顺序重新排列
timeline.sort(key=lambda x: x['date'])
return timeline三、 成果展示
整理后,系统会为法务输出一份结构化的 Excel 证据时间线对照表:
| 交易/事件日期 | 发生事件详情 | 对应佐证证据 | 证据法律效力 |
|---|---|---|---|
2024-03-15 | 原告与被告签订软件开发主合同 | 证据一:《主合同》原件 | 强书证 |
2024-07-20 | 我方在微信催告,对方回复“下周安排” | 证据六:聊天截图 | 电子数据(建议公证) |
这套自动化工具极大减轻了律师在举证前期的文字整理工作,为诉讼文书起草提供了高度可靠的逻辑骨架。