我構建了一個自動生成提案的LLM,并拿到GitHub上開源了它 原創
現有的大模型無法解決我的問題,于是我自己構建了一個開源工具,用于高效地自動生成提案。
最近,我沒有像以前那樣頻繁地更新開源文章,倒不是由于我停止寫文章,而是由于開源商業化方面的進展很大,沒完沒了地起草提案這項任務消耗了我的太多時間。
作為一家本土的開源商業公司,WhaleOps雇傭的大多是工程師。要求這些開源貢獻者編寫提案浪費了他們的開發時間,他們的提案并不總是符合質量標準。與大公司的管理不同,身為初創公司的首席執行官意味著擔任公司需要的任何角色。每次戰略會議結束后,我都是第一個卷起袖子、處理最緊急的任務。因此,我沒有時間寫文章,因為有限的時間主要用于創建遵循正式模板風格的提案。尤其是最近,由于忙著競標,我發現自己都忙暈了。
作為一名技術人員,我總是尋找工具來解決問題。我自然想到了大模型,但它們不能完全理解我們產品的細微差別,而且經常生成不可靠的輸出。此外,交付工作的是你,而不是模型。
于是,我決定使用Python和兼容的大模型(與ChatGPT兼容),開發一個基于大模型的提案生成工具。這個工具可以自動從你的產品文檔生成提案,將產品手冊分解為特征點。基于人為創建的這些特征點到需求的映射,它生成提案的Word版本和Excel偏差表。模型可以根據需要來精簡或擴展內容,或者只是復制相關功能。
開源提案工具的功能特性
這個工具的功能很簡單,最具挑戰性的部分是Word格式(Word中的格式始終很痛苦)。我嘗試了幾種方法來確保它遵循Word模板中正確的標題1、標題2、標題3、正文、表格和圖片格式。為了恪守開源精神,我已將這個工具上傳到了我的個人GitHub上,采用Apache許可證,所以如果你需要它,可以隨意使用。該工具的功能如下:
- 將你的產品手冊分解為一組可重用的詳細文檔,減少在起草提案時重復引用源文檔的需要。你還可以定制特定的功能(默認文件名為“Template.docx”)。
- 基于某個人填寫的需求表,它自動生成點對點響應格式的提案,包括所有標題和內容,并使用正確的標題1、標題2和標題3格式,并自動組織正文文本、圖片和要點(默認需求表是“requirements_table.xlsx”,生成的內容在“proposal_content.docx”中)。
- 對于相應功能部分中的任何產品需求,它會自動將產品手冊內容復制到點對點響應部分,保留圖片、表格和要點。你還可以重寫產品描述以適應不同的提案需求。如果沒有匹配的功能,模型會自動生成相關內容(根據需要進行檢查和修改)。
- 通過在“requirements_table.xlsx”中自動填寫響應,完成技術需求偏差表,響應格式為“答案:完全支持,{基于項目需求的模型生成文本}”,并包含與提案對應的節號。
使用該工具,你可以隨意快速修改和生成提案。可以在這里得到它:??https://github.com/William-GuoWei/ProposalLLM。??
提案生成流程
首先運行Extract_Word.py,將產品特征點生成為Word文檔,然后運行Generate.py。如果缺少某個特征點,可以在Excel文件中輸入“X”,模型會生成符合需求的內容。然而,我強烈建議手工檢查。生成后,你會看到使用由內容表、正文、圖片、表格和要點格式化的提案,所有這些都是自動組織的。
整個提案是根據客戶的要求以順序格式構建的,包括小標題、內容、圖片和點對點響應。這承擔了所有的重復性工作。
自動生成的偏差表包括所有內容,無論內容是否由模型生成以及相應的節號。你只需要根據最終需求用“&”符號來完成偏差表,模型已為你寫好了。
對我來說,這個工具將過去8小時的工作減少到30分鐘左右,甚至我們的業務團隊也可以使用模板生成業務提案部分。總而言之,這將我們為期一周的提案時間縮短至1-2天,所需的人力減少了80%。
如何使用它?
首先,從GitHub下載所有代碼到一個目錄中:Proposal Large Model(中文版),即??https://github.com/William-GuoWei/ProposalLLM。??
安裝Python環境和軟件包:pip install openpyxl, docx, openai, requests, docx, Python -docx。
申請ChatGPT或百度千帆大模型密鑰(我使用了ERNIE-Speed-8K,免費),記錄token,放入到相關代碼段中。
將你的產品手冊復制到Template.docx。確保使用所提供的正文、標題1、標題2和標題3樣式,其他格式可能會導致問題。
運行Extract_Word.py,從產品手冊生成特征點文檔(支持多達3個標題級別)。如果列表格式出現異常,別擔心,最終格式會正確對齊。
填寫B欄和C欄(自動生成二級和三級標題)以及G欄(相應的產品手冊章節)。如果缺少一章,請輸入“X”。注意,如果沒有相應的章節或輸入“X”,模型會自動生成內容。
查看“proposal_content.docx”文檔,并保留想要開始生成提案的那一章節。你可以修改正文和標題1、2和3的樣式;只是別重命名樣式,否則可能會有錯誤。
調整Generate.py中的參數:
- API_KEY和SECRET_KEY:百度云大模型密鑰。
- MAX_WIDTH_CM:最大圖片寬度;大于此值的圖片將自動調整大小。
- 用于生成內容的提示已針對大數據場景進行了定制,但你可以隨意修改它們。
- MoreSection=1將讀取列C以生成詳細的三級標題(默認為開啟)。
- ReGenerateText=0將自動為不同的提案需求重新生成文本內容(默認為關閉)。
- DDDAnswer=1在每個特征點的頂部生成點對點響應內容(默認為開啟)。
- key_flag =1將每個需求的重要性級別添加到提案標題中(默認為開啟)。
- Last_heading_1 =2指定“proposal_content.docx”中技術解決方案的起始章節。
運行Generate.py。
總結
使用此工具,你只需要根據提案需求檢查產品特征,并且大多數提案內容是自動生成的。業務提案部分也可以以類似的方式生成,因此創建1000頁長的提案現在只需要幾分鐘。
原文標題:??I Built an Automatic Proposal Generation LLM and Open-Sourced It on GitHub??,作者:William Guo
