当前位置:   article > 正文

怎么写大模型的提示词(prompts):任何人都需要掌握的查询技能_大模型提示词

大模型提示词

在大模型时代,人与智能设备的交互变得更加广泛和深入,覆盖了生活常识、查询资料、解决专业问题、心理咨询和专业辅导等众多领域。大型模型如GPT能够满足广泛的需求,但要想充分利用这些模型的能力,掌握写好提示词的技巧是关键。能够有效地编写提示词的人能够更好地从大型模型中获取所需的知识和信息,从而实现其潜力的最大化发挥。—— AI Dreams, APlayBoy Teams!

         在这个AI技术飞速发展的新时代,提示词工程成为了连接人类与智能设备的关键桥梁。本文详细介绍了提示词工程的概念、重要性以及在提升人工智能模型交互中的核心作用。通过分析GPT的提示词生成方法、探索ICIO和CRISPE等主要框架,以及讨论OpenAI的官方策略,本文旨在为读者提供一个全面的了解和应用提示词工程的指南。同时,文章还指出了提示词工程的局限性,并提供了资源汇总,助力读者在新时代中不落后,更有效地利用AI技术。

引言

         提示词工程是一种技术,旨在优化和提升人工智能模型(如GPT)的交互和响应质量。这种工程的核心在于精心设计和结构化提示词,以确保模型能够准确理解用户的意图和需求。通过这种方法,用户可以更有效地利用AI模型的能力,从而获得更准确、更相关的信息和解决方案。提示词工程的重要性在于,它帮助桥接用户和AI之间的沟通差距,使得AI交互更加直观和高效。

         每个人都有自己的特点、特长和知识的不足之处。为了获得更适合自己的答案,需要精心设计提示词来引导人工智能模型。这种优化方式有助于缩小用户意图与模型理解之间的差距,确保AI提供的回应更贴近用户的实际需求。通过提示工程,可以更精确地传达用户意图,使AI模型提供更相关、更准确的信息,从而提高对话系统的整体效能和用户满意度。

1 GPT生成提示词

         在这里,我分享我常用的两种使用GPT生成提示词的方式。

  • 第一种:先让GPT自行构建一套原则,接着依据这些原则来生成提示词。这一过程从定义和创建原则开始,然后根据这些原则精心制定出具体的提示词。

  • 第二种方法则更为直接:我会明确阐述我的具体需求,并让GPT基于这些需求来形成相应的提示词。

         为了更清晰地说明这两种方法的应用,我将分别给出示例,并同时展示了由GPT生成的相关教程。

1.1 两种生成方法

         这里说下我习惯使用的两个方式分别是1.先让gpt自己生成原则,然后根据原则生成提示词,2.直接指明你的需求,然后让GPT根据你的需求生成提示词,下面我对两种方式分别举例, 示例如下:

         

先让gpt自己生成原则,然后根据原则生成提示词

    根据问题直接让GPT生成提示词

1.2 GPT生成教程

提问:

以“怎么能快速提高java程序员的薪资”举例,根据上面的原则生成一份“怎么写出完美提示词”的教程。

GPT回复:

  1. 要创建一份“怎么写出完美提示词”的教程,以“怎么能快速提高Java程序员的薪资”为例,可以遵循以下步骤:
  2. 写作完美提示词的教程:以“怎么快速提高Java程序员的薪资”为例:
  3. 明确目标:首先确定你的具体目标。本例中的目标是了解如何快速提高作为Java程序员的薪资。
  4. 提供细节:包含你需要的关键细节。例如,你可能想知道特定的技能提升、行业认证、或者职业发展策略。
  5. 避免歧义:使用清晰、直接的语言,减少歧义。明确你需要的是实用建议而非通用信息。
  6. 合适的长度:保持简洁但确保包含所有关键信息。
  7. 示例提示词:
  8. “我是一名Java程序员,想要了解怎样可以在短时间内显著提高我的薪资。请提供具体的策略和建议,包括哪些高需求的Java技能可以学习,是否有推荐的行业认证,以及如何在职场中展示我的技能以获得更高的薪酬。我对于职业发展和薪资谈判也感兴趣。”
  9. 使用教程的步骤:
  10. 理解需求:在编写提示词前,明确你想从GPT获取的具体信息或建议。
  11. 组织结构:使用清晰的结构来组织你的问题,使其逻辑性强且容易理解。
  12. 审视和调整:完成后,检查你的提示词,确保它既具体又明确。必要时进行调整。
  13. 实践和反馈:使用提示词与GPT交互,并根据得到的回答调整你的提示词以获得更准确的信息。
  14. 结论:
  15. 通过遵循这个教程,你可以有效地编写出能够清晰传达你需求的GPT提示词,无论是求职建议、技能提升还是薪酬提升。记住,有效的沟通是关键,不断的实践和调整会让你更加熟练地使用GPT。

