DIFY合同生成全流程开发实践(一、前期准备)
本文探讨了企业合同自动化生成的解决方案。针对企业常用固定格式合同(如采购/销售合同)的重复修改需求,提出基于AI模型的自动化生成方案,选用Dify平台开发工作流而非RAGflow。方案包含用户信息提交、完整性校验、模板生成、Word转换及下载功能。硬件配置方面,建议企业内部部署DeepSeek模型(32B版需24GB显存GPU)。技术实现上采用Dify环境变量存储Markdown模板,通过Fast
一、需求背景
对于大多数一般公司基础业务来说,不同公司合同在实践中基本都有自己的固定格式,拿常用的采购合同以及销售合同来说,通常内容格式基本固定,业务员每次根据新项目的基础信息如合同金额、甲乙公司信息以及一些必要基础信息来根据模版内容修改对应部分。金额,基础信息替换,以及根据不同的合同信息描述修改对应章节内容,这部分工作虽然难度不大,但是却比较耗时,而当前对于这一类简单文字工作内容,无论是deepseek开始其他ai模型,都有着较好的写作能力,这就使得合同初版的自动化生成有了可行性,而人工工作部分就可以更加聚焦于更细致的合同审查方面,减轻前期的工作内容。
ps:对于大多数公司来说,合同的合规审查基本上不是一项很细致的工作,一般都是根据一套用了好几年的固定模板来修改,所以初期的重点在于能较好的根据合同信息和模板来生成合同即可。后期和增加合规等其他agent来逐步完善。
二、实现路径
在对比了ragflow和dify的工作流开发流程后,最终选择了dify,原因是ragflow虽然作为知识库来说,它有着强大的文本识别以及精准召回功能,但是工作流编排功能聊胜于无,在实际编排过程中,插件调用,代码节点执行,循环节点等都非常难用,考虑到按照单一模板的合同生成功能,并不需要强大的知识库作为上下文,所以选择了dify进行工作流开发。
三、功能分解
基本的功能要求:
- 用户上传新合同基本信息。
- 判断信息是否满足要求,并给出需补充的信息。
- 满足信息要求后,按照模板生成新的合同文本。
- 将合同文本生成word文档,并提供下载链接。
四、前期准备
硬件需求参考:
对于有保密需求的公司来说,一般不乐意将相关文本发送给三方的大模型公司如deepseek,所以公司内部自己部署一套deepseek蒸馏模型就非常有必要。以下是各蒸馏版本deepseek运行需要的显存要求,一般建议企业应用的话,最少32b模型,14b的话幻觉程度已经较大了,适合几百字的短文本生成。
deepseek环境要求:
deepseek的部署,规模较小的公司,建议使用ollama进行部署即可,规模化部署的话,可以使用
vllm进行部署。
DeepSeek 14B 模型
显存要求:至少需要16GB显存的GPU,例如NVIDIA RTX 4090或A5000等高端显卡。
CPU:建议12核以上处理器,以确保数据调度效率。
内存:推荐32GB或更高,避免因内存不足影响速度。
存储:至少256GB高速固态硬盘(SSD),优先选择NVMe协议以加快加载速度。
DeepSeek 32B 模型
显存要求:需要24GB显存以上的GPU,例如NVIDIA A100或类似高端显卡。单卡可能无法满足需求,需考虑多卡并行。
CPU:建议16核以上处理器,以支持复杂推理任务。
内存:推荐64GB或更高内存,确保多任务处理流畅。
存储:至少1TB高速SSD,因模型文件较大,普通硬盘加载会极慢。
DeepSeek 70B 模型
显存要求:需多张高性能GPU并行,例如8张A100 80GB显卡,总显存建议超过80GB。单卡无法胜任。
CPU:推荐32核以上高性能处理器,以处理大规模数据。
内存:需要128GB或更高内存,理想情况下可达768GB以上。
存储:至少2TB高速SSD,确保模型加载和运行效率。
dify环境要求:
- CPU:≥2核(推荐4核以上)
- 内存:≥4 GiB(推荐8 GiB以上)
后端环境要求:
目前后端的设想是为工作流提供最终生成内容fastApi形式的文档生成以及下载功能,因为dify插件市场提供的工具首先是无法提供下载功能,第二个是无法在后期优化生成的word文档格式。
文档准备:
-
合同模版
为便于后续开发将输出内容直接转换为Word文档,建议模型参考模板采用Markdown格式。
将合同内容,转为markdown格式,可通过dify设置环境变量存储,便于调用。
-
合同信息收集模板
根据合同模板,提炼合同必须要提供的固定信息形成合同信息收集模板,
用来生成模板时用户上传合同基础信息的填写参考,还能用来让模型对照来判断用户上传信息完整性,
五、Agent节点设计思路
- 使用dify的环境变量设置功能,将md格式的合同模板,md格式的合同信息收集模板存为环境变量属性。
- 用户根据合同信息收集模板填写合同信息,在对话框上传文档,模型根据环境变量里的合同信息要求对比用户上传内容,指出缺失部分。
- 如信息完整,则将环境变量的合同模板以及新的合同信息传给大模型,让其根据按照新的合同信息根据模板格式生成新的合同。
- 生成的合同文字,通过http节点请求python开发发布的fastApi接口,生成word格式的文件
- 生成的word文件,通过nginx发布为可访问链接,并在dify的http全球节点返回
- 用户在对话窗口点击链接,一键下载生成的word文档。
更多推荐


所有评论(0)