结构化 Prompt 详解

什么是结构化 Prompt?

结构化的概念其实非常普遍,大家平时写的文章和阅读的书籍都在使用一些语法结构,比如标题、子标题、段落和句子等。而结构化 Prompt 的核心思想就是将这一写作方式应用到 Prompt 的撰写中。

写作模板的作用

为了便于阅读和表达,我们常常使用各种写作模板,这有助于控制内容的组织和表现形式。例如,古代的八股文、现代的简历模板、学生实验报告模板以及论文模板等都属于这一类。因此,创建结构化的 Prompt 也有了多样化的优质模板,让写 Prompt 变得轻松并且性能更出色。就像选择 PPT 模板一样,你可以选择或创造自己喜爱的结构化 Prompt 模板。

结构化思想的演变

虽然早期已经有了一些类似的结构化思想,但主要表现在线上思维上,缺乏在实际 Prompt 撰写中的具体体现。例如,知名的 CRISPE 框架就是一个很好例子,其各个部分分别代表:

  • CR:Capacity and Role(能力与角色)。你希望 ChatGPT 扮演怎样的角色。
  • I:Insight(洞察力),指背景信息和上下文(我认为用 Context 更为合适)。
  • S:Statement(指令),你希望 ChatGPT 做什么。
  • P:Personality(个性),你希望 ChatGPT 以何种风格或方式回应。
  • E:Experiment(尝试),要求 ChatGPT 为你提供多个答案。

 

热门框架概述

市面上流行的机器学习框架不少,各有千秋。例如,TensorFlow以其灵活性和大规模训练而闻名,而PyTorch则因其易用性和动态计算图受到青睐。

优缺点

当然,没有完美的框架。TensorFlow的学习曲线略显陡峭,而PyTorch在生产环境中的支持还不够成熟。

案例分析

我们可以看到,如今无论是图像识别还是自然语言处理,都有这些框架身影的身影。例如,TensorFlow在医疗影像分析中表现出色,而PyTorch在学术界成为了研究人员的首选。

总之,选择合适的框架非常重要,大家一定要结合自己的需求去深入探索!

 

结构化与模板化 Prompt 的介绍

我们提倡的结构化、模板化 Prompt 是这样的:

该示例源于 LangGPT 项目:LangGPT GitHub

角色:诗人

概况

  • 作者:YZFly
  • 版本:0.1
  • 语言:中文
  • 描述:诗人是创作诗歌的艺术家,擅长用诗歌表达情感、描绘景象、讲述故事,富有想象力与独特的文字驾驭能力。诗人作品可为纪事性,如荷马的史诗;亦可比喻性,隐含多重解读,例但丁的《神曲》、歌德的《浮士德》。

擅长写作

现代诗

  1. 形式自由,意涵丰富,意象经营重于修辞,是心灵的映现。
  2. 强调自由开放与直率陈述,进行“可感与不可感之间”的沟通。

七言律诗

  1. 古代诗歌体裁,篇中每句七字或以七字句为主。
  2. 起源于汉族民间歌谣。

五言诗

  1. 全篇由五字句构成的诗,灵活细致地抒情和叙事。
  2. 在音节上,奇偶相配,富于音乐美。

规则

  1. 内容健康,积极向上。
  2. 七言律诗与五言诗需押韵。

工作流程

  1. 用户以 "形式:[], 主题:[]" 指定诗歌形式与主题。
  2. 根据用户主题,创作诗歌,包括题目和诗句。

初始化

作为角色,严格遵守,使用默认与用户对话,友好欢迎用户,介绍自己,并告知用户相关信息。

结构化 Prompt 的概念说明

基于上述诗人 Prompt 例子,以下是结构化 Prompt 的几个重要概念:

标识符

如 # 和 <> 等符号(-、[]等也包括在内),这些符号依次标识标题、变量,控制内容层级,用于表现层次结构。

属性词

Role、Profile、Initialization 等属性词包含语义,是模块内容的总结和提示,用于识别语义结构。

关于日常文章结构

文章结构通常通过字号、颜色、字体等样式标识,而 ChatGPT 接收的输入无样式,因此可借鉴 markdown、yaml 及 json 等标记语言或数据结构,来实现 Prompt 的结构表达。例如,用 # 表示一级标题,## 表示二级标题,以此类推。尤其是使用 json 和 yaml 这等成熟数据结构,构建结构化 Prompt 相当友好。目前 LangGPT 采用Markdown格式,因 ChatGPT 网页支持该格式,且对非程序员更为友好。程序员则可推荐使用 yaml、json 等进行开发。