2 两个常用框架

ICIO Prompt 框架

        框架概述: 这个框架是由Elavis Saravia总结的,他认为一个有效的prompt应该包含以下四个部分:

Elvis Saravia在机器学习和自然语言处理领域内的工作十分出色。他对于教育和研究材料的贡献,特别是在机器学习和人工智能技术方面,显得尤为重要。Saravia不仅分享了大量的机器学习课程笔记,还提供了学习机器学习所需数学知识的资源,对于AI社区的教育和研究贡献突出,对推动该领域的发展产生了显著影响。

  1. Instruction(必须):指令:即您希望模型执行的具体任务。

  2. Context(选填):背景信息:或称为上下文信息,这有助于引导模型做出更精准的反应。

  3. Input Data(选填):输入数据:告知模型需要处理的具体数据。

  4. Output Indicator(选填):输出指示器:指明我们期望模型输出的类型或格式。

应用示例:

假设您要构建一个prompt来询问关于如何提高编程技能。以下是一个应用实例:

  • Instruction(指令):您希望模型提供关于如何提高编程技能的具体建议。

  • Context(背景信息):您可能已经具备基础的编程知识,但希望进一步提高。

  • Input Data(输入数据):您可以提供您目前掌握的编程语言和所面临的挑战。

  • Output Indicator(输出指示器):您期望得到一个清晰的学习路径或资源列表。

        Prompt:我已经掌握了基础的编程知识,特别是在Java和Python上,现在我想提高我的技能。面临的主要挑战是算法和数据结构。请提供一个清晰的学习路径和推荐资源,帮助我在这些领域提升水平。

CRISPE框架

框架概述:

        Matt Nigh的CRISPE框架是一个用于编写复杂内容prompt的工具。CRISPE是一个首字母缩写词,代表以下几个方面:

Matt Nigh是GitHub的一名工程业务经理,擅长构建、领导和成熟软件开发团队。他在创建有意义的组织影响方面表现出色。Nigh创造了CRISPE框架,这是一种用于创建ChatGPT提示词的工具,旨在提高提示词的清晰度和结构性。这个框架特别适合于编写复杂的提示词模板。通过他的框架和其他贡献,Nigh在人工智能和软件开发领域产生了显著影响。

  • CR(能力与角色):定义你希望ChatGPT扮演的角色和其能力范围。

  • I(洞察):提供背景信息和上下文以指导ChatGPT。

  • S(陈述):明确指出你希望ChatGPT执行的任务。

  • P(个性):设定ChatGPT回答的风格或方式。

  • E(实验):让ChatGPT提供多种可能的答案选项。

示例应用:

        基于Matt Nigh的CRISPE框架,如果您想要ChatGPT帮您写一篇关于气候变化的文章,最终的提示词可能是这样的:

        作为一个专业研究气候变化的科学家(CR:能力与角色),请基于当前的科学共识和最新的研究数据(I:洞察),撰写一篇详细且科学严谨的报告(S:陈述),内容需涵盖气候变化的原因、影响以及可能的解决方案。请采用客观且权威的写作风格(P:个性),并提供几种不同的结构和论点供选择(E:实验)。

3 OpenAI官方策略

        ChatGPT所掀起的热浪正是OpenAI所引发的。他们不只是点燃了这场火焰,更是带头提出了一连串巧妙的提示词建议。这些建议是有效运用GPT的基础,因此精通这些技巧对于掌握GPT至关重要。为了帮助大家更深入地理解和运用,我不仅将官方网站的建议进行了翻译和汇总,还针对我们的日常生活习惯,将官方示例进行了本地化改编。关于OpenAI的提示工程,我们可以将其归纳为六大核心策略,具体内容如下:

