Azure Machine Learning - 提示工程高级技术

news2024/9/25 7:25:19

本指南将指导你提示设计和提示工程方面的一些高级技术。

关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人

file

Azure中提示工程API说明

虽然提示工程的原则可以在许多不同的模型类型间归纳,但某些模型需要专用的提示结构。 对于 Azure OpenAI GPT 模型,核心推荐CHAT API,提示工程可以在其中发挥作用:

CHAT API 支持 GPT-35-Turbo 和 GPT-4 模型。 这些模型旨在接收存储在字典数组中的[类似聊天的特定脚本]格式的输入。

系统消息

系统消息包含在提示的开头,用于为模型提供上下文、说明或与用例相关的其他信息。 可以使用系统消息来描述助手的个性,定义模型应回答和不应回答的内容,以及定义模型响应的格式。

下面的示例显示了示例系统消息和生成的模型响应:

系统消息用户Assistant
你是一个 AI 助手,可帮助人们查找信息并以押韵的方式作出回应。 如果用户问了你不知道答案的问题,就说出来。我是约翰·杜,你能说出关于我的什么?亲爱的约翰,我很抱歉地说, 我今天没有关于你的信息。 我只是一个拥有知识的 AI, 但是没有你的输入,我无法做解释。 因此,请多告诉我你在寻找什么, 我会尽我最大的努力给你一个独特的答案。

系统消息的其他一些示例包括:

  • “助手是由 OpenAI 训练的大型语言模型。”
  • “助手是一种智能聊天机器人,旨在帮助用户回答有关 Azure OpenAI 服务的技术问题。 仅使用以下上下文回答问题,如果不确定答案,可以说“我不知道”。
  • “助手是一种智能聊天机器人,旨在帮助用户回答其税务相关问题。”
  • “你是一名助手,旨在从文本中提取实体。 用户将粘贴文本字符串,你将使用从文本中提取的实体作为 JSON 对象进行响应。 下面是输出格式的示例:
{  
   "name": "",
   "company": "",
   "phone_number": ""
}

需要了解的一个重要细节是,即使你在系统消息中指示模型在不确定答案时回答“我不知道”,这并不能保证此请求得到履行。 设计良好的系统消息可以增加产生特定结果的可能性,但仍可能会生成不正确的响应,可能会与系统消息中的指令的意图相矛盾。

少样本学习

使语言模型适应新任务的一个常见方法是使用少样本学习。 在少样本学习中,需要在提示中提供一组训练示例,以便为模型提供额外的上下文。

使用聊天补全 API 时,用户和助手之间的一系列消息(以[新的提示格式]编写)可以作为进行少样本学习的示例。 这些例子可以用来引导模型以某种方式相应,模仿特定的行为,并为常见的问题提供种子答案。

非聊天场景

虽然聊天补全 API 已优化为处理多回合对话,但它也可用于非聊天场景。 例如,对于情绪分析场景,可以使用以下提示:

系统消息用户Assistant
你是一名助手,旨在分析语音数据中的情绪。 用户将粘贴一串文本,你将对讲者的响应进行评估。 给出 1-10 的评分(10 为最高)。 解释给出此评分的原因。嗨,感谢你致电 Contoso 药店,我今天和谁通话?我了解你的挫败感,玛丽。你能告诉我你想要实现什么目标吗?好的,很高兴帮你看一下,请稍等片刻。我在这里看到你曾经使用过普通立普妥是吗?好的,那么我看到你的医生在 2021 年停止开这些药物的处方了。实际上是这样吗?好的,让我为你检查一下。因为有时候系统中会出现漏洞,并没有被报告出来。请稍等片刻,让我看看这里是否有记录。所以根据最新提供给我们的医生办公室记录显示,在 2012 年至 2021 年期间,你的医生曾经给你开过这些药物处方。好的,在最新记录中显示,现在医生已经更换了不同种类的药物–二甲双胍。请问我们需要帮忙准备并发放 500 毫克二甲双胍处方给你吗?不客气玛丽,请告诉我们今天还有什么可以帮到你的。情绪评分:8
此文本中的讲者在解决客户关注的问题时似乎很有礼貌、有帮助和耐心。 他们花时间检查信息,提供明确的解释,并提供协助。 但是,评分不是 10,因为对话的某些部分仍有不确定性的暗示,这可能无法向客户传达完全的信心。