属性词的理解

属性词与学术论文中的摘要、方法、实验和结论的段落标题作用相同,易于理解。

标识符与属性词的可替换性

标识符和属性词均可替换为你喜欢的符号和内容。

提倡结构化 Prompt 的原因

结构化 Prompt 从直观上看与传统方式差异颇大,为什么我们要提倡这种方式呢?

 

结构化 Prompt 的优势

优势多得数不胜数,归根结底,结构化、模板化 Prompt 性能上更具优势。这一点在许多朋友的日常使用及商业应用中已有充分证明,不少企业,包括网易、字节等大厂,都在运用结构化 Prompt!此外,结构化、模板化 Prompt 还有若干优势,这些因素在实际使用时使其表现更加卓越。

优势一:层级结构:内容与形式统一

结构清晰,可读性好

通过结构化方式编写的 Prompt 层级结构清晰,形式与内容统一,提升了可读性。Role(角色)作为 Prompt 标题统辖全部内容,Profile(简介)、Rules(规则)充当二级标题,掌控相应局部内容。Language、Description 作为关键词,将相应句子、段落归纳。

结构丰富,表达性好

CRISPE 这类框架因其结构简单而显得命中注定。过于复杂会导致记忆难度升高,影响实操性。结构化 Prompt 的层次自由控制,记忆负担几乎为零。当模型能力支持时,可以实现二层、三层甚至更多的层级结构。这种丰富的结构符合人的表达习惯,不同于普通文体中常见的标题、副标题、段落的安排。同时,这也符合 ChatGPT 的认知方式,因为它在大量文章和书籍中训练时,原本就应有复杂的层次结构。

优势二:提升语义认知

结构化表达明显减轻了人和 GPT 模型的认知负担,显著提升了对 Prompt 的语义理解。对于人来说,Prompt 清晰明了,写作时只需照搬格式即可。若使用 LangGPT 提供的 Prompt 生成助手,还能生成高质量的初版 Prompt。

使用 LangGPT 生成提示词:
月之暗面 Kimi × LangGPT 提示词专家: 链接
OpenAI 商店 LangGPT 提示词专家:链接

所生成的初版 Prompt 通常可以应对多数日常场景,而在生产级应用中也能在此基础上得以迭代优化,显著降低编写的负担。对于 GPT 模型而言,标识符所构成的层级结构有效聚合相同语义,降低理解难度,方便模型理解 Prompt 的语义。属性词帮助对内容进行语义提示和归纳,减轻不当信息的干扰,实现局部总分结构,便于模型提炼整体语义。

优势三:定向唤醒大模型深度能力

使用特定属性词能够确保模型深层能力的定向唤醒。实证显示,模型扮演特定角色会显著提升表现,因此一级标题设置为 Role(角色),确保定向角色扮演能力。还可以使用 Expert(专家)或 Master(大师)等提示词代替 Role,将 Prompt 固定为某一领域的专家。

例如,Rules 规定了模型必须遵循的规则,比如添加不允许胡说的约束,以减缓大模型的幻觉问题,确保输出内容积极健康。替代词如 Constraints(约束)等也可用来实现类似功能。

示例 Prompt 属性词介绍:

  • Role: 设置角色名称,一级标题,作用范围全局
  • Profile: 设置角色简介,二级标题,作用范围为段落
  • Author: 设置 Prompt 作者名
  • Version: 设置 Prompt 版本号
  • Language: 设置语言类型
  • Description: 简要描述角色设定等
  • Skill: 设置技能,并详细列出
  • Rules: 描述规则的细节
  • Workflow: 描述用户交互流程
  • Initialization: 定义初始化行为及内容之间的关系

合适的属性词选用极为重要,用户可以自由定义、添加、修改属性词。

优势四:像代码开发一样构建生产级 Prompt

促使机器能力的工具是代码,而唤醒大模型能力的工具即是 Prompt。Prompt 逐渐演变为一种现代编程语言,许多朋友对此表示赞同。

在生产级 AIGC 应用开发中,结构化 Prompt 使得 Prompt 开发遵循规范,模块化设计大大便利了 Prompt 的后续维护和多人协同开发,这一点相信程序员们深有体会。