官方链接:https://platform.openai.com/docs/guides/prompt-engineering

3.1 明确的指令

        这些模型无法读懂你的心思。如果输出结果太长,就要求简短的回答。如果输出结果太简单,就要求专家级别的写作。如果你不喜欢现有的格式,就展示你想看到的格式。模型猜测你想要什么的机会越少,你获得所需回答的可能性就越大。

实施技巧:

技巧1:包含详细信息以获得更相关的回答

  • 示例1:我不仅想知道怎样烘焙蛋糕,还要了解如何让它既松软又湿润,就像专业烘焙师做的那样。

  • 示例2:请不只告诉我什么是区块链,还要解释它是如何运作的,以及它为何在金融领域如此重要。

  • 示例3:给我介绍量子计算机,包括它的工作原理,它与传统计算机的主要区别,以及它在未来的潜在应用。

  • 示例4:告诉我如何做一份PPT,不只是普通的,而是让观众目瞪口呆的那种。

技巧2:要求模型采用特定的人格

  • 示例1:以一位老师的身份,给我讲解量子物理的基础知识。

  • 示例2:想象你是一位历史学家,讲述互联网的发展历程。

  • 示例3:作为一位旅行家,描述你在异国他乡的奇妙经历。

  • 示例4:以一个古代智者的身份,给我讲述互联网的起源。

技巧3:使用分隔符明确指出输入的不同部分

  • 示例1:在'---'之前是对电影剧情的分析,之后是对电影特效的评价。

  • 示例2:用'###'将对诗歌的感受和对其文学价值的分析分开。

  • 示例3:‘***’之前是对现代科技的讨论,之后是对其对社会影响的思考。

技巧4:明确完成任务所需的步骤

  • 示例1:第一步,简述全球变暖的原因;第二步,讨论其对生态系统的影响。

  • 示例2:先解释什么是机器学习,然后举例说明它在日常生活中的应用。

  • 示例3:步骤一,列出制作披萨的所有原料;步骤二,详细描述烹饪流程。

  • 示例4:第一步,给我总结今天的新闻头条;第二步,解释为什么这些新闻对我重要。

技巧5:提供示例

  • 示例1:像《老友记》里的钱德那样,用幽默的方式回答。

  • 示例2:给我一个回答,就像是史蒂夫·乔布斯介绍iPhone的那种风格。

  • 示例3:请用《哈利波特》里的邓布利多的语气,给我解释量子物理。

技巧6:指定输出的期望长度

  • 示例1:我需要一段介绍,大约100字,简洁明了。

  • 示例2:写一个故事,长度约为500字,可以是任何主题。

  • 示例3:提供一个观点陈述,确保在45秒的演讲时间内能够表达清楚。

  • 示例4:我需要一个回答,大约和一段朋友圈的文字长度一样。

         清晰地表达你的意图和需求对于获得高质量的模型输出至关重要。确保在查询时提供所有重要的细节和背景信息,这样可以减少模型对你的意图进行猜测的需要。通过使用上述技巧,你可以更有效地指导模型,以获得更准确和相关的回答。

3.2 提供参考文本

        语言模型在回答有关晦涩话题的问题时,尤其是在被要求提供引用和URL时,有可能自信地编造虚假答案。就像考试时的小抄能帮助学生更好地完成考试一样,向模型提供参考文本可以帮助它给出更少虚构的答案。

实施技巧:

技巧1:指示模型使用参考文本回答

  • 示例1:使用下面的三重引号括起来的文章,"""文章""",回答关于《红楼梦》的主要人物和情节。

  • 示例2:根据附带的股市分析报告,解释最近股市波动的原因。股市分析报告:xxx。

  • 示例3:"""文章""",利用这篇关于长城历史的文章,描述长城的建造背景和历史意义。

技巧2:指示模型用参考文本中的引用回答

  • 示例1:在回答关于新冠疫苗的问题时,请引用这篇医学论文中的相关部分。医学论文:xxx

  • 示例2:xxx,使用这篇关于中国传统节日的文章,回答有关春节习俗的问题,并引用文中的段落。

  • 示例3:xxx,根据这份关于中国茶文化的研究,回答有关不同茶叶种类的特点,并引用文章中的信息。

        如果我们能向模型提供与当前查询相关的可信信息,那么我们可以指导模型使用所提供的信息来构建答案。这种方法可以提高答案的准确性和可靠性,尤其是在处理复杂或专业性较强的问题时。通过引用具体的参考文本,可以进一步增强答案的权威性和可信度。