从明确的说明开始

提示中显示信息的顺序很重要。 这是因为 GPT 风格的模型是以某种方式构建的,这定义了它们处理输入的方式。 我们的研究表明,在共享其他上下文信息或示例之前,在提示开始时告诉模型你希望它执行的任务有助于生成更高质量的输出。

系统消息用户Assistant
你是一名 AI 助手,可帮助用户查找信息。你的任务是验证“几个消息来源提到了可能会发生另一次大爆发”这一说法是否有以下一组片段中的具体引文的支持。 — 内容片段 [1] 专家称西雅图发生特大地震的几率为14% 西雅图 - 美国地质调查局估计,在未来 50 年里,西雅图发生 9 级卡斯卡迪亚地震的可能性为 14%。 “不幸的是我们无法…[2] 地震专家对西雅图的“真正的大地震”进行了最新展望 “我们说,在未来 50 年里,大约有 14% 的机会再次发生大约 9 级的地震,”华盛顿大学的一位地球物理学家说。 — 几个消息来源提到了可能会发生另一次大爆发”,此陈述是由内容片段直接暗示或明确表述的吗?否,此陈述不由内容片段直接暗示或明确表述。 这些片段提到在未来 50 年内,西雅图有可能发生“特大地震”和“卡斯卡迪亚 9 级地震”,但没有提到另一次大型爆发的可能性。

在末尾重复指令

模型可能容易受到近因偏差的影响,在此上下文中,这意味着提示结束时的信息对输出的影响可能比提示开头的信息更大。 因此,值得尝试的是,在提示结束时重复指令,并评估对生成的响应的影响。

引导输出

这是指在提示的末尾包含几个字词或短语,以获取遵循所需形式的模型响应。 例如,使用 “Here’s a bulleted list of key points:\n- ” 等提示有助于确保输出的格式为项目符号列表。

系统消息用户Assistant
你是一名 AI 助手,可帮助用户查找信息。 尽可能少地回答。约翰·史密斯与露西·史密斯结婚了。 他们有五个孩子,他在 Microsoft 担任软件工程师。 我应该执行哪些搜索查询来检查此事实? ## 一个可能的搜索查询是:“约翰·史密斯与露西·史密斯结婚五个孩子软件工程师 Microsoft”

在上述提示中,文本“一个可能的搜索查询是:”引导模型生成单个输出。 如果没有此提示,模型将生成多个搜索查询作为输出。

添加明确的语法

对提示使用明确的语法(包括标点符号、标题和节标记)有助于传达意向,并且通常使输出更易于分析。

在下面的示例中,分隔符(本例中为 ---)已添加到不同的信息源或步骤之间。 这允许使用 --- 作为生成的停止条件。 此外,节标题或特殊变量以大写形式显示,用于区分。

系统消息用户Assistant
你是一名 AI 助手,可帮助用户查找信息。你将阅读段落,然后向搜索引擎发出查询,以便对段落进行事实检查。 另请解释查询。 — 段落 约翰·史密斯与露西·史密斯结婚了。 他们有五个孩子,他在 Microsoft 担任软工程师。 我应该执行哪些搜索查询来检查此事实? — QUERIES1.“约翰·史密斯 Microsoft”- 检查约翰·史密斯是否确实在 Microsoft 工作。 2.“约翰·史密斯露西·史密斯”–检查约翰·史密斯是否与露西·史密斯结婚了。 3.“约翰·史密斯孩子”- 检查约翰·史密斯是否有 5 个孩子。
如果不确定要使用哪种语法,请考虑使用 Markdown 或 XML。 这些模型已通过 XML 和 Markdown 的大量 Web 内容进行了训练,这可能会提供更好的结果。