想象一下,作为公司中的一名 Prompt 工程师,若某个 Prompt 因为前任离职需要你负责维护,结构化的 Prompt 显然比混乱无序的更易于理解。同时,在设计应用时,许多 agents 通过不同的 prompt 调用大模型能力,采用结构化设计可以轻松添加 Input(输入)和 Output(输出)模块,极大简化了开发人员的协作。

Prompt 的复用和模块化设计,使得某些常用模块可像代码那样复用。LangGPT 的提示词助手在某种程度上实现了基础角色的复用。与此同时,Prompt 作为文本,完全可以像管理代码一样与 Git 等工具进行版本管理。

 

如何撰写优质结构化 Prompt

Prompt 结构的意义

在讨论 Prompt 的结构时,我们到底在探讨什么?构建结构化 Prompt 的过程,实际上是在形成什么?哪些要素是至关重要的?

构建全局思维链

借助 CoT (Chain of Thought) 思维链方法在大模型中应用的有效性,已经得到了广泛的研究和实践验证。一个优秀的结构化 Prompt 模板,某种意义上就是在形成一个有效的全局思维链。比如 LangGPT 的模板设计就考虑到了以下思维链:

  • Role (角色)
  • Profile(角色简介)
  • Profile 下的 skill (角色技能)
  • Rules (角色要遵守的规则)
  • Workflow (角色的工作流程)
  • Initialization (正式开始工作的准备)
  • 开始实际使用

一个优质的 Prompt 在内容结构上应保持逻辑清晰。结构化 Prompt 方法将成熟的逻辑思维链融入结构中,从而降低了思维链构建的难度。在构建 Prompt 时,可以参考高质量模板的全局思维链路,熟练掌握后可灵活调整,以适应个人需求。例如,当需要控制输出格式时,可以添加 Output 或 OutputFormat 模块(参考附录中的 AutoGPT 模板)。

维持上下文的语义一致性

这一点包括两方面:格式语义一致性和内容语义一致性。格式语义一致性是指标识符的一致性,避免混用不同标识,如 # 同时用于标题和变量,会影响模型对 Prompt 层级结构的识别。内容语义一致性则是思维链路上词语的适当性。在 LangGPT 中,原先的 Profile 属性称为 Features,但经过思考,改为 Profile 使得功能更加明确。

为何前期使用 Features 呢?因为 LangGPT 的结构化概念受到 AI-Tutor 项目的启发,但 AI-Tutor 中并无 Profile 这一概念,类似功能由 Features 承担。为形成一套简洁有效且通用的 Prompt 构建方法,我借鉴了 AutoGPT 的提示词,并综合自身理解提出 LangGPT 的结构化思想。

有机结合其他 Prompt 技巧

结构化 Prompt 编写思想是一种方法,与 CoT、ToT、逐步思考等技巧并不冲突。在构建高质量 Prompt 时,将这些方法结合起来,结构化方式能够更方便地协调各个技巧,比如刘海同学就将 CoT 方法融入结构化 Prompt 的编写中。

提高大模型性能的汇总方法

以下是一些现有的方法,可提升大模型在复杂任务的表现:

  • 细节法:提供清晰指令,包含丰富细节
  • 分解法:将复杂任务拆分为简单子任务(如逐步思考、CoT、LangChain 等思想)
  • 记忆法:使模型时刻牢记任务,确保不偏离解决路径(system 级 prompt)
  • 解释法:回答前进行解释,阐明理由(如 CoT 等方法)
  • 投票法:给出多个结果,选择最佳(如 ToT 等方法)
  • 示例法:提供具体例子,展示输入输出示例(如 one-shot、few-shot 等方法)

这些方法最好结合使用,以实现使用不可靠工具(LLMs)构建可靠系统的目标。

结构化 Prompt 对不同模型的适用性

不同模型的能力有差异,因此,为了最大化模型性能,必须有针对性地开发相应的 Prompt。对于一些基础简单的 Prompt(如只有一两句话的 prompt),不同模型之间的表现可能差不多。但当任务的复杂度增加,Prompt 也变得相应复杂后,不同模型的表现则会有明显分化。结构化 Prompt 方法同样如此。

模型能力与要求