3.3 将复杂任务分解为简单的子任务

        正如在软件工程中将一个复杂的系统分解为一组模块化组件是一个好的实践,向语言模型提交的任务也是如此。复杂任务往往比简单任务有更高的错误率。此外,复杂任务通常可以重新定义为简单任务的工作流程,其中早期任务的输出用于构建后续任务的输入。

实施技巧:

技巧1:使用意图分类来识别用户查询中最相关的指令

  • 示例1:根据用户查询'我如何提高我的普通话水平?',将其分类为'语言学习'类别,并提供相应的学习资源和建议。

  • 示例2:对于'如何在家制作传统的北京烤鸭?'的查询,将其分类为'烹饪',然后提供详细的食谱和烹饪步骤。

  • 示例3:将'我的电脑启动时出现蓝屏'的问题归类于'技术支持',随后提供相应的故障排除指南。

技巧2:对于需要非常长对话的对话应用程序,总结或过滤之前的对话

  • 示例1:对于一整天的顾客咨询记录,提取并总结出关键问题和建议的清单。

  • 示例2:在长时间的产品反馈会话中,提取出最常见的用户反馈和建议,为下一步的产品改进提供依据。

  • 示例3:在长篇法律咨询对话中,总结出关键的法律问题和相关的法律建议。

技巧3:逐片段总结长文档,并递归构建完整总结

  • 示例1:对于一本关于中国历史的长篇书籍,分章节逐个总结,最后将这些总结合并成一份完整的书籍摘要。

  • 示例2:将一份长达数十页的政府政策文件分成多个部分,对每部分进行单独总结,然后将这些总结合并,提供一个全面的政策概览。

  • 示例3:对一系列关于中医药理的文章进行分段总结,然后将这些总结整合,形成对中医药理整体理解的综合报告。

        这种策略的优点在于,通过将复杂的任务分解成一系列简单的步骤,可以降低整体的错误率,提高任务的可管理性。这对于处理那些涉及多个阶段或需要多方面信息的复杂查询尤为有效。通过细化任务,并对每个子任务提供精确的指令,我们可以更有效地利用GPT模型的能力,同时也使得任务的执行更加高效和准确。

3.4 给模型时间“思考”

        就像在数学问题中,我们可能不会立即知道17乘以28的结果,但给予时间可以计算出来一样,模型在尝试立即回答时也容易犯更多的推理错误,而不是花时间去计算答案。在答案之前要求一个“思考链”可以帮助模型更可靠地推理出正确答案。

实施技巧:

技巧1:指导模型在匆忙下结论之前先找出自己的解决方案

  • 示例1:在解答有关中国五千年历史的复杂问题之前,请先分阶段梳理历史线索。

  • 示例2:在对'一带一路'倡议的经济影响进行分析之前,请先详细考察相关的经济数据和政策背景。

技巧2:使用内部独白或一系列查询来隐藏模型的推理过程

  • 示例1:在分析古诗词的意境和语言特色之前,请先逐句解读其含义。

  • 示例2:在预测明年的股市走势之前,请先回顾并总结过去一年的重大财经事件。

技巧3:询问模型是否在之前的尝试中遗漏了什么

  • 示例1:在列出适合春节期间旅游的目的地之后,请检查是否有遗漏的重要景点或考虑因素。

  • 示例2:在分析一部电影的主题和风格之后,请回顾是否有未涉及的重要镜头或细节。

        这种策略的优点在于,通过允许模型有更多的时间来推理和处理信息,可以提高回答的准确性和可靠性。这对于处理复杂或需要深入分析的问题尤为重要。通过细化问题,并鼓励模型逐步推理,我们可以使得GPT模型的应用更加高效和精准。

3.5 使用外部工具

        通过将模型的输出与其他工具的输出结合,可以弥补模型的不足。例如,文本检索系统(有时称为RAG或检索增强生成)可以告诉模型有关相关文档的信息。像OpenAI的代码执行引擎这样的工具可以帮助模型进行数学计算和运行代码。如果某个任务可以通过工具而非语言模型更可靠或高效地完成,那么将其外包出去可以发挥两者的优势。