分解任务

如果任务分解为较小的步骤,大型语言模型(LLM)的性能通常会更好。 例如,在前面引用的搜索查询提示中,可以调整提示的结构,以便首先指示模型提取相关事实,然后指示生成可用于验证这些事实的搜索查询。

系统消息用户Assistant
你是一名 AI 助手,可帮助用户查找信息。你将阅读段落,然后向搜索引擎发出查询,以便对段落进行事实检查。 — 段落 约翰·史密斯与露西·史密斯结婚了。 他们有五个孩子,他在 Microsoft 担任软件工程师。 我应执行哪些搜索查询来检查此事实? — 现在,你将提取事实声明,并向其发出检查事实的查询。 发出查询时,请使用函数 SEARCH (“query”)事实声明1.约翰·史密斯与露西·史密斯结婚了 2. 他们有五个孩子 3. 他在 Microsoft 担任软件工程师QUERIES SEARCH(“约翰·史密斯与露西·史密斯结婚了”) SEARCH(“约翰·史密斯家庭规模”) SEARCH(“约翰·史密斯 Microsoft 软件工程师”)

请注意,应使用清晰的语法来区分不同部分并引导输出。 在此简单示例中,将任务从一步分解为两步并不十分引人注目,但当为一篇有许多事实主张的大文本做这件事时,将任务分解就会产生很大的不同。

使用可供性

有时候,我们可以让模型使用可供性,而不是仅依赖其自身的参数来获取信息和答案。 例如,搜索可以作为一种可供性来帮助减轻虚构答案的风险,并获取最新的信息。

使用可供性的一种简单方法是在模型生成可供性调用时停止生成,然后将结果粘贴回提示中。 下面是执行上述 SEARCH 调用后进行跟进调用的示例。 请注意看我们如何将搜索结果粘贴到提示中并替换之前的 SEARCH 调用。

系统消息用户Assistant
你是一名 AI 助手,可帮助用户查找信息。你将阅读段落,提取事实声明,然后使用搜索引擎结果对它们进行事实检查 — 段落 约翰·史密斯与露西·史密斯结婚了。 他们有五个孩子,他在 Microsoft 担任软件工程师。 我应该执行哪些搜索查询来检查此事实? — 事实声明 - 约翰·史密斯与露西·史密斯结婚了 - 约翰和露西有五个孩子 - 约翰在 Microsoft 担任软件工程师 — 下面是为研究上述声明而发出的各种搜索查询: 搜索查询 - 约翰·史密斯与露西·史密斯结婚了 - 约翰·史密斯儿童数量 - 约翰·史密软件工程师 Microsoft — 下面是搜索结果的内容片段: 内容片段: [1] … 约翰·史密斯的婚礼是在 2012 年 9 月 25 日… [2] … John Smith 和他的妻子 Lucy 一起参加了一场聚会 [3]约翰带着他的两个女儿和三个儿子去看了足球比赛 [4] … 在 Microsoft 工作 10 年后,史密斯创立了自己的初创公司 Tailspin Toys [5] 约翰·M 是镇上的铁匠,他娶了菲奥娜。 他们有一个女儿叫露西 — 根据给定的内容片段,事实检查上述每个事实声明:- 约翰·史密斯与露西·史密斯结婚了:已确认。 片段 [1] 和 [2] 都提及了约翰·史密斯的妻子露西。- 约翰和露西有五个孩子:已确认。 片段 [3] 提到约翰由他的两个女儿和三个儿子陪同。- 约翰在 Microsoft 担任软件工程师:部分确认。 片段 [4] 提到约翰在 Microsoft 工作了 10 年,但没有明确说明他目前在那里工作。 可能需要进一步调查才能确认他目前的就业状况。

思维链提示

这是分解任务技术的变体。 在这种方法中,不是将一项任务分割成较小的步骤,而是指示模型响应逐步进行,并提出所有涉及的步骤。 这样做可以减少结果不准确的可能性,并使评估模型响应更容易。

