合集 - AI开发(46)

1.AI开发-python-langchain框架(1-1入门)01-162.AI开发-python-langchain框架(1-2提示词)01-193.AI开发-python-langchain框架(1-3提示词-角色设定-保留上下文)01-204.AI开发-python-langchain框架(1-4动态少样本提示)01-225.langchain框架(1-5 使用 Few-Shot Prompting 实现多跳推理问答:以历史人物寿命比较为例)01-236.langchain框架(1-6“示例学习”—— 少样本提示(Few-Shot Prompting))01-267.AI开发-python-langchain框架(1-7 提示词-模板中的模板)01-288.AI开发-python-langchain框架(1-8-1 缓存机制——让 AI 应用“记住”高频问题)01-309.AI开发-python-langchain框架(1-8-2 缓存机制——验证缓存的效果)02-0210.AI开发-python-langchain框架(1-9 返回字符串列表-格式解析器)02-0311.AI开发-python-langchain框架(1-10 返回日期-格式解析器)02-0412.AI开发-python-langchain框架(1-11 返回枚举-格式解析器)02-0513.AI开发-python-langchain框架(1-12 返回json-格式解析器)02-0614.AI开发-python-langchain框架(1-13 返回xml-格式解析器)02-0915.AI开发-python-milvus向量数据库(2-1 -环境搭建)02-1016.AI开发-python-milvus向量数据库(2-2 -向量是什么?连接milvus数据库)02-1117.AI开发-python-milvus向量数据库(2-3 -milvus角色)02-1218.AI开发-python-milvus向量数据库(2-4 -milvus-集合<表>)02-1319.AI开发-python-milvus向量数据库(2-5 -milvus-极简模式创建表<collection>)02-1520.AI开发-python-milvus向量数据库(2-6 -milvus-collection查看、加载、释放)02-1721.AI开发-python-milvus向量数据库(2-7 -milvus-精确使用模式创建collection)02-1822.AI开发-python-milvus向量数据库(2-8 -milvus-数据插入collection)02-2023.AI开发-python-milvus向量数据库(2-9 -milvus-数据更新)02-2124.AI开发-python-milvus向量数据库(2-10 -milvus-数据删除)02-2225.AI开发-python-milvus向量数据库(2-11 -milvus-创建索引)02-2526.AI开发-python-milvus向量数据库(2-12 -milvus-向量检索)02-2527.AI开发-python-milvus向量数据库(2-13 -milvus-过滤搜索)02-2628.AI开发-python-milvus向量数据库(2-14 -milvus-向量范围搜索)02-2729.AI开发-python-milvus向量数据库(2-15 -milvus-分组检索)03-0430.AI开发-python-milvus向量数据库(2-16 -milvus-三种查询<get-query-迭代器>)03-0531.AI开发-python-milvus向量数据库(2-17 -milvus-全文检索)03-0632.AI开发-python-milvus向量数据库(2-18 -milvus-文本匹配)03-0633.AI开发-python-langchain框架(3-1-向量化 )03-0934.AI开发-python-langchain框架(3-2-文本文档加载器 )03-1035.AI开发-python-langchain框架(3-3-常用的几种文本分割 )03-1136.AI开发-python-langchain框架(3-4-pdf文件load()加载 )03-1237.AI开发-python-langchain框架(3-5-pdf文件load_and_split()加载 )03-1338.AI开发-python-langchain框架(3-6-pdf文件分页加载 )03-1639.AI开发-python-langchain框架(3-7-提取pdf中的图片 )03-1740.AI开发-python-langchain框架(3-8-EasyOCR图片文字提取 )03-1841.AI开发-python-langchain框架(3-9-word文档加载 )03-1942.AI开发-python-langchain框架(3-10-excle文档加载 )03-2343.AI开发-python-langchain框架(3-11-langchain与milvus的结合 )03-2444.AI开发-python-langchain框架(3-12-AI 直接生成并执行 Python 代码 )03-2545.AI开发-python-langchain框架(3-13-串行流程 )03-26

46.AI开发-python-langchain框架(3-14-并行流程 )03-27

收起

基于上节的内容如何将流程改为如下:

图片

LangChain 并行执行实战:三步高效生成高质量长文

在大模型应用开发中,我们经常需要同时生成多个关联内容,再基于这些内容完成最终的复杂任务。传统的串行执行方式效率低下,而 LangChain 提供的并行执行能力,能完美解决这个问题,大幅提升内容生成的效率与逻辑完整性。

今天就和大家分享一个基于 LangChain 构建的智能文章生成方案,核心亮点就是并行生成文章大纲 + 写作注意事项,再自动整合生成完整长文,全程自动化、高效率,适配各类专业文章创作场景。

一、核心需求拆解

我们的目标是生成一篇专业、结构严谨的长文,创作过程需要三个关键步骤:

  1. 围绕指定主题,生成层级清晰、逻辑完整的文章大纲;
  2. 针对主题,提炼专业的写作注意事项(包含内容维度、行文风格、逻辑要点);
  3. 结合大纲和注意事项,生成内容详实、字数达标的完整文章。

如果用串行方式,先生成大纲、再生成注意事项,会浪费大量等待时间,而并行执行可以让这两个步骤同时运行,直接缩短一半以上的中间处理耗时。

二、核心技术亮点:LangChain 并行执行实现

整个方案的核心,就是借助 LangChain 的 RunnableParallel 实现任务并行处理,这也是区别于普通链式调用的关键:

1. 拆分独立子链