实施技巧:

技巧1:使用基于嵌入的搜索来实现高效的知识检索

  • 示例1:为了回答有关最新5G技术的问题,使用嵌入搜索来检索最近的相关科技文章,并将其作为模型输入。

  • 示例2:在讨论中医药理时,利用嵌入搜索来查找和添加权威的中医文献摘要。

技巧2:使用代码执行进行更准确的计算或调用外部API

  • 示例1:为了准确计算房屋贷款的利息,编写并运行一个Python脚本来计算。

  • 示例2:为了获取最新的天气预报,指导模型编写并执行调用天气API的代码。

技巧3:给模型提供特定的函数访问权限

  • 示例1:“在处理用户的股票查询时,允许模型访问特定的财经数据API,并生成合适的查询参数。”

  • 示例2:“在解答健康咨询时,让模型能够调用健康知识库的查询函数,以提供更准确的信息。”

        这种策略的优势在于,通过结合语言模型的自然语言处理能力和特定外部工具的专业功能,可以提高整体任务的性能和准确性。这对于处理那些超出单一模型能力范围的复杂任务尤其重要。利用外部工具,我们可以扩展模型的应用场景,提高其在特定领域的实用性和有效性。

3.6 系统化测试更改

        如果能够测量性能改进,提高性能就会更容易。在某些情况下,对提示词的修改在几个孤立的例子上可能取得更好的表现,但在更具代表性的示例集上可能导致整体性能下降。因此,为了确保更改对性能有正面的影响,可能需要定义一个全面的测试套件(也称为“评估”)。 实施技巧:

技巧:根据标准答案评估模型输出

  • 示例1:在回答有关长城历史的问题时,使用模型查询来计算回答中包含的相关事实数量,与标准答案进行比较。模型结果:“xxx”,标准答案:“xxx”。

  • 示例2:在分析古诗文的意义时,比较模型的解释与专家解释的相似度,检查是否存在矛盾或遗漏。模型解释:“xxx”,专家解释:“xxx”。

        有时很难判断一个变化(例如新的指令或新设计)是使系统变得更好还是更差。通过观察少数示例可能会提供一些线索,但在小样本情况下很难区分真正的改进还是随机运气。也许某些改变对某些输入有帮助,但对其他输入的性能有损害,这时可能需要借助评估程序。

评估程序对于优化系统设计很有用。好的评估应该:

  • 代表真实世界的使用情况(或至少具有多样性)

  • 包含许多测试案例,以获得更大的统计力

  • 易于自动化或重复

  • 评估输出可以由计算机、人类或两者的结合来完成。计算机可以使用客观标准(例如,具有单一正确答案的问题)以及一些主观或模糊标准进行自动评估,其中模型输出由其他模型查询进行评估。

其他资源

        为了获得更多灵感和深入了解,您可以访问 OpenAI CookbookOpenAI Cookbook 是一个宝贵的资源库,它提供了丰富的实用信息和工具,可以帮助用户从基础到高级,全面掌握提示词的艺术和科学。无论您是初学者还是有经验的开发者,这些资源都能为您提供宝贵的指导和灵感。 这个资源库包含了示例代码,并提供了链接到第三方资源。

4 Google研究成果

        Google的研究团队探索了一种名为“思维链提示”(Chain-of-Thought Prompting)的方法,该方法通过生成一系列中间推理步骤来显著提高大型语言模型执行复杂推理的能力。下面将介绍这种方法的基本概念、操作步骤,并提供实际应用的示例。

思维链提示简介

         “思维链提示”是一种使语言模型模仿人类解决问题方式的方法。它也是OpenAI的策略中,提供参考文本策略的延伸,通过在模型提示中提供几个思维链的示例,可以引导模型生成连贯的中间推理步骤,从而有效解决复杂问题。Google的研究显示,这种方法在算术、常识和符号推理任务上都能显著提升模型的性能。

为何使用思维链提示?

  1. 问题简化:将复杂问题分解为更易处理的小步骤。

  2. 可解释性:提供可解释的推理路径,帮助理解模型如何得出特定答案。

  3. 广泛适用:适用于多种类型的推理任务。

  4. 易于实现:在大型语言模型中容易实现,只需通过少数样本提示即可。

