| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- """正文生成相关提示词。"""
- from typing import Any, Dict, List
- def build_chapter_content_messages(
- chapter: Dict[str, Any],
- parent_chapters: List[Dict[str, Any]] | None = None,
- sibling_chapters: List[Dict[str, Any]] | None = None,
- project_overview: str = "",
- ) -> List[Dict[str, str]]:
- """构建章节正文生成消息。"""
- chapter_id = chapter.get("id", "unknown")
- chapter_title = chapter.get("title", "未命名章节")
- chapter_description = chapter.get("description", "")
- system_prompt = """你是一个专业的标书编写专家,负责为投标文件的技术标部分生成具体内容。
- 要求:
- 1. 内容要专业、准确,与章节标题和描述保持一致。
- 2. 这是技术方案,不是宣传报告,注意朴实无华,不要假大空。
- 3. 语言要正式、规范,符合标书写作要求,但不要使用奇怪的连接词,不要让人觉得内容像是 AI 生成的。
- 4. 内容要详细具体,避免空泛的描述。
- 5. 注意避免与同级章节内容重复,保持内容的独特性和互补性。
- 6. 直接返回章节内容,不生成标题,不要任何额外说明或格式标记。
- """
- messages: list[dict[str, str]] = [{"role": "system", "content": system_prompt}]
- if project_overview.strip():
- messages.append(
- {"role": "user", "content": f"项目概述信息:\n{project_overview}"}
- )
- if parent_chapters:
- parent_lines = ["上级章节信息:"]
- for parent in parent_chapters:
- parent_lines.append(
- f"- {parent.get('id', 'unknown')} {parent.get('title', '未命名章节')}\n {parent.get('description', '')}"
- )
- messages.append({"role": "user", "content": "\n".join(parent_lines)})
- if sibling_chapters:
- sibling_lines = ["同级章节信息(请避免内容重复):"]
- for sibling in sibling_chapters:
- if sibling.get("id") == chapter_id:
- continue
- sibling_lines.append(
- f"- {sibling.get('id', 'unknown')} {sibling.get('title', '未命名章节')}\n {sibling.get('description', '')}"
- )
- if len(sibling_lines) > 1:
- messages.append({"role": "user", "content": "\n".join(sibling_lines)})
- messages.append(
- {
- "role": "user",
- "content": f"""请为以下标书章节生成具体内容:
- 当前章节信息:
- 章节ID: {chapter_id}
- 章节标题: {chapter_title}
- 章节描述: {chapter_description}
- 请根据项目概述信息和上述章节层级关系,生成详细的专业内容,确保与上级章节的内容逻辑相承,同时避免与同级章节内容重复,突出本章节的独特性和技术方案优势。
- 正文中不要重复章节标题。
- 直接返回编写的正文内容,不要输出标题、解释、总结等任何其他内容""",
- }
- )
- return messages
|