合同分析:AI合同审查
--- title: "合同分析:AI合同审查" description: "使用LLM进行合同分析和风险识别" tags: ["合同分析", "合同审查", "AI合同", "LLM", "法律科技"] category: "llm" icon: "📄"
合同分析:AI合同审查
合同分析概述
合同分析是利用LLM自动审查和分析合同的技术,帮助识别风险条款和提供修改建议。
核心功能
1. 合同审查
from openai import OpenAI
from typing import Dict, List
class ContractReviewAssistant:
"""合同审查助手"""
def __init__(self, model: str = "gpt-4"):
self.client = OpenAI()
self.model = model
def review_contract(self, contract_text: str,
review_focus: List[str] = None) -> Dict:
"""审查合同"""
focus_text = ""
if review_focus:
focus_text = f"\n审查重点:{', '.join(review_focus)}"
prompt = f"""请全面审查以下合同:
合同内容:
{contract_text}{focus_text}
请提供:
1. 合同概要
2. 关键条款分析
3. 权利义务评估
4. 风险识别
5. 修改建议
6. 总体评价"""
response = self.client.chat.completions.create(
self.model,
messages=[
{"role": "system", "content": "你是一位资深合同律师。"},
{"role": "user", "content": prompt}
],
temperature=0.3
)
return {"review": response.choices[0].message.content}
def check_compliance(self, contract_text: str,
applicable_laws: List[str]) -> str:
"""检查合规性"""
laws_str = "、".join(applicable_laws)
prompt = f"""请检查以下合同是否符合相关法律法规:
合同内容:
{contract_text}
适用法律:{laws_str}
请检查:
1. 合同效力
2. 条款合法性
3. 强制性规定
4. 格式条款
5. 合规建议"""
response = self.client.chat.completions.create(
self.model,
messages=[
{"role": "system", "content": "你是一位合同合规专家。"},
{"role": "user", "content": prompt}
],
temperature=0.3
)
return response.choices[0].message.content
2. 风险识别
class ContractRiskIdentifier:
"""合同风险识别器"""
def __init__(self, model: str = "gpt-4"):
self.client = OpenAI()
self.model = model
def identify_risks(self, contract_text: str,
party_perspective: str = "甲方") -> Dict:
"""识别风险"""
prompt = f"""请从{party_perspective}的角度识别以下合同的风险:
合同内容:
{contract_text}
请识别:
1. 高风险条款
2. 中等风险条款
3. 潜在纠纷点
4. 遗漏重要条款
5. 不公平条款
6. 风险等级评估"""
response = self.client.chat.completions.create(
self.model,
messages=[
{"role": "system", "content": "你是一位合同风险专家。"},
{"role": "user", "content": prompt}
],
temperature=0.3
)
return {"risks": response.choices[0].message.content}
def assess_liability_clauses(self, contract_text: str) -> str:
"""评估责任条款"""
prompt = f"""请评估以下合同的责任条款:
合同内容:
{contract_text}
请评估:
1. 违约责任
2. 赔偿限额
3. 免责条款
4. 责任分配
5. 改进建议"""
response = self.client.chatpletions.create(
self.model,
messages=[
{"role": "system", "content": "你是一位责任法专家。"},
{"role": "user", "content": prompt}
],
temperature=0.3
)
return response.choices[0].message.content
3. 合同对比
class ContractComparison:
"""合同对比"""
def __init__(self, model: str = "gpt-4"):
self.client = OpenAI()
self.model = model
def compare_contracts(self, contract1: str, contract2: str) -> str:
"""对比合同"""
prompt = f"""请对比以下两份合同:
合同1:
{contract1}
合同2:
{contract2}
请对比:
1. 主要差异
2. 条款优劣
3. 风险差异
4. 建议选择
5. 修改建议"""
response = self.client.chatpletions.create(
self.model,
messages=[
{"role": "system", "content": "你是一位合同比较专家。"},
{"role": "user", "content": prompt}
],
temperature=0.4
)
return response.choices[0].message.content
def compare_with_standard(self, contract_text: str,
standard_text: str) -> str:
"""与标准合同对比"""
prompt = f"""请将以下合同与标准合同对比:
实际合同:
{contract_text}
标准合同:
{standard_text}
请对比:
1. 差异条款
2. 偏离标准的地方
3. 风险提示
4. 建议修改"""
response = self.client.chatpletions.create(
self.model,
messages=[
{"role": "system", "content": "你是一位合同标准化专家。"},
{"role": "user", "content": prompt}
],
temperature=0.3
)
return response.choices[0].message.content
合同分析工作流
class ContractAnalysisWorkflow:
"""合同分析工作流"""
def __init__(self):
self.review = ContractReviewAssistant()
self.risk = ContractRiskIdentifier()
self.comparison = ContractComparison()
def full_contract_analysis(self, contract_text: str,
party: str = "甲方") -> Dict:
"""完整合同分析"""
# 审查合同
review = self.review.review_contract(contract_text)
# 识别风险
risks = self.risk.identify_risks(contract_text, party)
# 合规检查
compliance = self.review.check_compliance(
contract_text, ["民法典", "合同法"]
)
return {
"review": review,
"risks": risks,
"compliance": compliance
}
# 使用示例
workflow = ContractAnalysisWorkflow()
contract_text = """采购合同
甲方:XX公司
乙方:YY供应商
第一条 采购物品
甲方向乙方采购办公用品一批...
第二条 价格和付款
总价款人民币10万元,货到付款...
第三条 违约责任
如乙方延迟交货,每延迟一天支付合同总价0.5%的违约金...
"""
result = workflow.full_contract_analysis(contract_text, "甲方")
print("合同审查:")
print(result["review"]["review"][:300])
最佳实践
- 全面审查:从多角度审查合同
- 风险优先:重点关注高风险条款
- 专业确认:重要修改需律师确认
- 版本控制:管理合同修改版本
总结
合同分析是LLM法律应用的重要功能。通过合理使用,可以提高合同审查效率,降低法律风险。