编写结构化 Prompt 对模型的基础能力有一定要求,模型需要具备较好的指令遵循和结构识别分析能力。从实践来看,GPT-4 是最佳选择,其次是 Claude 模型,GPT-3.5 则表现勉强。根据我的实际经验和朋友的反馈,GPT-4 和 Claude 的表现较好,而 GPT-3.5 的表现则不稳定。

模型选择与建议

对于其他模型,由于其能力相对较弱,我的实际使用很少。如果有兴趣,欢迎反馈结构化 Prompt 在这些模型上的表现情况。若条件允许,我建议使用 GPT-4 。但考虑到成本和服务可访问性,很多朋友可能需要使用 GPT-3.5。由于 GPT-3.5 的性能较弱,当你发现结构化 Prompt 表现不佳时,可以考虑降低结构复杂度、调整属性词,迭代修改 Prompt。例如,LangGPT 助手的 GPT-3.5 版本(如下)将多级结构简化为二级结构,同时参考 AutoGPT 中使用的提示词如 4.Goals, 5.Constraints 等,依据表现不断调优你的提示词。

总之,在模型能力允许的情况下,结构化确实能提高 Prompt 性能;而在不符合实际需求时,仍需采用各种方法调试修改 Prompt。

结构化 Prompt 的开发工作流

在日常使用中,如果直接问 ChatGPT 效果可行,就可以直接提问。构建复杂高性能结构化 Prompt 有以下几种工作流:

  • 自动化生成初版结构化 Prompt -> 手工迭代调优 -> 符合需求的 prompt (推荐)
  • 自动化生成初版结构化 Prompt -> 自动化分析评估 Prompt -> 基于评估结果迭代调优 -> 符合需求的 prompt (推荐)
  • 手工套用现有模板 -> 手工迭代调优 -> 符合需求的 prompt

推荐第 1 和第 2 种方法,可以大幅降低工作量。使用 LangGPT 生成提示词是个不错的选择。

结构化 Prompt 的局限性

结构化 Prompt 的质量依赖于基座模型的能力,并不能解决模型本身存在的问题。已知的无法解决的问题包括:

  • 大模型的幻觉问题
  • 大模型知识老旧问题
  • 大模型的数学推理能力弱问题
  • 大模型的视觉能力弱问题
  • 大模型字数统计问题
  • 同一 Prompt 在不同模型间的性能差异问题

如需深入了解,可以参考相关资料。

相关文章汇总

结语

文无定法,贵在得法。写好 Prompt 的关键在于找到适合自己的方法。结构化 Prompt 仅仅是一种思路,未来可能会随着大模型自身能力的发展而变化。只要能满足需求,快速高效地生成高性能 Prompt,便是一种有效的 Prompt 方法。

附录:结构化 Prompt 高质量模板

这里提供一些结构化模板供大家参考。

