GitHub地址: (GitHub - yidianyiko/paperworksAgents)
今年以来,类似集度汽车“一夜解散”的事情屡见不鲜,数千人要求在数天乃至数小时内完成协商解除劳动协议的合同,相同的情况还发生在入离职合同,房屋租售的合同上。但是合同审查是一项劳动密集型的工作,通常需要律师助理和初级律师仔细识别合同中的关键信息。我们个人甚至律师都难以在这么短的时间内完成合同的审阅及风险判断,我们作为非专业人士也难以对专业属于“咬文嚼字”,作为弱势方,遇到这样的场景,往往容易陷入手足无措的境地,身边没有法律资源,或者负担不起法律资源的问题客观的存在着。市面上针对合同审查的 AI 工具往往都是面向甲方和公司的,不能很好站在弱势方。
三个问题: 1. 短时间内识别有什么风险
-
这些风险会发展成什么样?
-
我的大脑已经宕机了,这个时候我应该如何决策?
因此通过 agent ,帮助用户在短时间内识别出合同中的风险,并借助多智能体系统模拟理性思维(思考帽)和感性思维,帮助用户推理这个风险项在未来可能造成的结果,帮助用户在短时间内做出合乎理性以及情感的决策。
技术架构设计
整体分为三大模块来解决这三个问题:
-
关键信息及风险性提取 agent:用来提取风险和脱敏
-
role-playing 合同风险项及 RAG 知识图谱构建:解决知识面面和数据量的问题
-
workforce 多智能体的群体辅助决策三部分:给用户兼顾理性和感性的决策建议
技术栈
-
通义:MAX,通义法睿-Plus-32K
-
openai
-
CAMEL:agent,role-playing,firecrawl, workforce ,RAG,Tool 等(感谢社区提供的 cookbook)
-
知识图谱:neo4j——可以替换成 nebula-graph
This content is only supported in a Feishu Docs
主要流程
-
用户上传 pdf
-
通过 chunkr 识别成 markdown 格式的文本
-
通过 Qwen 文本大模型,通过专家提供的 agent 生成结构化的合同数据,并进行脱敏,生成 json 格式的数据
-
将 json 格式的数据输入给 role-playing 模块,通过 RAG 在互联网上搜索相关案例及文书,最后生成 report 和neo4j 的知识图谱
-
最后将获得的报告和知识图谱输入给 workforce,workforce 内部实现了 7 个 agent,模拟现实中的五顶思考帽的方式帮助用户理性决策,并增加了社会关系,让亲友和同事的角度对风险项的可能结果和风险指数进行了分析,并给出最后的分析报告
-
通过 fish 将报告有感情的返回给用户
程序目录说明
模块化 设计:
每个主要功能都独立成模块,便于维护和扩展
符合单一职责原则,每个模块专注于特定功能
frontend分离:
将前端相关代码独立,支持多种接入方式
便于前后端分离开发document_processor模块:
分别处理不同类型的输入文档
统一文档处理接口
llm_agents模块:
将合同分析和辩论智能体分开
支持多种智能体类型和扩展
knowledge_base模块:
整合图数据库和向量存储
统一知识管理接口
output_handlers模块:
处理多种输出格式
预留语音输出扩展
可选模块预留:
model_training为可选的模型训练
保持架构的扩展性工具和测试支持:
utils提供通用功能
tests确保代码质量
创新性
部署教程
进入主目录后执行 setup.py
然后执行 main.py
输入所需的 API key:Qwen,OPENAI,chunkr,fish,MISTRAL
最长需要等待半小时左右可以得到结果。
下面有执行的结果和视频,可以快速 review。