系统消息用户Assistant
你是一名 AI 助手,可帮助用户查找信息。谁是在悉尼举行的奥林匹克运动会中获得最多奖牌(最大奖牌数)的个人运动员? 采取逐步方法回答问题,在分享最终答案之前引用来源并给出推理,格式如下:答案是:<name>步骤 1:确定悉尼奥运会的年份。 悉尼奥运会是在 2000 年举行的。步骤 2:查找在 2000 年悉尼奥运会上获得多枚奖牌的个人运动员名单。据奥运会官方网站称,在 2000 年悉尼奥运会上,有数名运动员获得了多枚奖牌。 一些值得注意的名字包括: •伊恩·索普(澳大利亚)- 3 金 2 银 0 铜 •彼得·范登·霍根班德(荷兰)- 2 金 0 银 2 铜 •莱尼·克雷泽尔堡(美国)- 3 金 0 银 0 铜 ·英格·德·布鲁伊恩(荷兰)- 3 金 1 银 0 铜步骤 3:确定获得最多奖牌的运动员。 回顾了在 2000 年悉尼奥运会上获得多枚奖牌的个人运动员名单后,我们可以看到,获得奖牌最多的运动员是来自澳大利亚的伊恩·索普,他共获得 5 枚奖牌(3 金 2 银)。因此,答案是:伊恩·索普。

指定输出结构

使用提示指定输出结构时,可能会对结果的性质和质量产生重大影响。 有时,系统消息输入“仅写出真实事实”或“不捏造信息”可能不足以缓解问题。 相反,要求模型响应同时包含引文有助于减少错误响应的概率。

如果你指示模型在编写语句时引用源材料,则这些语句更有可能有根据。 请求引文会使模型在每次生成响应时都犯两个错误:第一个错误是捏造的响应,第二个错误是错误的引文。 请注意,引文越接近它支持的文本,模型预测引文所需的距离就越短,这表明内联引文比内容末尾的引文更适合缓解虚假内容的生成。

同样,如果要求模型从段落中提取事实陈述,它可能会提取复合语句,例如“X 正在执行 Y 和 Z”(这可能更难验证)。 可以通过指定输出结构来避免这种情况,如(实体 1、关系、实体 2)。

以下示例演示了引文的使用,并指导模型响应适应定义的结构。

