← 返回首页
🧠

合同分析:AI合同审查

📂 llm ⏱ 3 min 437 words

--- 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])

最佳实践

  1. 全面审查:从多角度审查合同
  2. 风险优先:重点关注高风险条款
  3. 专业确认:重要修改需律师确认
  4. 版本控制:管理合同修改版本

总结

合同分析是LLM法律应用的重要功能。通过合理使用,可以提高合同审查效率,降低法律风险。