首先将「生成大纲」和「生成注意事项」拆分为两个独立的子处理链,两个子链各自绑定专属的提示词模板、大模型和输出解析器,互不干扰,保证生成内容的专业性。

2. 并行执行核心逻辑

通过 RunnableParallel 构建并行执行单元,同时触发两个子链的运行:

  • 一边调用模型生成结构化文章大纲;
  • 另一边同步调用模型提炼写作注意事项;
  • 同时保留原始主题参数,无缝传递给后续流程。

这种方式无需等待前一个任务完成,两个任务同步处理,极大提升中间环节的执行效率,这也是大模型批量 / 关联任务处理的最优实践。

3. 数据透传与结果整合

并行执行完成后,系统会自动整合三个关键数据:主题、大纲、写作注意事项,并将这些数据精准填充到最终的文章生成模板中,再调用大模型完成全文创作。

整个流程无需人工干预,从并行生成中间内容,到整合生成最终文章,形成全自动的创作闭环,既保证了文章的结构严谨性,又严格遵循写作规范,输出内容质量远超单一提示词生成的结果。

三、方案优势总结

  1. 执行效率翻倍:并行生成大纲和注意事项,告别串行等待,大幅缩短处理时间;
  2. 逻辑高度解耦:三个环节独立设计,可单独调整提示词、模型参数,维护更灵活;
  3. 内容质量可控:先定框架、再定规范、最后生成内容,避免文章逻辑混乱、内容跑偏;
  4. 扩展性极强:可轻松新增并行任务(如生成关键词、参考文献),适配更多创作场景;
  5. 适配私有部署:支持对接本地 / 私有部署的大模型接口,兼顾数据安全与使用灵活性。

四、适用场景

这个基于 LangChain 并行执行的方案,不仅适用于经济趋势、行业分析等专业长文创作,还能无缝适配:

  • 行业报告自动撰写
  • 学术论文框架搭建与正文生成
  • 新媒体爆款文案结构化创作
  • 企业宣传稿、白皮书自动化生成

五、写在最后

LangChain 的并行执行能力,是大模型应用开发中提升效率、优化流程的核心利器。通过将复杂任务拆解为并行子任务,再整合输出最终结果,既能发挥大模型的生成能力,又能通过工程化手段保证效率与质量。

这种开发思路,也适用于各类大模型任务场景,是每个大模型应用开发者都值得掌握的实用技巧。后续还可以在此基础上,增加内容校验、分段生成、格式优化等功能,让智能创作更强大、更贴合实际需求。

代码实现:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

from langchain_openai import ChatOpenAI

from langchain_core.prompts import ChatPromptTemplate

from langchain_core.runnables import RunnableParallel, RunnablePassthrough

from langchain_core.output_parsers import StrOutputParser

from operator import itemgetter

# 模型接入配置

DEEPSEEK_API_KEY = "123"  # 替换为实际的 API Key

llm = ChatOpenAI(

    api_key=DEEPSEEK_API_KEY,

    base_url="http://qwen3-32b-awq.model.xjipc.com/openai/v1",

    model="qwen3-32b-awq",

    temperature=0.3,

    max_tokens=10240,

)

# 1. 生成大纲的提示词模板

outlinePromptTemplate = '''主题:{theme}

请为这个主题撰写一篇专业、结构清晰的文章大纲,要求分章节、有层级,逻辑完整。'''

outlinePrompt = ChatPromptTemplate.from_template(outlinePromptTemplate)

# 2. 生成注意事项的提示词模板

tipsPromptTemplate = '''主题:{theme}

撰写该主题文章时,需要重点关注哪些内容、数据维度、行文风格和逻辑要点?请列出具体的注意事项。'''

tipsPrompt = ChatPromptTemplate.from_template(tipsPromptTemplate)

# 3. 生成完整文章的提示词模板

articlePromptTemplate = '''主题:{theme}

请严格按照以下大纲和注意事项,撰写一篇内容详实、逻辑严谨的完整文章:

### 文章大纲

{outline}

### 写作注意事项

{tips}

要求:内容丰富、语言流畅、符合主题定位,字数不少于1500字。'''

articlePrompt = ChatPromptTemplate.from_template(articlePromptTemplate)

# 输出解析器

strParser = StrOutputParser()

# 构建子链:生成大纲和注意事项

outlineChain = outlinePrompt | llm | strParser

tipsChain = tipsPrompt | llm | strParser

# 并行执行:同时生成大纲和注意事项(保留主题用于后续拼接)

map_chain = RunnableParallel(

    outline=outlineChain,

    tips=tipsChain,

    theme=itemgetter("theme")  # 把主题透传下去

)

# 构建完整的文章生成链:先并行生成大纲/注意事项,再拼接生成文章

article_chain = (

        map_chain  # 第一步:并行生成大纲、注意事项、透传主题

        | articlePrompt  # 第二步:将第一步的结果填充到文章提示词模板

        | llm  # 第三步:调用大模型生成文章

        | strParser  # 第四步:解析输出为字符串

)

# 执行生成

# 文章主题

query = "2024年中国经济走向与运行趋势"

# 方式1:只获取大纲和注意事项(原需求的中间结果)

intermediate_result = map_chain.invoke({"theme": query})

print("=== 生成的大纲和注意事项 ===")

print(f"大纲:\n{intermediate_result['outline']}\n")

print(f"注意事项:\n{intermediate_result['tips']}\n")

# 方式2:直接生成完整文章(核心需求)

print("=== 生成的完整文章 ===")

final_article = article_chain.invoke({"theme": query})

print(final_article)

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