系统消息用户Assistant
你是一名 AI 助手,可帮助用户查找信息列出客户支持专员在以下对话中展示的不同行为。 — 嗨,感谢你致电 Contoso 药店,我今天和谁通话?我了解你的挫败感,玛丽。你能告诉我你想要实现什么目标吗?好的,很高兴帮你看一下,请稍等片刻。我在这里看到你曾经使用过普通立普妥是吗?好的,那么我看到你的医生在 2021 年停止开这些药物的处方了。实际上是这样吗?好的,让我为你检查一下。因为有时候系统中会出现漏洞,并没有被报告出来。请稍等片刻,让我看看这里是否有记录。所以根据最新提供给我们的医生办公室记录显示,在 2012 年至 2021 年期间,你的医生曾经给你开过这些药物处方。好的,在最新记录中显示,现在医生已经更换了不同种类的药物–二甲双胍。请问我们需要帮忙准备并发放 500 毫克二甲双胍处方给你吗?不客气玛丽,请告诉我们今天还有什么可以帮到你的。 — 客户支持专员的响应如何? 使用“行为(“原因”)”格式对各种行为进行分类和列出,并引用分类背后的原因1. 礼貌问候行为(“专员以礼貌的问候语开始对话,并询问呼叫者的姓名”) 2. 同理心行为(“专员意识到玛丽的沮丧,并试图理解她的担忧”) 3. 细心的行为(“专员倾听客户的问题,并询问更多详细信息”) 4. 主动行为(“专员提出为客户检查问题”) 5. 信息性行为(“专员提供了有关客户的处方记录的相关信息”) 6. 全面的行为(“专员检查了系统中可能存在的任何缺口,并提供了完整的回应”) 7. 确认性行为(“专员与客户确认当前药物”) 8. 以解决方案为引导的行为(“专员提出为客户填写新处方”) 9. 礼貌行为(“专员感谢了客户,并提出在需要时提供进一步帮助”)
系统消息用户Assistant
你是一名 AI 助手,可帮助用户查找信息。根据在文本中看到的模式,将以下新闻标题分为主题类别。 还要提到定义这些类别的理由。 输出格式: { “主题_名称”:“”, “标题”:[], “理由”:“” }输入新闻标题: 1.“使用 AR + ML 在 10 秒内从书本到演讲” 2.“1993 年 32 岁的 Yann LeCun 演示了世界第一个文本识别卷积网络” 3.“应用于动画绘画的一阶运动模型” 4.“Robinhood 和其他券商从实际上阻止购买 G M E 、 GME、 GMENOK、 B B 、 BB、 BBAMC;允许卖出” 5.“美国联合航空公司股票在盘前交易中下跌超过 5%” 输出:{ “人工_智能”:{ “标题”:[ “使用 AR + ML 在 10 秒内从书本到演讲”、 “1993 年 32 岁的 Yann LeCun 演示了世界第一个文本识别卷积网络”、 “应用于动画绘画的一阶运动模型” ], “理由”:“这些标题与人工智能、机器学习及其在各个领域的应用有关。” }, “金融_市场”:{ “标题”:[ “Robinhood 和其他券商从实际上阻止购买 G M E 、 GME、 GMENOK、 B B 、 BB、 BBAMC;允许卖出”、 “美国联合航空公司股票在盘前交易中下跌超过 5%”、 “比特币在一年前的今天接近 20,000 美元” ], “理由”:“这些标题与金融市场、股票、加密货币和交易平台有关。 } }

温度和 Top_p 参数

改变温度参数会改变模型的输出。 温度参数可以设置为 0 到 2。 较高的值(例如 0.7)将使输出更随机,并产生更多发散的响应,而较小的值(例如 0.2)将使输出更加集中和具体。 虚构的故事可以使用更高的温度生成。 而要生成法律文件的话,建议使用低得多的温度。 Top_probability 是另一个参数,与温度类似,它也控制模型响应的随机性,但它的控制方式有所不同。 一般建议一次只更改这两个参数其中之一,而不是同时更改它们。

提供基础上下文

提供可靠答案的最有效方法之一是为模型提供数据,让它从基础数据得出响应。 如果你的用例依赖于最新、可靠的信息,且不是纯粹的创意场景,我们强烈建议提供基础数据。 通常,源材料越接近所需答案的最终形式,模型需要完成的工作就越少,这意味着出错的可能性就越小。 下面的示例向系统提供了“描述 GPT-4 在 Azure OpenAI 服务中推出的最新博客”,并要求其命名一些早期客户。

系统消息用户Assistant
你是一名 AI 助手,可帮助用户查找信息。 你将专门通过以下文本提供回答,并保持响应在 100 字或更少: “在 Microsoft,我们不断发现释放创造力、解锁生产力和上层技能的新方法,以便让更多人可以从使用 AI 中获益。这使我们的客户能够…… 从而减少模型生成有害响应的可能性。”1回答不超过 100 个字词。 尽可能使用项目符号列表。谁是 Azure OpenAI 服务 GPT-4 模型的早期客户?下面是 Azure OpenAI 服务 GPT-4 模型的一些早期客户: - Epic Healthcare:他们计划使用 GPT-4 来帮助医生和护士在数据输入和调查上花费更少的时间。 - Coursera:他们将 Azure OpenAI 服务与 GPT-4 配合使用,以在其平台上创建新的 AI 驱动的学习体验。 - 可口可乐:他们正在使用 Azure OpenAI 构建知识中心,并计划利用 GPT-4 的多模态功能处理营销、广告、公共关系和客户关系。 - 其他各种规模的公司也在使用 Azure AI 来改善客户体验、汇总长格式内容、帮助编写软件,并通过预测正确的税务数据来降低风险。 1 来自 Azure OpenAI GPT-4 发布博客的文本。