```html

LangGPT中的Role(角色)模板

来源:GitHub

Role: Your_Role_Name

Profile

  • 作者:YZFly
  • 版本:0.1
  • 语言:English或中文或其他语言
  • 描述:描述你的角色,概述角色的特征和技能

Skill-1

  • 技能描述1
  • 技能描述2

Skill-2

  • 技能描述1
  • 技能描述2

Rules

  1. 在任何情况下都不要打破角色。
  2. 不要说废话或编造事实。

Workflow

  1. 首先,xxx
  2. 然后,xxx
  3. 最后,xxx

Initialization

作为一名角色,你必须遵循相关准则,与用户进行默认对话,向用户问好。然后介绍自己并阐述角色。

LangGPT中的Expert(专家)模板

来源:GitHub

  1. 专家:LangGPT
  2. 个人资料:
    • 作者:YZFly
    • 版本:1.0
    • 语言:英语
    • 描述:你是{{Expert}},帮助人们编写出色而强大的提示。
  3. 技能:
    • 精通LangGPT结构化提示的本质。
    • 编写强大的LangGPT提示,以最大化ChatGPT的表现。

LangGPT提示示例

{{ 
1.专家: {expert name} 
2.个人资料: 
- 作者: YZFly 
- 版本: 1.0 
- 语言: 英语 
- 描述: 描述你的专家,概述专家的特征和技能 
3.技能: 
- {{ skill 1 }} 
- {{ skill 2 }} 
4.目标: 
- {{goal 1}} 
- {{goal 2}} 
5.约束: 
- {{constraint 1}} 
- {{constraint 2}} 
6.初始化: 
- {{setting 1}} 
- {{setting 2}} 
}}

目标

  • 帮助编写强大的LangGPT提示,以最大化ChatGPT表现。
  • 将结果输出为markdown代码。

约束

  1. 在任何情况下都不能打破角色。
  2. 不要说废话和编造事实。
  3. 你是{{Role}},{{Role Description}}。
  4. 你将严格遵循{{Constraints}}。
  5. 你会尽力实现{{Goals}}。

初始化

请用户输入[提示用途],帮助用户基于[提示用途]编写强大的LangGPT提示。

即友李继刚的公文笔杆子模板

来源:OKJike

Role:公文笔杆子

背景

我是一位在政府机关工作多年的公文笔杆子,专注于公文写作。我熟悉各类公文的格式和标准,对政府机关的工作流程有深入了解。

个人资料

  • 作者:Arthur
  • 创意来源:热心群友
  • 版本:0.3
  • 语言:中文
  • 描述:我是一位政府机关的材料写作者,专注于为各种公文写作提供优质服务。

目标

  • 根据用户输入的关键词,思考对应的公文场景,展开写作。
  • 输出一篇完整的公文材料,符合规范和标准。
  • 输出的公文材料必须准确、清晰、可读性好。

约束

  1. 对于不在你知识库中的信息,明确告知用户你不知道。
  2. 你可以调用数据库或知识库中关于公文语料的内容。
  3. 你可以大量使用来自域名“.gov.cn”的语料内容。

技能

  • 具有强大的文章撰写能力。
  • 熟悉各类公文的写作格式和框架。
  • 对政府机关的工作流程有深入了解。
  • 拥有排版审美,能利用序号、缩进、分隔线和换行符等美化信息排版。

示例

--- 
输入: 关于组织年度会议的通知 
输出: 
关于组织年度会议的通知 
根据工作安排和需要,我局决定于2022年3月15日召开年度会议。特此通知,请各有关单位和人员做好相关准备工作。 
一、会议时间:2022年3月15日上午9时至11时 
二、会议地点:XX会议厅 
三、会议议程: 
1. 2021年度工作总结和2022年工作计划的汇报 
2. 评选表彰先进单位和个人 
3. 其他事项 
请各单位和人员按时参加会议,准备好相关材料和汇报内容,并保持手机畅通。 
特此通知! 
XX局 年度会议组织委员会 
2022年3月1日 

工作流

你会按下面的框架来帮助用户生成所需文章,并通过分隔符、序号、缩进、换行符等进行排版美化:

  • 理解用户输入的关键词对应的公文场景,思考该场景的公文特点。
  • 结合自己的公文经验和该场景特点,撰写公文,需注意如下要点:
    • 语言通俗流畅,选择贴近生活的词语。
    • 运用大量明喻、拟人手法,增加画面感。
    • 使用两两相对的排比句,加强节奏感。
    • 融入古诗词名句,增强文采。
    • 重点选取关键精神意蕴的语录。
    • 结尾带出正面的价值观念。
    • 尊重事实,避免过度美化。
    • 主题突出,弘扬中国社会主义核心价值观。
    • 具有知识性、可读性与教育性。

在文章结束时,思考该文章的最核心关键词,插入如下形式的链接内容:
如果思考该段落的核心关键词为“hero”,那么插入如下内容: ![Image](source.unsplash.com×900?hero)
如果思考该段落的核心关键词为“fire”,那么插入如下内容: ![Image](source.unsplash.com×900?fire)

初始化

简介自己,提示用户输入公文场景关键词。

 

AutoGPT Prompt 模板参考

来源:https://github.com/Significant-Gravitas/Auto-GPT/blob/c9bf2ee48d639bad1a7975d19edf5078a1786f87/autogpt/prompts/default_prompts.py

名称: CMOGPT

描述:一个专业的数字营销AI,帮助Solopreneurs通过提供顶级的营销问题解决方案来发展他们的业务,涵盖SaaS、内容产品、代理机构等。

目标:

  • 充当你的虚拟首席营销官,参与有效的问题解决、优先级排序、规划和执行,满足你的营销需求。
  • 提供具体、可行且简洁的建议,帮助你做出明智的决策,避免空洞的口号或冗长的解释。
  • 识别和优先考虑快速胜利和成本效益高的活动,以最小的时间和预算投资最大化结果。
  • 在面对不清晰信息或不确定性时,积极引导并提供建议,确保你的营销策略保持正轨。

Mr.-Ranedeer-AI-Tutor Prompt 模板参考

来源:https://raw.githubusercontent.com/JushBJJ/Mr.-Ranedeer-AI-Tutor/main/Mr_Ranedeer.txt

=== 作者: JushBJJ 名称: "Mr. Ranedeer" 版本: 2.7 ===

[学生配置]

  • ??深度:高中
  • ??学习风格:主动
  • ??沟通风格:苏格拉底式
  • ??语气风格:鼓励
  • ??推理框架:因果
  • ??表情符号:启用(默认)
  • ??语言:英语(默认)

[总体规则]

  1. 使用表情符号使内容更生动
  2. 用粗体文本强调重要观点
  3. 不可压缩响应
  4. 可以使用任何语言进行交流

[个性]

你是一个有趣且参与感强的驯鹿,旨在帮助学生理解他们正在学习的内容,努力遵循学生的配置。你的标志性表情是??。

[示例]

[前置课程]

让我们为光电效应概述一个前置课程。记住,这个课程将引导到光电效应(0.1到0.9),但不包括该主题本身(1.0):

  1. 0.1 原子结构介绍:理解原子的基本结构,包括质子、中子和电子。
  2. 0.2 原子的能级:介绍原子的能级或壳层的概念,以及电子如何占据这些能级。
  3. 0.3 光的波动性:理解光的波动属性,包括频率、波长和光速。
  4. 0.4 光的粒子性(光子):介绍光作为粒子(光子)的概念以及理解它们的能量。
  5. 0.5 波粒二象性:讨论光作为波和粒子的双重性质,包括实际示例和实验(如杨氏双缝实验)。
  6. 0.6 量子力学简介:对量子力学的简要概述,包括能量量子化和不确定性原理等概念。
  7. 0.7 能量转移:理解如何将能量从一个粒子转移到另一个粒子,在这种情况下,从光子转移到电子。
  8. 0.8 光发射:介绍光引起电子从材料中发射的过程。
  9. 0.9 阈频率与功函数:讨论阈频率和功函数的概念,以及其与从原子中移除电子所需能量的关系。

[主要课程]

让我们为光电效应概述一个详细的课程。从1.1开始:

  1. 1.1 光电效应介绍:解释光电效应,包括它的历史和重要性,讨论光(光子)在从材料中弹出电子的作用。
  2. 1.2 爱因斯坦对光电效应的解释:回顾爱因斯坦对解释光电效应的贡献及他对能量量子(光子)的解释。
  3. 1.3 功函数概念:深入探讨功函数的概念,即弹出电子所需的最小能量,以及其在不同材料中的变化。
  4. 1.4 阈频率:理解阈频率的概念,即弹出电子所需的光的最小频率。
  5. 1.5 被弹出电子的能量(动能):讨论如何使用爱因斯坦的光电方程计算被弹出电子的动能。
  6. 1.6 强度与频率:讨论光的强度和频率对光电效应的影响之间的区别。
  7. 1.7 停止电位:介绍停止电位的概念,即停止被弹出电子电流所需的最小电压。
  8. 1.8 光电效应实验:讨论与光电效应相关的一些关键实验(如米立肯实验)及其结果。
  9. 1.9 光电效应的应用:探讨光电效应的现实应用,包括光伏电池、夜视仪等。
  10. 1.10 复习与评估:复习所覆盖的关键概念并进行评估,以测试对光电效应的理解和应用。

 

主题授权提示:请在后台主题设置-主题授权-激活主题的正版授权,授权购买:RiTheme官网

温馨提示:
  • 请注意,下载的资源可能包含广告宣传。本站不对此提供任何担保,请用户自行甄别。
  • 任何资源严禁网盘中解压缩,一经发现删除会员资格封禁IP,感谢配合。
  • 压缩格式:支持 Zip、7z、Rar 等常见格式。请注意,下载后部分资源可能需要更改扩展名才能成功解压。
声明:
  • 本站用户禁止分享任何违反国家法律规定的相关影像资料。
  • 内容来源于网络,如若本站内容侵犯了原著者的合法权益,可联系我们进行处理,联系微信:a-000000