合同管理模块 contract-management

功能:合同上传、类型识别、条款提取、附件管理
需求:处理合同相关配置的所有事务。
设计:合同管理模块包括rule、contract、prompt三部分作为内部逻辑,其他能力均为外部提供。

智能审查引擎 contract-review-engine

功能:任务编排、大模型调用、规则执行
需求:支持多种任务进行流转、支持一定程度上较为便捷的侵入式流程编排、追踪任务状态,总体负责合同审查任务的执行、管理和监控。
设计:设计状态机、定义状态枚举、通过定时任务进行状态流转,任务通过模板模式进行动作控制,通过任务executor定义执行器。
核心职责

  • 任务生命周期管理(创建、执行、监控、重试)
  • 合同文本提取和预处理
  • 条款识别和结构化处理
  • 审查规则引擎执行
  • 审查结果生成和存储
  • 操作日志记录和审计

通用依赖模块 contract-common

功能:多服务通信Feign和相关传输类、通用工具类
需求:解耦management和engine的通用entity定义jar
设计: 只存放feign接口和相关定义的dto,其他domain实体都遵循"谁拥有数据,谁管理数据"的规范。controller具体实现和domain实体都在各自模块内,对外暴露的都是经过允许的dto。
实际只存储了dto(feign专用)、constant、controller

鉴权模块 contract-security-ruoyi

功能:远程鉴权、角色管理、权限管理,基于ruoyi-vue springboot3分支开发。
需求:为其他所有模块提供接口粒度的权限认证,下游引用相关依赖即可,使用注解和配置项即可,不需要代码配置。
设计:二次开发若依项目,增加ruoyi-feign模块,其中提供注解和Spring EL表达式,用法和原先若依的注解保持一致,整个用户系统由若依管理。

错误管理模块 contract-exception-handler

功能:全局错误捕获、错误日志记录、错误码管理
需求:提供统一的异常捕获和通用的ErrorCode,每个服务只需要引用这个包就可以进行异常处理,而且可以继承ErrorCode来实现自己的异常代码。
设计:

  • 提供跨微服务的统一异常处理机制
  • 标准化错误响应格式
  • 简化各服务的异常处理逻辑

网关模块 contract-gateway

功能:限流、缓存、幂等控制、简单认证
需求:所有请求都会从这里过,并且会提供防火墙的功能,进行黑白名单筛选、url规则管理、简单的认证(例如token存在性校验)、一级缓存
设计:

  • 统一入口
    作为所有外部请求的唯一入口点
    前端应用只需与网关交互,无需知道后端具体服务地址
  • 请求路由与负载均衡
    根据请求路径将流量分发到相应的微服务
    实现服务间的负载均衡
  • 安全控制
    认证授权验证
    API密钥管理
    防止未授权访问
  • 流量控制
    限流保护(防止单个服务被过度请求)
    熔断机制(服务故障时快速失败)
  • 错误处理 (在contract-exception-handler中实现)
    统一错误码返回格式
    异常统一处理
  • 性能优化(暂未实现)
    响应缓存(减少重复请求)
    请求压缩
    幂等控制(防止重复操作)
  • 监控与日志(暂未实现)
    请求链路追踪
    访问日志记录
    性能指标收集

存储模块 contract-file

功能:文档存储、元数据、加密存取
需求:需要多种存取模式,脱离业务专注于存储。
设计:基于DDD架构的微服务设计,提供FileClient SDK和REST API双重接口,支持URL和UUID两种文件访问模式,可以自定义密钥进行加密存取,也可借助MinIO使用相关能力。

AI集成模块 contract-ai

功能:大模型适配、格式转换、第三方集成
需求:提供大模型能力接口,这个能力必须让模型代码和配置参数完全解耦。
设计:通过策略模式对接了GLM、IFLOW、DeepSeek三种API,并且各自对接了对话、图文、文件对话API。

下回预告

明天让我们稍微回溯一下时间线,来到模块设计之前,来看看有哪些设计需要做的事情。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