file

关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1324287.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

探索 MajicStudio:一款多功能视频编辑软件

一、产品简介 MajicStudio是一款基于人工智能的图片编辑与设计工具&#xff0c;拥有简洁的界面与丰富功能。采用深度学习和计算机视觉技术可以自动识别图片要素。 二、应用场景 MajicStudio的AI图像功能适用于多场景&#xff0c;包括艺术设计、电商、游戏和文创等场景。 三、…

Vim:文本编辑的强大利器

Vim&#xff1a;文本编辑的强大利器 概述1. 工作模式1.1 普通模式1.2 插入模式1.3 可视模式 2. 代码示例2.1 移动光标2.2 复制和粘贴2.3 查找和替换 3. 应用场景结语 概述 Vim&#xff08;Vi Improved&#xff09;是一款强大的文本编辑器&#xff0c;广泛应用于Linux和Unix系统…

python线程中的semaphore信号量是什么

python中的线程之semaphore信号量 semaphore是一个内置的计数器&#xff0c;每当调用acquire()时&#xff0c;内置计数器-1&#xff1b;每当调用release()时&#xff0c;内置计数器1。 计数器不能小于0&#xff0c;当计数器为0时&#xff0c;acquire()将阻塞线程直到其他线程…

【lesson16】MySQL表的基本操作update(更新)和delete(删除)

文章目录 表的基本操作介绍update建表测试 delete建表测试 表的基本操作介绍 CRUD : Create(创建), Retrieve(读取)&#xff0c;Update(更新)&#xff0c;Delete&#xff08;删除&#xff09; update 建表 这里就不建表了&#xff0c;因为之前就建过了&#xff0c;这里给大家…

求奇数的和 C语言xdoj147

题目描述&#xff1a;计算给定一组整数中奇数的和&#xff0c;直到遇到0时结束。 输入格式&#xff1a;共一行&#xff0c;输入一组整数&#xff0c;以空格分隔 输出格式&#xff1a;输出一个整数 示例&#xff1a; 输入&#xff1a;1 2 3 4 5 0 6 7 输出&#xff1a;9 #inclu…

drf知识--02

APIView执行流程分析 源码分析&#xff1a; # 1 在路由中&#xff1a;path(books/, views.BookView.as_view()),请求来了 # 2 先看 as_view()---->APIView的 as_view---》as_view执行结果跟之前一样&#xff0c;去除了csrf认证classmethoddef as_view(cls, **initkwargs):vi…

青少年CTF-qsnctf-Web-PingMe02

题目环境&#xff1a; 题目难度&#xff1a;★ 题目描述&#xff1a;诶&#xff1f;又是一道Ping题目诶&#xff01; 给了一个ip参数 传参&#xff1a; ?ip1.1.1.1 有回显结果 使用英文分号";"进行连接后续命令 列出此路径下的目录和文件 ?ip1.1.1.1;ls 列出根目录…

vue3表格导入导出.xlsx

在这次使用时恰好整出来了&#xff0c;希望大家也能学习到&#xff0c;特此分享出来 使用前确保安装以下模块&#xff0c;最好全局配置element-plus ### 展示一下 ### ###导出选项 ### ###导入de数据 ### 安装的模块 npm install js-table2excel // 安装js-table2excel n…

链表相关题目(数据结构期末复习)

题目要求 下面算法 FB1 将一个带头节点的单链表LA 分解为两个具有相同结构的单链表 LB&#xff0c;LC&#xff0c; 其中LB中节点为LA中值小于0的节点&#xff0c;而LC中节点为LA中值大于或等于0的节点。请在空白处填上合理的语句。 翻译&#xff1a;LA 初始链表&#xff1b;L…

Python图像文字识别详解,实战代码

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在现代计算机视觉和图像处理应用中&#xff0c;文字识别是一个重要的任务。本篇博客将详细介绍如何使用Python中的文字识别库&#xff0c;以及一些优秀的开源工具&#xff0c;来实现对图片中文字的准确识别。通过…