如何构建思维链提示

  1. 选择合适的模型:选取一个大型的语言模型,如Google的PaLM 540B。

  2. 定义问题:明确需要模型解决的问题类型,比如算术问题、常识推理或符号操作等。

  3. 构造示例:创建几个描述如何逐步解决问题的示例。这些示例将作为模型的输入,引导其生成思维链。

  4. 输入示例:把我们创建的示例输入给大语言模型,让模型知道我们的思考过程和思考方式。

  5. 输入问题:这时我们可以输入我们的问题,体验大模型的的效果了。

示例

数学问题示例

问题:“如果一个篮子里有5个苹果,且你又放入了3个苹果,篮子里现在有多少个苹果?”

思维链示例:

  1. “篮子最初有5个苹果。”

  2. “增加了3个苹果,所以5 + 3。”

  3. “因此,篮子现在有8个苹果。”

常识推理示例

问题:“如果你在早上看到东方天空变红,那么这意味着什么?”

思维链示例:

  1. “东方天空变红常常发生在早上。”

  2. “‘红天早晨,水手警告’,这意味着可能会有坏天气。”

  3. “所以,这可能意味着今天会有不好的天气。”

        通过使用思维链提示,我们把上面的提示输给模型,模型可以知道我们的思考方式,在回答问题的时候也会根据我们的思考方式去回答问题,我们不仅能够提高语言模型处理复杂问题的能力,还能增加其推理过程的透明度和可解释性。这种方法为语言模型的应用开辟了新的可能性,特别是在需要复杂推理和决策的场景中。

5. 提示词资源汇总

Prompt Engineering Guide

         这是由斯坦福大学的本科生Kevin Liu精心整理的。这个网站汇集了众多论文、讲座和资源,被誉为最全面的prompt资料库。它的受欢迎程度极高,仅仅一天内就实现了近1000颗星的增长。这篇「提示工程指南」不仅登上了GitHub Trending,还出现在了Hacker News的热门榜单上。

        此网站包含了与提示工程相关的所有最新论文、学习指南、讲座、参考资料和工具。团队每天都会更新有关提示工程的最新论文,并且每周都会将这些论文的摘要纳入上述指南中。

Awesome ChatGPT Prompts 

        在网站首页(需向下滚动),您便可以浏览来自世界各地机构和个人贡献的各式提示词。接下来展示的是该界面翻译成中文后的样子。您可以方便地搜索、复制并粘贴,以获取所需的提示词。

提示词的局限性

        虽然优化提示词是提升回答质量的有效手段,但它的作用有限,不能超越模型本身的能力和知识范围。在模型能力有限的情况下,即使有最佳的提示词,也只能在模型的能力范围内提升回答质量。 局限性主要表现在以下几个方面:

  1. 模型的智能上限:提示词无法超越模型本身的智能程度。如果模型的知识或理解能力有限,即使优化提示词也无法显著提高回答质量。

  2. 回答的质量范围:优化提示词可以将回答质量从中等水平提升到较好水平,但要实现最高水平的回答,模型本身的质量是决定性因素。

  3. 依赖于模型强度:在没有条件使用更强大模型的情况下,尽管优化提示词是一种有效的手段,但其效果有限,不能完全弥补模型能力的不足。

  4. 问题解决的天花板:模型的智能程度和知识范围设定了回答的天花板,即最高可能达到的质量水平。

未来展望

        在目前阶段,提示词工程的重要性不容小觑。它不仅帮助模型准确把握我们的需求,还考虑到了每个人独特的背景和需求差异,从而为不同的用户生成定制化的答案。

        然而,展望未来,随着大数据的发展和个人隐私数据与大型模型的深度融合,我们可能迎来一个新时代。在这个时代中,大数据对我们的了解可能超越我们自身,模型或许能直接从社交账号或其他个人数据中抽取信息,提供更加个性化的反馈。

这种趋势可能会降低对提示词工程的依赖吗?在这种情况下个人隐私和数据安全会有保障吗?

结束语

        最后,感谢每位朋友的陪伴,如果大家有疑问、见解,欢迎留言、讨论。您的点赞、关注是我持续分享的动力。APlayBoy,期待与您一起在AI的世界里不断成长!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/362170
推荐阅读
相关标签
  

闽ICP备14008679号