我手搓了个“自动生成标书”的开源大模型工具

搞技术么,永远要想用工具解决问题,自己就手搓了个大模型写标书的工具,开源分享给大家。

最近我写开源商业文章明显更新少了,不是我不写文章了,而是开源商业化进展很顺利,我写文章的时间都被各种写标书占满了。作为一个开源原生的商业公司,白鲸开源公司的员工几乎都是程序员,而让这些开源贡献者写标书浪费他们的开发时间不说,写出的标书质量简直没法看。而做创业公司的CEO和在大公司做管理者不一样,公司需要啥你就是啥,公司开完战略会,你就是第一个撸起袖子杀出去的人。结果就是我根本没时间写总结文章。有限的时间都在写一些八股文的标书。特别是到最近,连续投标写标书,写到我自己都怀疑人生了。。。

1731653622506a425352a84b14c7acb601495bd156322

大模型来解决痛点

搞技术么,永远要想用工具解决问题,想用大模型,但是大模型胡说八道无法控制,也无法完全理解你的产品,写出来你也不敢用,关键是你交付,不是它交付。于是我自己开发了个大模型写标书的工具,用python+大模型(兼容ChatGPT),手搓了一个自动根据你的产品文档生成标书的大模型工具,主要思路就是分解你的产品手册到功能点,然后通过人写出来功能点和需求的映射关系直接生成word版本标书和Excel偏离表,所有的内容大模型可以缩写或者扩写,也可以直接copy原有相关功能。

开源标书工具的功能

这个程序功能很简单,比较恶心的是word版本格式的部分(调格式永远是最痛的),我调试了好几种方法才让它老老实实根据word模板的标题1,标题2,标题3,还有正文格式,表格格式,图片格式正确生成。本着开源精神,我把工具放到了我个人的github下面:

大家感兴趣的可以过去自取,是Apache License的,所以大家如果需要可以随便用。这个软件功能如下:

  1. 拆解你的产品功能手册为可复用的若干可复用的细节文档,用于书写标书不用反复扫描原文档,提高生成标书性能,也可以针对不同功能进行魔改(默认文件名是“Template.docx”)

  2. 根据人填写的需求对应当中的对应部分,自动根据产品文档自动生成点对点应答格式的标书,包括所有小标题及内容,自动生成标题1,2,3格式,自动整理正文、图片、项目符号格式(默认需求对应表是“需求对应表.xlsx”,标书生成内容在“标书内容.docx”)

  3. 标书内容如果有产品需求对应表中对应功能,自动拷贝产品说明书内容到点对点应答之后(保留图片、表格,项目符号等),也可以自动重写产品文字内容以面对不同标书需求;如果无对应功能,会调用大模型自动生成相关功能说明(你自己要检查修改,大模型写完了,你实现不了别找我)

  4. 完成技术需求偏离对应表,在“需求对应表.xlsx”当中自动填写需求对应表当中点对点应答,格式为“答:全面支持,{大模型根据项目需求自动生成文本}”,同时填写标书对应的章节号码

基本上,用了这个小程序,随心所欲的修改快速生成标书。

自动生成标书效果

先执行Extract_Word.py 生成你产品的功能点word文档,然后再运行Generate.py,如果找不到功能点对应的,你可以在Excel里填"X",这样大模型就会自动给你生成符合需求的标书内容,不过强烈建议人工复核,根据生产完的标书就是这个样子,目录格式、正文格式、图片、图表、项目格式都根据“标书内容.docx”里面的样式就行修改了。

所有的内容会从产品手册里抽出来,自动组成客户标书需求的顺序格式,小标题、内容、图片,点对点问答全部生成出来了,省却你各种机械的工作了。

而自动生成的需求偏离表不分是是大模型自己生成的,包括对应的章节号,你根据最终需求自己用上&符号就可以拼出来最后的需求偏离表了,不需要一个一个写了,大模型帮你都写好了。

对于我而言,把过去需要8个小时干的活,基本上在30分钟内全部搞定了,加上商务小伙伴也可以利用模板来生成商务部分对应关系(而且格式是定义好的),最终加上检查。过去搞一周时间的标书,大概1-2天就全部搞定了,投入人力节约了80%。

使用方法

首先从Github上下载所有的代码在一个目录下,下载地址https://github.com/William-GuoWei/ProposalLLM: 标书大模型(Proposal-LLM Chinese version )

  1. 安装python环境,安装相关包:pip install openpyxl, docx, openai, requests, docx, python-docx

  2. 申请ChatGPT或者 百度千帆大模型(我使用的是ERNIE-Speed-8K,免费模型),申请后把Token记录下来,填写到代码当中相应key的位置

  3. 拷贝产品说明手册到Template.docx,注意,样式需要用文档中的正文,标题1,标题2,标题3,其它格式可能会出现问题

  4. 运行Extract_Word.py 生成产品手册对应的文档文件(目前支持最多3级标题),检查生成文件内容是不是正确,此时项目列表格式如果不对不要紧,最后生成格式为准。

  5. 填写需求对应表.xlsx,当中的B列,C列(程序自动根据这个内容会生成二级、三级标题),G列(对应产品说明书当中的功能章节,如果没有可以填X,注意目前支持到3级标题,填X或者找不到章节的部分,大模型会自动生成内容)

  6. 检查“标书内容 .docx",保留准备要生成标书开始的章节,所有正文、标题1,2,3的样式,可以自行修改样式格式,不要改样式名称,否则生成样式会找不而报错

  7. 设置Generate.py里面的参数

  • API_KEY,SECRET_KEY 百度智能云大模型的Key

  • MAX_WIDTH_CM,图片最大宽度,大于此宽度会自动缩小

  • 各种自动生成点对点应答和内容的的Prompt,已经根据大数据场景进行修改了,可以根据产品类型,自行修改,点对点应答格式也可以自己定义。

  • MoreSection=1会读取C列,生成明细三级标题,默认1开启

  • ReGenerateText=0,如果为1,会把所有产品文档文字部分自动重新生成,用于面对不同标书需求,默认为0

  • DDDAnswer=1,如果为1,自动生成点对点应答内容放到每个功能点的头部位置,默认为1

  • key_flag=1,会带需求重要程度到标书小标题当中,默认开启

  • last_heading_1=2 ,在标书内容.docx当中 生成技术方案的 开始章节,例如模板当中的,开始章节就是2,这样可以在需求对应表当中自动填写对应章节号。

    1. 运行Generate.py

小结

基本上用了这个小软件之后,你只需要对照下产品功能和标书需求,标书部分基本可以自动生成了,商务标部分也可以用类似的方法直接生成,这样生成一份千页的标书不过几分钟而已,

最后,如果有过去做Informatica或者Talend、DataStage的代理商或者用户可以直接扫描二维码找到我们:白鲸开源是ApacheDolphinScheduler和ApacheSeaTunnel原班人马成立的开源商业公司,提供功能更多、稳定性更强的商业版本解决用户调度,数据开发、数据同步和ETL的问题,目前支持192种数据库(信创、云、开源、ERP等)的ETL与数据开发,全面替换Informatica与Talend等工具相应功能,感兴趣直接发邮件给service@whaleops.com