标书智能体(三)——生成标书正文代码+提示词
用Python+React打造一个开源的AI写标书智能体~
完整代码已开源
代码很多,文章只放主要代码和提示词,完整代码可以查看开源项目
Github: https://github.com/yibiaoai/yibiao-simple
Gitee: https://gitee.com/yibiao-ai/yibiao-simple
今天是第三期,根据生成好的提纲,填充标书内容。

正文生成,并不像上一节讲的提纲生成那么复杂,核心难点只有两个:
- 标书需求字数太多: 一份标书动辄几万几十万字,直接让AI生成必然行不通。有了上一节生成提纲的经验,我们已经知道答案了,那就是把正文也打碎,让AI按照提纲的叶子节点,逐节生成正文。
- 上下文不连贯,或内容重复: 这就引出了我们第二个难点,分布生成,多部分内容之间不连贯是肯定的,可以更大的问题是,都是基于一份招标文件生成的技术方案,很可能生成意思过于相近的内容,俗称车轱辘话。
下面,咱们就来逐项分析一下,如何解决上述难点。
一、获取生成内容所需信息
从前端拆分提纲,提纲的每一个叶子节点都发起一个生成请求,需要传递以下参数
class ChapterContentRequest(BaseModel):
"""单章节内容生成请求"""
chapter: Dict[str, Any] = Field(..., description="章节信息")
parent_chapters: Optional[List[Dict[str, Any]]] = Field(None, description="上级章节列表")
sibling_chapters: Optional[List[Dict[str, Any]]] = Field(None, description="同级章节列表")
project_overview: str = Field("", description="项目概述")
- chapter: 本章节信息,不多说,这是必须的
{
"id": "3.2.2",
"title": "技术实力",
"description": "技术研发能力和创新情况"
}
- parent_chapters: 上级章节列表,为了保持连贯性
- sibling_chapters: 同级章节列表,为了生成内容不重复
- project_overview: 项目概述,这是核心,让AI知道自己要写的标书的核心需求
二、核心提示词
SystemPrompt
你是一个专业的标书编写专家,负责为投标文件的技术标部分生成具体内容。
要求:
1. 内容要专业、准确,与章节标题和描述保持一致
2. 这是技术方案,不是宣传报告,注意朴实无华,不要假大空
3. 语言要正式、规范,符合标书写作要求,但不要使用奇怪的连接词,不要让人觉得内容像是AI生成的
4. 内容要详细具体,避免空泛的描述
5. 注意避免与同级章节内容重复,保持内容的独特性和互补性
6. 直接返回章节内容,不生成标题,不要任何额外说明或格式标记
UserPrompt
这个就需要拼接一下了
项目概述信息:
{project_overview}
请为以下标书章节生成具体内容:
{context_info if context_info else ''}
当前章节信息:
章节ID: {chapter_id}
章节标题: {chapter_title}
章节描述: {chapter_description}
请根据项目概述信息和上述章节层级关系,生成详细的专业内容,确保与上级章节的内容逻辑相承,同时避免与同级章节内容重复,突出本章节的独特性和技术方案的优势。
context_info是拼接的上级、统计节点信息
# 构建上下文信息
context_info = ""
# 上级章节信息
if parent_chapters:
context_info += "上级章节信息:\n"
for parent in parent_chapters:
context_info += f"- {parent['id']} {parent['title']}\n {parent['description']}\n"
# 同级章节信息(排除当前章节)
if sibling_chapters:
context_info += "同级章节信息(请避免内容重复):\n"
for sibling in sibling_chapters:
if sibling.get('id') != chapter_id: # 排除当前章节
context_info += f"- {sibling.get('id', 'unknown')} {sibling.get('title', '未命名')}\n {sibling.get('description', '')}\n"
拼接后的完整user_prompt示例
请为以下标书章节生成具体内容:
上级章节信息:
- 1 投标文件技术要求响应程度
对项目技术要求的响应和符合情况- 1.1 技术规格响应
详细描述投标产品技术参数与招标技术要求的符合性同级章节信息(请避免内容重复):
- 1.1.2 技术文件完整性
提供的技术文件是否齐全、规范
当前章节信息:
章节ID: 1.1.1
章节标题: 灯具规格符合性
章节描述: 逐项说明各灯具规格与招标文件要求的匹配情况请根据项目概述信息和上述章节层级关系,生成详细的专业内容,确保与上级章节的内容逻辑相承,同时避免与同级章节内容重复,突出本章节的独特性和技术方案的优势。
就这么简单,生成正文不需要过多的逻辑推理,用最普通的大模型即可实现稳定输出,也几乎不存在生成失败的问题~
浙公网安备 33010602011771号