掌握高效大模型任务流搭建术(二):链式流程如何赋能 AI 处理能力提升
前言:
在上一篇文章中,我们初步探索了 LangChain 的基础链式操作——LLMChain。它巧妙地将大语言模型(LLM)与提示模板(Prompt Template)相结合,为模型交互逻辑的封装提供了一种简洁而高效的方式。
然而,LangChain 的强大之处远不止于此。在 LLMChain 的基础上,LangChain 还提供了众多实用的 Chain 工具,其中 Sequential Chain 尤为引人注目。Sequential Chain 可以被视为一种高级的工作流工具,它专为那些需要多步骤连续处理的大语言模型任务量身定制。
在现实的工作场景中,我们常常会遇到这样的情况:任务的完成并非仅仅依靠简单的问答就能达成,而是需要经过一系列复杂的逻辑推理和信息处理步骤。Sequential Chain 正是为解决这一难题而生。它能够将这些分散的步骤有序地串联起来,使得每一步的输出无缝地成为下一步的输入,从而实现整个任务的连贯处理。无论是对复杂问题进行逐步拆解、逐层提取关键信息,还是进行多阶段的推理分析,Sequential Chain 都能大显身手,极大地提高工作效率,为完成多步骤任务提供坚实有力的支撑。
在 LangChain 的 Sequential Chain 设计中,主要存在两种类型:
SimpleSequentialChain :它适用于单一输入和输出的场景,每个链仅处理一个输入,并基于此生成一个输出。
SequentialChain:这种类型能够处理多个输入和多个输出,从而可以胜任更复杂的任务逻辑和数据流情况。
借助这两种链类型,LangChain 有能力灵活地应对从简单到复杂的多步骤任务,为开发者构建基于大语言模型的工作流提供高效的工具支持。
1:Simple Sequential Chain
Simple Sequential Chain 是 LangChain 中一种较为基础的链式结构,主要用于将多个链依次串联起来。其工作流程是,第一个链接收输入,经过处理后生成输出,这个输出随即作为第二个链的输入,以此类推,直至最后一个链生成最终的结果。
从图中可以看出,整个流程是线性和连续的,非常适合处理单一输入和单一输出的简单任务场景。通过这种方式,任务被分解为多个独立的步骤,易于管理和调试,同时保持逻辑的清晰性和处理的高效性。
接下来我们尝试调用这个链-还是要先导入必要的库
import os
from langchain_community.chat_models.tongyi import ChatTongyi
from langchain.chains import LLMChain
from langchain.prompts import ChatPromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate
from langchain.memory import ConversationBufferMemory
from langchain.chains import SimpleSequentialChain
# 设置 API 密钥
os.environ["DASHSCOPE_API_KEY"] = 'sk-63f00f6776fd4f64beb06ed5edf197eb'
# 初始化通义千问模型
llm = ChatTongyi()
# 第一个提示模板,用于生成公司名称
first_prompt = ChatPromptTemplate.from_template(
"用一句话描述一个制作 {product} 的公司最合适的名称是什么?"
)
# 链 1:根据产品生成公司名称
chain_one = LLMChain(llm=llm, prompt=first_prompt)
# 第二个提示模板,用于生成公司描述
second_prompt = ChatPromptTemplate.from_template(
"为以下公司写一段 20 个词的描述:{company_name}"
)
# 链 2:根据公司名称生成公司描述
chain_two = LLMChain(llm=llm, prompt=second_prompt)
# 第三个提示模板,用于生成广告语
third_prompt = ChatPromptTemplate.from_template(
"根据以下公司描述生成一句创意广告语:{company_description}"
)
# 链 3:根据公司描述生成广告语
chain_three = LLMChain(llm=llm, prompt=third_prompt)
# 构建包含三个链的 SimpleSequentialChain
overall_simple_chain = SimpleSequentialChain(
chains=[chain_one, chain_two, chain_three], # 将新链加入到链的顺序中
verbose=True# 输出详细日志
)
# 输入产品信息,运行整个链
prodcut = '裤子'
print(overall_simple_chain.run(product))
从这里我们可以看出,利用这个SimpleSequentialChain链可以轻松构建出完整的工作流程。以总结一篇论文为例,我们的目标并不是简单地让大模型直接总结整篇文章,而是将任务拆解成更细的步骤:先让模型分别总结第一段、第二段和第三段的内容,然后再对这些部分的总结进行汇总。通过这种将复杂问题逐步拆解的方式,可以显著提升模型的回复质量和能力,确保结果更加精准和全面。
2: Sequential Chain
SequentialChain 是 LangChain 中一种功能强大的链式结构,相较于 SimpleSequentialChain,它提供了更高的灵活性和复杂性。SequentialChain 允许多个链并行处理不同的输入,并且能够将多个输出进行合并或分别传递到后续的链中。从流程设计的角度来看,SimpleSequentialChain 只支持单一的线性顺序,而 SequentialChain 则支持更复杂的流程设计,可以满足更广泛的业务需求。这种设计使得 SequentialChain 在处理复杂的多步骤任务时更加高效和灵活,能够更好地适应各种复杂的场景和任务需求。
具体来说,SequentialChain 比 SimpleSequentialChain 的优势在于:
输入灵活性 :SequentialChain 支持用户同时传递多个输入,这些输入可以分别进入不同的链条。例如,用户可以将不同的数据集或参数分别传递给 Chain 1 和 Chain 3。
输出管理 :每个链的输出不仅可以作为下一个链的输入,还可以分发到多个后续链。例如,Chain 2 和 Chain 3 的输出都可以传递给 Chain 4。
多路合并:最后的链(如 Chain 4)可以整合来自多个链条的结果,生成最终输出。这种设计使得 SequentialChain 在处理复杂的多步骤任务时更加灵活和强大,能够更好地适应各种复杂的场景和任务需求。
假如我们希望按着图片上的模式来进行定制Sequential Chain的话,第一步其实还是要先把SequentialChain导入
以下是一个完整示例:
import os
from langchain_community.chat_models.tongyi import ChatTongyi
from langchain.chains import LLMChain
from langchain.prompts import ChatPromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate
from langchain.chains import SequentialChain
# 设置 API 密钥
os.environ["DASHSCOPE_API_KEY"] = 'sk-63f00f6776f197ea'
# 初始化通义千问模型
llm = ChatTongyi()
# 提示模板 1:将评论翻译成中文
first_prompt = ChatPromptTemplate.from_template(
"将以下评论翻译成中文:"
"\n\n{Review}"
)
# 链 1:输入= Review,输出= Chinese_Review
chain_one = LLMChain(
llm=llm,
prompt=first_prompt,
output_key="Chinese_Review"# 定义输出变量的名称
)
# 提示模板 2:总结中文评论
second_prompt = ChatPromptTemplate.from_template(
"请用一句话总结以下评论:"
"\n\n{Chinese_Review}"
)
# 链 2:输入= Chinese_Review,输出= summary
chain_two = LLMChain(
llm=llm,
prompt=second_prompt,
output_key="summary"# 定义输出变量的名称
)
# 提示模板 3:检测评论的语言
third_prompt = ChatPromptTemplate.from_template(
"以下评论是用什么语言写的:\n\n{Review}"
)
# 链 3:输入= Review,输出= language
chain_three = LLMChain(
llm=llm,
prompt=third_prompt,
output_key="language"# 定义输出变量的名称
)
# 提示模板 4:根据总结和语言生成回复
fourth_prompt = ChatPromptTemplate.from_template(
"根据以下总结和指定语言,以一个商家的视角,写一条对应语言的后续回复(最终只需要输出一条即可):"
"\n\n总结: {summary}\n\n语言: {language}"
)
# 链 4:输入= summary, language,输出= followup_message
chain_four = LLMChain(
llm=llm,
prompt=fourth_prompt,
output_key="followup_message"# 定义输出变量的名称
)
# 创建 SequentialChain,将所有链条整合为一个流程
# 输入= Review,输出= Chinese_Review, summary, followup_message
overall_chain = SequentialChain(
chains=[chain_one, chain_two, chain_three, chain_four], # 定义链条的顺序
input_variables=["Review"], # 定义输入变量
output_variables=["Chinese_Review", "summary", "followup_message"], # 定义输出变量
)
# 提取评论并运行链条
review = 'I love this product!'
print(overall_chain(review))
通过这个例子,我们可以清晰地看到,由于这种链式结构允许自定义内部的输入和输出,它非常适合处理复杂的任务场景,例如:
1. 整合来自不同渠道的信息(如数据分析和用户行为总结)。
2. 将任务分解为多个步骤进行处理,然后汇总结果。
3. 创建复杂的工作流程,例如多步骤问答、多段落文本生成和多维度分析等。
这种链式结构的灵活性和可定制性使其成为处理复杂任务的理想选择,能够有效地支持各种高级应用场景。
小结
SimpleSequentialChain 适合于那些需要单一输入和单一输出的场景,任务按照顺序一步步处理,每一步的输出直接成为下一步的输入。这种结构简单直观,非常适合那些逻辑线性、步骤明确且清晰的工作流程。
而 SequentialChain 则是对 SimpleSequentialChain 的扩展,它支持多输入和多输出,提供了更大的灵活性。这种结构能够将复杂的任务分解成多个部分,并通过明确的输入输出变量将它们连接起来,从而实现更复杂的流程设计和任务整合。
通过这两种链结构,我们不仅可以清晰地定义任务逻辑,还可以灵活地适应不同的场景需求。例如,在多语言客户服务场景中,SequentialChain 可以轻松地完成从评论翻译、总结、语言检测到个性化回复生成的整个工作流程。
总的来说,无论是处理单一线性任务,还是需要多路并行和输出合并的复杂流程,LangChain 提供的链式工具都能显著提高大语言模型任务的执行效率和可扩展性,为开发者构建智能化工作流提供了强有力的支持。
相关文章:
掌握高效大模型任务流搭建术(二):链式流程如何赋能 AI 处理能力提升
前言: 在上一篇文章中,我们初步探索了 LangChain 的基础链式操作——LLMChain。它巧妙地将大语言模型(LLM)与提示模板(Prompt Template)相结合,为模型交互逻辑的封装提供了一种简洁而高效的方式…...
Linux——Docker容器内MySQL密码忘记了如何查看
目录 查看正在运行的MySQL的容器ID 方法一:查看MySQL容器的日志里的密码 方法二:通过环境变量密码登录 方法三:修改密码 查看正在运行的MySQL的容器ID docker ps 方法一:查看MySQL容器的日志里的密码 docker logs [MySQL的容器…...
深入剖析 Kubernetes 弹性伸缩:HPA 与 Metrics Server
引言 在 Kubernetes (K8s) 集群中,如何根据应用的实际负载自动调整 Pod 数量,实现资源的弹性利用,是保障服务稳定性和成本效益的关键。Horizontal Pod Autoscaler (HPA) 和 Metrics Server 正是实现这一目标的核心组件。本文将深入探讨 HPA …...
Qt5 C++ QMap使用总结
文章目录 功能解释代码使用案例代码解释注意事项代码例子参考 功能解释 QList<T> QMap::values() const Returns a list containing all the values in the map, in ascending order of their keys. If a key is associated with multiple values, all of its values wi…...
如何改变怂怂懦弱的气质(2)
你是否曾经因为害怕失败而逃避选择?是否因为不敢拒绝别人而让自己陷入困境?是否因为过于友善而被人轻视?如果你也曾为这些问题困扰,那么今天的博客就是为你准备的。我们将从行动、拒绝、自我认知、实力提升等多个角度,…...
【CVTE】嵌入式软件开发-Linux方向{一面}
文章目录 数组和链表的区别?特点?使用场景?**1. 数组(Array)****特点:****使用场景:** **2. 链表(Linked List)****特点:****使用场景:** **3. 数…...
自律linux 第 35 天
之前学习了UDP编程,UDP是可以实现多个用户向一个用户发送的,但是TCP一个服务端在同一时刻只能对应一个客户端,因为TCP的通信是使用管道通信的,如果要使用TCP实现一对多的通信,有如下几种办法:多进程&#x…...
云原生系列之本地k8s环境搭建
前置条件 Windows 11 家庭中文版,版本号 23H2 云原生环境搭建 操作系统启用wsl(windows subsystem for linux) 开启wsl功能,如下图 安装并开启github加速器 FastGithub 2.1 下载地址:点击下载 2.2 解压安装文件fastgithub_win-x64.zip 2…...
Cursor实战:Web版背单词应用开发演示
Cursor实战:Web版背单词应用开发演示 需求分析自行编写需求文档借助Cursor生成需求文档 前端UI设计后端开发项目结构环境参数数据库设计安装Python依赖运行应用 前端代码修改测试前端界面 测试数据生成功能测试Bug修复 总结 在上一篇《Cursor AI编程助手不完全指南》…...
每日一题----------枚举的注意事项和细节
注意事项: 1.当我们使用enum关键字开发一个枚举类时,默认会继承Enum类,而且是一个final类,利用javap反编译可查。 2.public static Season SPRING new Season("春天", "温暖");简化成SPRING("春天&qu…...
【Java学习】异常
一、异常的处理过程 异常类的似复刻变量被throw时,会立即中止当前所在的这层方法,即当层方法里throw异常类似复刻变量之后的语句就不会执行了,如果throw异常语句在当层方法中被try{}包裹,则中止就先发生被包裹在了try{}层…...
使用STM32CubeMX实现LED灯每秒闪烁一次(STM32G070CBT6单片机)
1.打开STM32CubeMX,点击File->New Project,新建一个新工程。 2.搜索芯片型号,选择正确的芯片封装规格,准备对芯片的引脚进行配置。 进行上面的操作后,跳转到如下的页面。 3.选择要配置的引脚进行配置。此处我的LED是…...
FastGPT 引申:如何基于 LLM 判断知识库的好坏
文章目录 如何基于 LLM 判断知识库的好坏方法概述示例 Prompt声明抽取器 Prompt声明检查器 Prompt 判断机制总结 下面介绍如何基于 LLM 判断知识库的好坏,并展示了如何利用声明抽取器和声明检查器这两个 prompt 构建评价体系。 如何基于 LLM 判断知识库的好坏 在知…...
rabbitmq版本升级并部署高可用
RabbitMQ版本升级 先检查是否已经安装rabbitmq rpm -qa|grep rabbitmq|wc -l //如果结果是0,表示没有安装 rpm -e --nodeps $(rpm -qa|grep rabbitmq) //如安装了,则进行卸载 先检查是否已经安装erlang rpm -qa|grep erlang|wc -l //如果结果…...
了解JVM
目录 一、内存区域划分 1.方法区(元数据区) 2.堆 3.栈 4.程序计数器 5.本地方法栈 总结: 二、类加载 1.加载 2.验证 3.准备 4.解析 5.初始化 三、双亲委派模型 四、垃圾回收 1.找到垃圾 1)引用计数 2)…...
Linux - 工具
一、 代码编译(g/gcc) 1) 预处理 g –E hello.c –o hello.i宏替换 条件编译 头文件展开 去注释 2) 编译 g –S hello.i –o hello.s检查语法将代码转为汇编 3) 汇编 g –c hello.s –o hello.o将汇编转为二进制代码 4) 链接 g hello.o –o …...
ASP.NET Core 6 MVC 文件上传
概述 应用程序中的文件上传是一项功能,用户可以使用该功能将用户本地系统或网络上的文件上传到 Web 应用程序。Web 应用程序将处理该文件,然后根据需要对文件进行一些验证,最后根据要求将该文件存储在系统中配置的用于保存文件的存储中&#…...
大模型LoRA微调训练原理是什么?
环境: LoRA 问题描述: 大模型LoRA微调训练原理是什么? 解决方案: LoRA(Low-Rank Adaptation)微调是一种高效的参数优化技术,专门用于大型语言模型的微调,旨在减少计算和内存需求…...
Ubuntu系统上部署Node.js项目的完整流程
以下是在Ubuntu系统上部署Node.js项目的完整流程,分为系统初始化、环境配置、项目部署三个部分: 一、系统初始化 & 环境准备 bash # 1. 更新系统软件包 sudo apt update && sudo apt upgrade -y# 2. 安装基础工具 sudo apt install -y buil…...
vue3:七、拦截器实现
一、前言 拦截器可以很好的统一处理请求和响应 请求拦截器:可以在请求发送之前对请求进行统一处理,比如添加认证信息(如 token)、设置请求头、添加公共参数等。响应拦截器:可以在响应返回之后对响应数据进行统一…...
K8S高可用集群-小白学习之二进制部署(ansible+shell)
一.K8S高可用集群配置概述 序言:本文从一个小白的视角进行K8S的研究和部署,采用二进制的方式是为了更清楚了分解部署流程及了解这个集群是怎么运作的,加上ansible+shell是方便在这个过程中,遇到了问题,我们可以不断的快速重复部署来测试和研究问题的所在点,本文的架构图…...
学生管理信息系统的需求分析与设计
伴随教育的迅猛演进以及学生规模的不断扩增,学生管理信息系统已然成为学校管理的关键利器。此系统能够助力学校管控学生的课程成绩、考勤记载、个人资讯等诸多数据,提升学校的管理效能与服务品质。 一.需求分析 1.1 学生信息管理 学生信息在学校管理体…...
010---基于Verilog HDL的分频器设计
文章目录 摘要一、时序图二、程序设计2.1 rtl2.2 tb 三、仿真分析四、实用性 摘要 文章为学习记录。绘制时序图,编码。通过修改分频值参数,实现一定范围分频值内的任意分频器设计。 一、时序图 二、程序设计 2.1 rtl module divider #(parameter D…...
Pytorch使用手册—雅可比矩阵、海森矩阵、hvp、vhp 等:组合函数变换(专题四十四)
计算雅可比矩阵或海森矩阵在许多非传统深度学习模型中是非常有用的。使用 PyTorch 的常规自动微分 API(Tensor.backward(),torch.autograd.grad)计算这些量是困难的(或者很麻烦)。PyTorch 的受 JAX 启发的函数变换 API 提供了高效计算各种高阶自动微分量的方法。 注意: 本…...
OpenCV计算摄影学(16)调整图像光照效果函数illuminationChange()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 对选定区域内的梯度场应用适当的非线性变换,然后通过泊松求解器重新积分,可以局部修改图像的表观照明。 cv::illuminati…...
WPF框架---MvvmLight介绍
目录 1. MvvmLight 框架准备 2. MvvmLight 中的相关基类 3. MvvmLight 中的数据绑定与通知 a. 核心功能 b. 关键方法与属性 c. 完整示例 d. 高级用法 4. MvvmLight 中的命令对象 a. 命令对象的作用 b. 核心接口:ICommand c. MvvmLight 中的 RelayCommand…...
C语言基础之【指针】(下)
C语言基础之【指针】(下) 指针和字符串字符指针字符指针做函数参数const修饰的指针变量指针数组做为main函数的形参项目开发常用字符串应用模型while和do-while模型两头堵模型字符串反转模型 字符串处理函数strchr()strrchr()strstr()strtok()strcpy()st…...
Deepseek中的MoE架构的改造:动态可变参数激活的MoE混合专家架构(DVPA-MoE)的考虑
大家好,我是微学AI,今天给大家介绍一下动态可变参数激活MoE架构(Dynamic Variable Parameter-Activated MoE, DVPA-MoE)的架构与实际应用,本架构支持从7B到32B的等多档参数动态激活。该架构通过细粒度难度评估和分层专家路由,实现“小问题用小参数,大问题用大参数”的精…...
【0012】Python函数详解
如果你觉得我的文章写的不错,请关注我哟,请点赞、评论,收藏此文章,谢谢! 本文内容体系结构如下: 编写代码往往是为了实现特定的功能,如果需要使用功能多次,也要写同样的代码多次吗…...
Stable Diffusion教程|快速入门SD绘画原理与安装
什么是Stable Diffusion,什么是炼丹师?根据市场研究机构预测,到2025年全球AI绘画市场规模将达到100亿美元,其中Stable Diffusion(简称SD)作为一种先进的图像生成技术之一,市场份额也在不断增长&…...
鸿蒙应用开发深度解析:API 14核心特性与实战指南
文章目录 一、HarmonyOS API 14架构升级解析1.1 系统架构演进1.2 核心能力对比 二、ArkUI 3.0开发实战2.1 声明式UI完整示例2.2 自定义组件开发 三、分布式能力深度开发3.1 跨设备数据同步流程3.2 分布式数据库操作 四、系统能力扩展开发4.1 后台任务管理4.2 硬件服务调用 五、…...
docker中kibana启动后,通过浏览器访问,出现server is not ready yet
问题:当我在浏览器访问kibana时,浏览器给我报了server is not ready yet. 在网上试了很多方法,都未能解决,下面是我的方法: 查看kibana日志: docker logs -f kibana从控制台打印的日志可以发现ÿ…...
2025年天梯赛第1场选拔赛
目录 A:徐老师的积木山峰 B:徐老师的最长上升子序列 C:徐老师的机器命令 D:徐老师的地下堡 E:徐老师的新鲜羊腿 F:徐老师的黄金矿工 G:徐老师的成绩统计 H:春节糖果 I:幸运函数 J:好坏钥匙 A:徐老师的积木山峰 徐老师有 n 块积木排成一排,从左往右数编号依次为 1∼…...
28-文本左右对齐
给定一个单词数组 words 和一个长度 maxWidth ,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。 你应该使用 “贪心算法” 来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可…...
SpringBoot校园管理系统设计与实现
在现代校园管理中,一个高效、灵活的管理系统是不可或缺的。本文将详细介绍基于SpringBoot的校园管理系统的设计与实现,涵盖管理员、用户和院校管理员三大功能模块,以及系统的部署步骤和数据库配置。 管理员功能模块 管理员是系统的核心管理…...
thunder bird 配置邮箱
1.配 outlook https://cn.windows-office.net/?p22940 2.配 qq 邮箱 https://blog.csdn.net/lx_ros/article/details/124831850 3.QQ邮箱的授权码在 账号与安全 4.qq 邮箱 更换 foxmail 邮箱名 https://www.yigujin.cn/blog/p10094.html 结语 感觉网上搜到的都不咋好&…...
机器学习中的线性代数:奇异值分解 SVD
线性代数 奇异值分解(SVD) 参考资料: 超详细!彻底搞懂矩阵奇异值分解(SVD)本质计算应用!_哔哩哔哩_bilibili 非常好的视频,本文内容主要来自于该视频,在此表示感谢&#…...
机器学习深度学习基本概念:logistic regression和softmax
逻辑回归用来处理二分类问题 softmax用来处理多分类问题:比如llm在generate的时候,每个batch里面的一个样本的一个一次generate就是softmax生成一个大小为vocab_size的向量的概率分布,然后再采样 逻辑回归(logistic regression&…...
机器学习(六)
一,决策树: 简介: 决策树是一种通过构建类似树状的结构(颠倒的树),从根节点开始逐步对数据进行划分,最终在叶子节点做出预测结果的模型。 结构组成: 根节点:初始的数据集…...
在 Maven 中使用 <scope> 元素:全面指南
目录 前言 在 Maven 中, 元素用于定义依赖项的作用范围,即依赖项在项目生命周期中的使用方式。正确使用 可以帮助我们优化项目的构建过程,减少不必要的依赖冲突,并提高构建效率。本文将详细介绍 的使用步骤、常见作用范围、代码…...
Manus邀请码如何申请,有哪些办法
Manus是由Monica团队推出的一款通用型AI智能体产品,旨在通过自主任务规划与执行能力,将用户的想法转化为实际成果。它不仅能够理解复杂指令,还能通过调用虚拟环境中的工具(如浏览器、代码编辑器、文件处理器等)&#x…...
大型WLAN组网部署(Large scale WLAN network deployment)
大型WLAN组网部署 大型WLAN网络关键技术 技术 作用 VLAN Pool 通过VLAN Pool把接入的用户分配到不同的VLAN,可以减少广播域,减少网络中的广播报文,提升网络性能。 DHCP Option 43 & 52 当AC和AP间是三层组网时,AP通过…...
MQ保证消息的顺序性
在消息队列(MQ)中保证消息的顺序性是一个常见的需求,尤其是在需要严格按顺序处理业务逻辑的场景(例如:订单创建 → 支付 → 发货)。 一、消息顺序性被破坏的原因 生产者异步/并行发送:消息可能…...
SQL Server查询计划操作符(7.3)——查询计划相关操作符(9)
7.3. 查询计划相关操作符 78)Repartition Streams:该操作符消费多个输入流并产生多个输出流。期间,记录内容与格式保持不变。如果查询优化器使用一个位图过滤(bitmap filter),则输出流中的数据行数将会减少。一个输入流的每行记录被放入一个输出流。如果该操作符保留顺序…...
杨校老师课堂之零基础入门C++备战信息学奥赛-基础篇
零基础快速入门C C学习路线一、基础语法1. C基础框架2. C语言输出3. C 语言输入4. C 数据类型5. C 赋值6. 运算符与表达式7. 控制结构语句7.1 if分支结构语句7.1.1 单分支结构语句7.1.2 双分支结构语句7.1.3 多分支结构语句 7.2 switch开关语句 8. 循环结构语句8.1 for循环8.2 …...
wxWidgets GUI 跨平台 入门学习笔记
准备 参考 https://wiki.wxwidgets.org/Microsoft_Visual_C_NuGethttps://wiki.wxwidgets.org/Tools#Rapid_Application_Development_.2F_GUI_Buildershttps://docs.wxwidgets.org/3.2/https://docs.wxwidgets.org/latest/overview_helloworld.htmlhttps://wizardforcel.gitb…...
Aws batch task 无法拉取ECR 镜像unable to pull secrets or registry auth 问题排查
AWS batch task使用了自定义镜像,在提作业后出现错误 具体错误是ResourceInitializationError: unable to pull secrets or registry auth: The task cannot pull registry auth from Amazon ECR: There is a connection issue between the task and Amazon ECR. C…...
亚信安全发布2024威胁年报和2025威胁预测
在当今数字化时代,网络空间已成为全球经济、社会和国家安全的核心基础设施。随着信息技术的飞速发展,网络连接了全球数十亿用户,推动了数字经济的蓬勃发展,同时也带来了前所未有的安全挑战。2024年,网络安全形势愈发复…...
verb words
纠正correct remedy 修正modify 协商 confer 磋商/谈判 negotiate 通知notice notify *宣布announce 声明declare 宣告 declare *颁布 promulgate /introduce 协调coordinate 评估evaluate assess 撤离evacuate *规定stipulate 参与participate, 涉及refer…...
程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图<12>
大家好啊,我是小象٩(๑ω๑)۶ 我的博客:Xiao Xiangζั͡ޓއއ 很高兴见到大家,希望能够和大家一起交流学习,共同进步。 目录 一、回调函数二、qsort2.1 使用qsort函数排序整型数据2.2 使用qsort排序结构数据2.3 qsort函数的模…...