标书智能体(三)——生成标书正文代码+提示词

用Python+React打造一个开源的AI写标书智能体~

完整代码已开源

代码很多,文章只放主要代码和提示词,完整代码可以查看开源项目

Github: github.com/yibiaoai/yi...

Gitee: gitee.com/yibiao-ai/y...

今天是第三期,根据生成好的提纲,填充标书内容。

正文生成,并不像上一节讲的提纲生成那么复杂,核心难点只有两个:

  • 标书需求字数太多: 一份标书动辄几万几十万字,直接让AI生成必然行不通。有了上一节生成提纲的经验,我们已经知道答案了,那就是把正文也打碎,让AI按照提纲的叶子节点,逐节生成正文。
  • 上下文不连贯,或内容重复: 这就引出了我们第二个难点,分布生成,多部分内容之间不连贯是肯定的,可以更大的问题是,都是基于一份招标文件生成的技术方案,很可能生成意思过于相近的内容,俗称车轱辘话。 下面,咱们就来逐项分析一下,如何解决上述难点。

一、获取生成内容所需信息

从前端拆分提纲,提纲的每一个叶子节点都发起一个生成请求,需要传递以下参数

python 复制代码
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: 本章节信息,不多说,这是必须的
json 复制代码
{
  "id": "3.2.2",
  "title": "技术实力",
  "description": "技术研发能力和创新情况"
}
  • parent_chapters: 上级章节列表,为了保持连贯性
  • sibling_chapters: 同级章节列表,为了生成内容不重复
  • project_overview: 项目概述,这是核心,让AI知道自己要写的标书的核心需求

二、核心提示词

SystemPrompt

markdown 复制代码
你是一个专业的标书编写专家,负责为投标文件的技术标部分生成具体内容。

要求:
1. 内容要专业、准确,与章节标题和描述保持一致
2. 这是技术方案,不是宣传报告,注意朴实无华,不要假大空
3. 语言要正式、规范,符合标书写作要求,但不要使用奇怪的连接词,不要让人觉得内容像是AI生成的
4. 内容要详细具体,避免空泛的描述
5. 注意避免与同级章节内容重复,保持内容的独特性和互补性
6. 直接返回章节内容,不生成标题,不要任何额外说明或格式标记

UserPrompt 这个就需要拼接一下了

markdown 复制代码
项目概述信息:
{project_overview}

请为以下标书章节生成具体内容:

{context_info if context_info else ''}

当前章节信息:
章节ID: {chapter_id}
章节标题: {chapter_title}
章节描述: {chapter_description}

请根据项目概述信息和上述章节层级关系,生成详细的专业内容,确保与上级章节的内容逻辑相承,同时避免与同级章节内容重复,突出本章节的独特性和技术方案的优势。

context_info是拼接的上级、统计节点信息

python 复制代码
# 构建上下文信息
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 章节标题: 灯具规格符合性 章节描述: 逐项说明各灯具规格与招标文件要求的匹配情况

请根据项目概述信息和上述章节层级关系,生成详细的专业内容,确保与上级章节的内容逻辑相承,同时避免与同级章节内容重复,突出本章节的独特性和技术方案的优势。

就这么简单,生成正文不需要过多的逻辑推理,用最普通的大模型即可实现稳定输出,也几乎不存在生成失败的问题~

完整代码已开源

Github: github.com/yibiaoai/yi...

Gitee: gitee.com/yibiao-ai/y...

相关推荐
aigcapi9 小时前
RAG 系统的黑盒测试:从算法对齐视角解析 GEO 优化的技术指标体系
大数据·人工智能·算法
上进小菜猪10 小时前
基于深度学习的河道垃圾检测系统设计(YOLOv8)
人工智能
上天夭10 小时前
模型训练篇
人工智能·深度学习·机器学习
小徐Chao努力10 小时前
【Langchain4j-Java AI开发】09-Agent智能体工作流
java·开发语言·人工智能
Blossom.11810 小时前
AI编译器实战:从零手写算子融合与自动调度系统
人工智能·python·深度学习·机器学习·flask·transformer·tornado
Coder_Boy_10 小时前
SpringAI与LangChain4j的智能应用-(理论篇2)
人工智能·spring boot·langchain·springai
却道天凉_好个秋10 小时前
OpenCV(四十八):图像查找
人工智能·opencv·计算机视觉
Coder_Boy_10 小时前
SpringAI与LangChain4j的智能应用-(理论篇3)
java·人工智能·spring boot·langchain
GetcharZp11 小时前
工地“火眼金睛”!手把手带你用 YOLO11 实现安全帽佩戴检测
人工智能·计算机视觉
Codebee11 小时前
Ooder A2UI架构白皮书
人工智能·响应式编程