简介:《人工智能AI产业链全景图》是一份16页的行业研究文档,面向人工智能从业者、投资者与产业研究人员,帮助读者快速建立对AI产业链的整体认知。文件包内仅含1个docx文档,压缩后大小约1.19MB,结构完整、便于阅读和标注。报告从产业架构图切入,依次拆解基础层的AI芯片、算力基础设施与大数据服务,技术层的算法、语音和视觉技术,以及应用层的安防、医疗、家居和金融等“AI+”场景;同时给出2020年核心产业市场规模超1600亿元、带动相关产业超万亿元的预判,并提及海天瑞声、科大讯飞、虹软科技等代表企业,帮助读者结合具体案例理解各环节价值。目前已有6465人学习下载,可作为人工智能产业链分析、赛道梳理及投资研究的基础资料。
1. 人工智能AI产业链全景图:docx 不是画图,是把链条结构做成可检索文档
在交付产业研究报告、投标方案或技术规划时,“人工智能AI产业链全景图”这个大标题出现频率极高。多数人第一反应是打开作图工具,拉出上游、中游、下游几十个节点和几百条连线,导出一张长图放进PPT。问题在于:图好看但难改,评审会上一旦出现把数据要素挪到上游、新增AI Agent工具链这种调整,整张图的重绘成本就跑不掉;并且最终落地的交付格式通常就是Word文件,不是脑图工程文件。我习惯直接把全景图做成docx:多级标题承担层级结构,表格承担节点属性,段落承担趋势判断,编号承担交叉引用。第一次成稿的速度未必比画图快,但后续每次修订都是改数据而不是重画盘子。内容面向产业研究员、方案架构师和AI产品经理,讲从建模到用脚本生成、持续更新docx的完整做法。
2. 人工智能AI产业链全景图的建模:三层切片与节点属性
做产业链全景图docx,第一步不是打开编辑器,而是先定义结构。只有把“AI产业链”从一句口号切成一棵能被Word大纲识别的标题树,后续生成脚本才能顺畅。
2.1 上游算力、中游大模型、下游AI应用开发:先定切层
最常见的划分方式是上游、中游、下游三层,这一分层天然适合作为docx的3个一级章节。上游是基础设施,包含AI芯片、GPU服务器、智算中心、数据中心运维、数据采集、数据标注、向量数据库,以及现在被频繁提及的AI Infra层。凡是“不直接面向业务使用方、但为训练与推理提供供给能力”的环节,都归到上游。
中游以AI大模型与工具链为主,包括基础大模型、行业大模型、训练微调框架、推理引擎、模型评估与安全治理,以及近一年在交付项目里出现频率很高的AI Agent框架。AI Agent本身不是模型,但它消耗模型,又为下游应用提供带记忆、带规划的工具壳,放在中游工具链比放在下游应用更符合依赖关系。
下游是AI应用开发与场景交付,如办公助手、智能客服、医疗、金融、教育垂直方案,以及AI视频、AI短剧这类AIGC生产工具。切层的判断标准只有一条:这个环节被谁消费。被模型训练消费的算力和数据在上游;被应用调度消费的模型和Agent框架在中游;直接交给终端业务使用的在下游。
2.2 节点定义:名称、环节、输入、交付件
层定完之后,每一层内部要拆节点。产业链图的基本单位不是公司,而是可采购或可交付的对象,比如AI芯片、训练数据集、模型评估服务。把单位定成交付对象,文档时效性会更长,某个厂商改名或退出,只换名称不动结构。我常用的节点字段如下:
| 字段 | 说明 | 示例取值 |
|---|---|---|
| 节点编号 | 供正文引用和后续更新定位 | N2-U-012 |
| 节点名称 | 可采购或可交付的对象 | 大模型推理服务 |
| 所属环节 | 上游、中游、下游 | 中游 |
| 主要输入 | 该节点运行所依赖的资源 | 模型权重、推理算力 |
| 交付形态 | 对外提供产品和服务的方式 | API、私有化本地部署 |
| 依赖节点 | 上游依赖的其他节点编号 | N1-C-008 |
字段数量宜少不宜多。超过六个,维护的人就会想着把字段写成附录而不是正文结构;少于三个,又表达不清依赖和交付形态。这里最容易被忽略的是节点编号:在PPT里编号可有可无,在docx里,正文一句话要提到多个节点,一套稳定编号才能保证跨章节引用可以搜索、可以跳转。
2.3 依赖关系在docx里的两种表达
在docx里做链路图,不意味着必须画箭头。节点少于15个时,直接放依赖列表,读起来比看图更快:
N2-U-012 大模型推理服务 上游依赖:N1-C-008 推理算力,N1-D-003 模型权重 交付对象:N3-A-041 智能客服应用这组文本用等宽字体放进正文,既保留产业链“图”的观感,又方便在Word里全文搜索。节点超过15个时,改用表格表达,每一行都带“依赖节点”字段,并在各层小结处写一段本层主要依赖关系。两条路都避免在Word里手工画线。
真正用于概览的完整全景图可以另外用graphviz生成静态图片插入,但图片只负责概览,细节永远以文字和表格为准。这样选的原因很直接:Word长文档的维护瓶颈不在输入,而在查找差异,文本可以diff,图片永远不能diff。
2.4 内容块映射:从建模结构到docx大纲
建模的最后一件事,是把产业模型映射成Word内容块:
- 一级标题对应“上游、中游、下游”三个分层;
- 二级标题对应各层子环节,如AI芯片与算力、数据要素、AI大模型、AI Agent工具链、行业应用;
- 每个二级标题下的正文,是该子环节的趋势判断或风险提示;
- 每个二级标题后跟一张节点清单表格,覆盖该环节的主要可交付对象。
标题级别控制在三级以内,Word导航窗格才会清晰。全链条结构在这些标题里能一眼看出来:谁是主干、谁是新出现分支、哪一层节点数量异常膨胀。用户最终在Word里看到的,往往就是一级章标题、二级节标题和每节末尾的表格,这一段编排决定了全景图分层到底站不站得住。
3. 用Python生成人工智能AI产业链全景图docx的核心模板
结构定好之后,剩下的问题就是怎么稳定地把结构写进docx。这里用Python和python-docx。
3.1 选型:python-docx 与手动排版的取舍
从零做产业链全景docx有三条路:手工在Word或WPS里排版;用对话式AI生成文本再粘贴;用脚本生成框架再手工润色。对结构稳定、内容长期迭代的文档,我一般直接选python-docx做框架,理由很简单:表格、标题层级、编号、目录域都能用代码控制,全文级别的一致性不会因为修改次数增加而崩坏。脚本交付后,后续改节点只是改数据文件。手工排版更适合成稿后的局部润色,不适合包办结构性修订。
3.2 最小骨架脚本:页面、标题与目录域
先跑通一个能产出有效docx的最小脚本,后续内容都基于这个文件追加:
from docx import Document from docx.shared import Pt, Cm from docx.oxml.ns import qn doc = Document() # 页面设置:A4,页边距 2.5cm sec = doc.sections[0] sec.page_width = Cm(21) sec.page_height = Cm(29.7) sec.left_margin = Cm(2.5) sec.right_margin = Cm(2.5) # 正文字体:西文 Times New Roman,中文宋体 style = doc.styles['Normal'] style.font.name = 'Times New Roman' style.font.size = Pt(12) style._element.rPr.rFonts.set(qn('w:eastAsia'), '宋体') # 顶层标题 doc.add_heading('人工智能AI产业链全景图(修订版)', level=0) # 插入目录域:Word 打开后按 F9 刷新 p = doc.add_paragraph() run = p.add_run() fld_begin = run._r.get_or_add_fldChar() fld_begin.set(qn('w:fldCharType'), 'begin') run2 = p.add_run() instr = run2._r.get_or_add_instrText() instr.set(qn('xml:space'), 'preserve') instr.text = 'TOC \\o "1-3" \\h \\z \\u' run3 = p.add_run() fld_sep = run3._r.get_or_add_fldChar() fld_sep.set(qn('w:fldCharType'), 'separate') p.add_run('(请在Word中全选后按F9更新时间)') run4 = p.add_run() fld_end = run4._r.get_or_add_fldChar() fld_end.set(qn('w:fldCharType'), 'end') doc.save('ai_industry_panorama.docx')这段代码做的事情可以拆成三块。页面设置把节宽度改成A4,并把左右上边距设为2.5cm,保证后续表格宽度可以按16cm反推列宽,而不是按默认Letter纸张算。字体部分同时设置西文字体和eastAsia中文映射,只改font.name会在Word里出现西文生效、中文不变的奇怪状态。目录域通过底层XML写入TOC字段,指令\o "1-3"表示收录大纲级别1到3的标题,\u开启超链接索引,\z控制页号;python-docx本身不渲染目录内容,必须由Word或WPS在打开后刷新计算。如果生成的docx打开发现目录空白,按F9刷新不是补充操作,而是必需的步骤。
提示:python-docx 写入的目录是域占位,不是已经排好的文字目录;任何自动目录都必须由 Office 软件打开后重新计算。
3.3 从节点数据文件渲染表格
节点数据放JSON里,字段顺序和上面建模保持一致:
{ "layers": [ { "name": "上游", "note": "为训练与推理提供算力和数据供给。", "nodes": [ {"id": "N1-C-008", "name": "AI芯片", "input": "晶圆代工", "delivery": "算力资源", "depends": ""}, {"id": "N1-D-003", "name": "训练数据集", "input": "原始语料", "delivery": "清洗后数据集", "depends": ""} ] } ] }配套渲染函数:
def render_node_table(doc, nodes): table = doc.add_table(rows=1, cols=5) table.style = 'Light Grid Accent 1' headers = ['节点编号', '节点名称', '主要输入', '交付形态', '依赖节点'] for i, name in enumerate(headers): table.rows[0].cells[i].text = name for node in nodes: row = table.add_row().cells row[0].text = node['id'] row[1].text = node['name'] row[2].text = node['input'] row[3].text = node['delivery'] row[4].text = node.get('depends', '') return table这段渲染逻辑不复杂,但有两个参数值得注意。table.style = 'Light Grid Accent 1'指定Word内置表格样式,决定表格是否自带边框;如果换到无边框样式,打印出来会看不清表格线。rows=1表示先建表头行,add_row()每次按当前总列数补齐单元格,所以表头定义多少列,后面循环写入时下标就不会越界。依赖字段可以直接填逗号分隔的编号串,例如N1-C-008,N1-D-003,不要在单元格里塞换行,搜索和筛选都会麻烦。
3.4 按层循环追加标题与表格
顺着一份JSON,把整份正文串起来:
import json with open('ai_chain.json', encoding='utf-8') as f: data = json.load(f) for layer in data['layers']: doc.add_heading(layer['name'], level=1) doc.add_paragraph(layer['note']) render_node_table(doc, layer['nodes']) doc.add_page_break()每个大循环做三件事:写一级标题、写层说明、渲染节点表格,然后分页。文档结构上,上游、中游、下游各自独立成章,目录展开后可以直接跳到具体环节。这里要注意add_page_break插在每层结尾,不是开头,否则第一页会先出现一个空行再进入层标题,成品文档会多出一张白纸。
到这里,基础脚本已经能产出一份含封面标题、目录域、三层节点表格的docx,剩余的问题集中在排版细节和兼容性上。
4. 产业链全景图docx的排版参数与兼容性坑点
脚本跑通只完成一半。真正常见的翻车现场是:表格跑版、中文变成方块字、目录刷新后页码对不上。这一章把这些参数讲透。
4.1 中文字体设置:只改 font.name 不够
python-docx里写style.font.name = '黑体',只更改w:rFonts的ascii和hAnsi属性。对中文字符,Word实际查找的是w:eastAsia属性。如果构造样式时只设置了font.name,文档在Windows上可能显示默认宋体,换到macOS又变成苹方,字体完全失控。正确写法是:
from docx.oxml.ns import qn style.font.name = '黑体' style._element.rPr.rFonts.set(qn('w:eastAsia'), '黑体')前提是style._element.rPr不为空,python-docx内置的Normal样式已经创建好rPr,所以可以直接写。这句话不是偏门写法,而是所有中文本地化docx都要补的一步。为了避免标题和正文字体来回切换,常见做法是把字体配置封装成一个公用函数,标题统一用黑体或思源黑体,正文统一用宋体或仿宋。
4.2 列宽、合并单元格与重复表头的参数设置
表格没有指定列宽时,Word会按内容自适应。产业链表格里“依赖节点”内容长短不一,一旦长内容把某一列撑开,表格就会超出页边界。手动控列宽的套路是列宽和单元格宽度都要写:
from docx.shared import Cm table.autofit = False widths = [Cm(2.5), Cm(3.5), Cm(3), Cm(3.5), Cm(3.5)] for col, w in zip(table.columns, widths): col.width = w for row in table.rows: for cell, w in zip(row.cells, widths): cell.width = wautofit=False关闭Word的自动列宽,列宽才可控。每个单元格重复赋值的原因在于,Word表格中tblGrid描述列网格,tcPr描述单个单元格宽度,两者不一致时Word通常认单元格的tcPr。全部写一遍比只设置一端更稳。
表头跨页是另一个高频问题。一个环节下节点超过20个会自动分页,第二页默认不显示表头,阅读时还要翻回去。给表头行加重复属性:
from docx.oxml import OxmlElement from docx.oxml.ns import qn def repeat_header(row): trPr = row._tr.get_or_add_trPr() el = OxmlElement('w:tblHeader') el.set(qn('w:val'), 'true') trPr.append(el)这里直接对Word表格行属性注入一行XML标记:tblHeader表示该行在每一页开头重复。上游层节点多、备注文字长,重复表头可以让分页后的表格保持可读,打印核对也能省不少时间。
单元格合并也经常用到,比如表头的“所属环节”跨两列,或者把层名作为纵向合并单元格放在表格首列。python-docx中直接调用:
merged = table.cell(1, 0).merge(table.cell(2, 0)) merged.text = '算力与数据'merge方法横向纵向通用,传入相邻单元格即可。合并之后再写文本,因为原来两个单元格的内容会被清空,所以流程是先合并后填内容。
注意:合并单元格前先确认两个单元格没有被重复写入内容,否则被合并的部分会静默丢数据。
4.3 Word与WPS打开docx的差异与修复思路
产业链全景图docx经常要在两套办公软件间流转。脚本生成的docx理论上兼容,实际会遇到三类差异。
第一是目录域更新方式不同。Word里全选后按F9;WPS里需要在目录区域右键选择“更新目录”,菜单路径随版本略有差异。差异不影响文件本身,但第一次换环境时一定要确认对方用的是哪个软件。
第二是字体渲染差异。WPS对部分中文字体会回退处理,比如思源黑体在没有安装字体的机器上会退回默认宋体。对外交付时,我会把正文字体固定成宋体、标题固定成黑体,这两种字体在Windows系办公环境里存在率最高。
第三是文件关联混乱。有时电脑上出现“WPS不能默认新建docx”,实际是docx被其它阅读器或者旧版Office抢占了文件关联。常见做法是重新选择打开方式并勾选“始终使用此应用”,或者在系统默认应用设置里调整。这一层问题不是脚本能解决的,交付文档时要提醒对方先确认打开文件的是哪个软件,很多格式跑版最后查下来都是打开软件不对。
4.4 插入全链图时的图片尺寸参数
如果还需要一张PNG格式的全链总览图,注意尺寸:
doc.add_picture('panorama.png', width=Cm(16))16cm是A4纸在2.5cm边距下的正文宽度。图片宽度超过16.5cm,右边缘就会溢出页面。图片后面建议加题注,写成“图1-1 人工智能AI产业链全景总览”,正文里才能写“见图1-1”。图片不要和表格强拼在同一页,放不下的图应与上一章表格分页,保证导航窗格的标题结构不被图片撑乱。
5. 数据驱动维护产业链全景图docx的实用技巧
5.1 把产业链节点改到JSON里,不改docx原文
维护全景图的核心不是打开Word,而是编辑JSON。每个节点在数据文件里就是一行记录,更新只动对应字段即可。这带来两个实际好处:一是可以进git版本管理,能看出哪个节点在什么时间点被谁改过;二是可以配合脚本做批量校验,检查节点编号是否重复、依赖节点是否存在,这些检查在手工排版里几乎不可能做。
5.2 跑完脚本后的关键校验参数
每次生成完,用三个维度验证就能拦住大部分问题:
- 打开导航窗格,应只出现上游、中游、下游以及少量二级子环节标题;标题级别超过3级就是拆得过细,需要回数据文件合并节点。
- 全选后按F9刷新目录,对照目录页码和实际页码是否一致;不一致通常是表格或图片被分页挤过,需要调整分页符位置。
- 转成PDF预览检查表格线,若表格宽过页边距,回4.2节缩小列宽参数,重新生成。
这三步能覆盖90%的交付事故,剩下的都是文字内容问题。
5.3 用AI编程提示词直接生成维护脚本
维护脚本不一定要全部手敲。可以把这个提示词给AI编程助手:基于python-docx,读取ai_chain.json生成docx,一级标题对应layers数组中的name,每个节点生成一行表格记录,列顺序为节点编号、节点名称、主要输入、交付形态、依赖节点,并设置中文字体为宋体。生成后再套上最小骨架脚本验证一遍。这里要专门提醒AI补上qn('w:eastAsia'),很多生成结果默认只设置font.name,中文环境直接踩字体坑。
5.4 文档标题与版本号控制
最后,在JSON顶层加一个version字段,生成时读出来写进封面标题下方。比如“版本V2.3,更新于2025年某月”。这样每次修订都能对上交付版本,不会出现好几份内容不同的“产业链全景图docx”但文件名完全相同的混乱。每次只需要改JSON和版本号,脚本会输出一份新的、包含完整目录结构的三层产业链全景图docx,直接可以用于汇报和交付。
本文还有配套的精品资源,点击获取