应用场景 #
- 操作文档,比如标书,方案的生成
使用方法 #
大模型连接已抽象化为数据源,请参考基础操作 –> 第一个AI场景
新建python数据源
- 新建数据集,选择类型为:智能体,连接器选择:python 名称"文档生成"
--- 提取需求 ---
base_prompt="""$prompt"""
yield '正在提取需求...<br>'
ds = ds_gpt('smtgpt', f'请基于需求提取对应的信息,输出 json,格式:{{"prompt":"提取到的需求", "input_file":"输入文件,如果没有为空", "output_file":"输出的文件路径,如果没有你想一个 word 文件名","header":"文章标题,如果没有请基于需求提供一个"}},以下是我的需求:{base_prompt}', tool=1)
header = ds.get('header', '通用方案')
input_file = ds.get('input_file', '')
output_file = ds.get('output_file', 'output.docx')
prompt = ds.get('prompt', base_prompt)
yield f'需求提取完成:{str(ds)}<br>'
--- 获取章节提示词 ---
context_content = ds_read(input_file)
p0 = f"""
{prompt}
【参考资料】
请参考这些信息进行规划:
---
{context_content}
---
任务:请规划文档的章节结构,并为每一章生成一个详细的写作提示词(Prompt)。
要求:
1. 提示词要具体。
2. 只输出一个 JSON 格式的二维数组,格式为:[["第一章提示词"], ["第二章提示词"], ...]
3. 重要:提示词中不能出现任何换行符,引号尽量用单引号代替双引号以防冲突。
4. 不要输出任何多余的解释文字。
"""
prompts=ds_gpt('smtgpt', p0, tool=1)
yield f'生成提示词:{str(prompts)}<br>'
--- 按章节生成 ---
markdown_content=''
markdown_content='#'+header +'\n'
for index, chapter_group in enumerate(prompts):
if not chapter_group:
continue
prompt_instruction = chapter_group[0]
current_chap_num = index + 1
yield f"📝 正在处理第 {current_chap_num} 章...<br>"
full_prompt = f"""
整个文档逻辑: {prompts} ,当前正在编写第 {current_chap_num} 章。
章节主题/要求:{prompt_instruction}
要求:
1. 请输出专业的方案内容。
2. **必须使用标准的 Markdown 格式**(包括 ## 标题,**加粗**,- 列表,| 表格等)。
3. 字数控制在 800-1000 字之间。
4. 不要输出章节和标题编号。
"""
response = ds_gpt('smtgpt', full_prompt)
markdown_content = markdown_content + '\n' + response['msg']
yield ds_save_doc(markdown_content,output_file)