从学到考,一图带你读懂开发者技能成长秘籍

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术&#xff0c;观点&#xff0c;和项目&#xff0c;并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏…

【Spring学习笔记】Spring 注解开发

Spring学习——注解开发 注解开发注解开发定义bean纯注解开发 Bean管理bean作用范围bean生命周期 依赖注入自动装配 第三方bean管理注解开发总结XML配置与注解配置比较 注解开发 注解开发定义bean 使用Component定义开发 Component("bookDao") public class BookD…

【Python可视化系列】一文教会你绘制美观的直方图(理论+源码)

一、引言 前面我详细介绍了如何绘制漂亮的折线图和柱状图&#xff1a; 【Python可视化系列】一文彻底教会你绘制美观的折线图&#xff08;理论源码&#xff09; 【Python可视化系列】一文教会你绘制美观的柱状图&#xff08;理论源码&#xff09; 对于一个连续性的变量&#xf…

spring三级缓存之相互依赖

spring三级缓存之相互依赖 什么是sping的互相依赖sping的三级缓存三级缓存存储了什么内容&#xff1f;三级缓存的存在是为了解决什么问题&#xff1f;三级缓存的怎样解决互相依赖的问题&#xff1f;缓存解决A和B相互依赖的过程三级缓存解决AOP并且A和B互相依赖的过程 三级缓存所…

Python 操作mysql实现事务处理

一、应用场景 Python项目对MySQL数据库进行增、删、改操作时&#xff0c;有时会出现执行sql异常的情况。在批量提交数据的时候&#xff0c;如果其中一个事务提交错误&#xff0c;往往导致预期的整个数据链不完整。 例如银行转账数据&#xff0c;用户A向用户B转账&#xff1a; …

blast安装及简单使用

一、安装blast 1.Ubuntu环境 # 下载blast wget https://ftp.ncbi.nlm.nih.gov/blast/executables/blast/2.9.0/ncbi-blast-2.9.0-x64-linux.tar.gz # 解压blast压缩包 tar -xzvf ncbi-blast-2.9.0-x64-linux.tar.gz # 测试 ./bin/blastp -h 这里就代表安装成功了&#xff0c;…

Mac电脑上设置一位数密码

1. 打开“终端”应用程序&#xff0c;你可以在 “ 应用程序 ” 文件夹中找到它。 2. 在终端窗口中&#xff0c;输入以下命令并按下回车键 pwpolicy -clearaccountpolicies 这个命令的目的是清除全局账户策略&#xff0c;允许设置较低位数的密码。 3. 输入你的开机密码并按下…

springCould-从小白开始【1】

目录 1.说明 2.父工程 3.服务端 4.消费者 5.公共模块 6.RestTemplate 1.说明❤️❤️❤️ 创建三个模块&#xff0c;服务者&#xff0c;消费者&#xff0c;公共api 注&#xff1a;spring boot和spring cloud有版本约束 2.父工程 ❤️❤️❤️ 约定版本号配置 注意&…

GSCoolink GSV1201E Type C/DP1.2转HDM1.4

DisplayPort 1.2 to HDMI 1.4 Converter with Embedded MCU 功能特征 1、GSV1201E是一款高性能、低功耗、USB Type-C Alternate Mode DisplayPort 1.2 to HDMI 1.4转换器。 2、显示接口接收器支持21.6Gbps(HBR2&#xff0c;4-lane)。 3、HDMI发射器支持9Gbps(TMDS3G3Lane)。…

OpenHarmony南向之TP触摸屏

概述 Touchscreen驱动用于驱动触摸屏使其正常工作&#xff0c;该驱动主要完成如下工作&#xff1a;对触摸屏驱动IC进行上电、配置硬件管脚并初始化其状态、注册中断、配置通信接口&#xff08;I2C或SPI&#xff09;、设定Input相关配置、下载及更新固件等操作。 Touchscreen驱…