LangFlow技术深度解析:可视化编排LangChain应用的新范式 -(2)流编辑器系统

Flow Editor System | langflow-ai/langflow | DeepWiki

流编辑器系统

相关源文件

流编辑器系统是 Langflow 的核心交互式组件,允许用户直观地创建、编辑和管理 LLM 驱动的应用程序。它提供了一个直观的画布,用户可以在其中添加节点、将其与边缘连接并配置其属性以构建复杂的 LLM 工作流,而无需编写代码。有关为编辑器中的节点提供支持的更广泛的组件系统的信息,请参阅组件系统。

概述 架构

流编辑器系统构建在 ReactFlow 之上,并遵循基于组件的架构,状态管理由 Zustand 存储处理。

来源:来源/前端/src/pages/FlowPage/components/PageComponent/index.tsx src/frontend/src/stores/flowStore.ts 来源/前端/来源/商店/flowsManagerStore.ts

核心组件

GenericNode 组件

该组件是流编辑器的主要构建块,它使用统一的界面渲染所有节点,无论其类型如何。GenericNode

来源:src/frontend/src/CustomNodes/GenericNode/index.tsx

GenericNode 组件的主要功能:

  • 动态节点标头:显示节点名称、图标和状态指示器
  • 交互式输入/输出句柄:连接的输入参数和输出句柄
  • 可折叠界面:可以最小化以节省空间
  • 可自定义视图:支持显示/隐藏详细信息
  • Node Status Indicators(节点状态指示器):显示构建状态、验证错误等。
  • 工具栏:提供对特定于节点的作的快速访问
  • Tool Mode:代理工作流程中用作工具的节点的特殊模式

Node Toolbar 组件

NodeToolbarComponent 提供了一组丰富的作,用于作流中的节点。

来源:src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx

工具栏提供以下主要功能:

  • 代码编辑:打开可自定义节点的代码编辑器
  • 控件:通过模态界面配置节点参数
  • 冻结:保留节点状态并防止在流程执行期间进行更新
  • Tool Mode:在兼容节点的标准模式和工具模式之间切换
  • 组件管理:保存、复制、共享、下载组件
  • 文档:Access 组件文档
  • 视觉调整:最小化/扩展节点以管理画布空间
  • 编辑作:复制、粘贴和删除节点

流编辑器页面

Flow Editor Page (流编辑器页面) 是管理 ReactFlow 画布和所有交互处理的主要容器组件。

来源:来源/前端/src/pages/FlowPage/components/PageComponent/index.tsx

流编辑器页面提供:

  • 组件拖放:通过从侧边栏拖动将组件添加到画布
  • 连接管理:创建和验证组件之间的连接
  • 选择处理:多选、分组和作多个节点
  • 画布控件:缩放、平移和导航画布
  • 键盘快捷键:撤消/重做、复制/粘贴、删除和其他作
  • 流程构建:验证和准备要执行的流程

状态管理

流编辑器系统使用 Zustand 存储进行状态管理,其中两个主要存储处理流编辑的不同方面。

流存储

该 管理当前流的状态,包括节点、边缘和构建状态。flowStore

来源:src/frontend/src/stores/flowStore.ts

Flows Manager 商店

它管理多个流、撤消/重做功能的历史记录和流元数据。flowsManagerStore

来源:来源/前端/来源/商店/flowsManagerStore.ts

数据模型

流编辑器系统使用多个关键数据模型来表示流元素。

节点和边缘类型

来源:来源/前端/来源/类型/流/index.ts 来源/前端/src/types/api/index.ts

关键数据结构:

  • FlowType:表示包含元数据和内容的完整流
{name: string;id: string;data: ReactFlowJsonObject<AllNodeType, EdgeType> | null;description: string;endpoint_name?: string | null;is_component?: boolean;// ...additional metadata
}
  • NodeDataType:表示节点内的数据
{showNode?: boolean;type: string;node: APIClassType;id: string;output_types?: string[];buildStatus?: BuildStatus;
}
  • EdgeType:表示节点之间的连接
{id: string;source: string;target: string;sourceHandle: string; // JSON stringified sourceHandleTypetargetHandle: string; // JSON stringified targetHandleTypedata: EdgeDataType;
}
  • APIClassType:表示组件的 API 规范
{base_classes?: Array<string>;description: string;template: APITemplateType; // Map of input parametersdisplay_name: string;outputs?: Array<OutputFieldType>;// ...additional properties
}

用户交互流

将组件添加到 Canvas

来源:来源/前端/src/pages/FlowPage/components/PageComponent/index.tsx

连接节点

来源:src/frontend/src/stores/flowStore.ts 来源/前端/src/utils/reactflowUtils.ts

构建和运行流

来源:src/frontend/src/stores/flowStore.ts 来源/前端/src/utils/buildUtils.ts

节点配置和自定义

Flow Editor 提供了多种配置和自定义节点的方法:

工具栏作

Node Toolbar 提供对常见节点作的直接访问:

按钮

行动

描述

法典

打开代码编辑器

用于在节点中编辑自定义代码

控制

打开参数编辑器

用于配置节点参数

冻结

冻结节点状态

防止在流程执行期间进行更新

工具模式

切换工具模式

将节点转换为代理工具

更多

打开其他选项

提供扩展功能

来源:src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx

代码编辑器模态

代码编辑器模态允许编辑自定义组件的 Python 代码:

来源:src/frontend/src/modals/codeAreaModal/index.tsx

输入参数

每个节点可以有多个不同类型的输入参数:

参数类型

描述

连接支持

字符串

文本输入

可以连接或手动输入

数字输入

可以连接或手动输入

布尔

切换输入

可以连接或手动切换

列表

数组输入

可以连接或手动配置

字典

字典输入

可以连接或手动配置

文件

文件上传

可以连接或手动上传

法典

代码编辑器

可以连接或手动编辑

来源:来源/前端/src/types/api/index.ts

流程管理

Flow Editor System 提供了全面的流程管理功能:

保存和加载流

来源:src/frontend/src/stores/flowStore.ts 来源/前端/来源/商店/flowsManagerStore.ts

导出和导入流

来源:src/frontend/src/modals/exportModal/index.tsx

撤消/重做功能

来源:来源/前端/来源/商店/flowsManagerStore.ts

结论

Flow Editor System 是 Langflow 可视化开发体验的核心。它提供了一个丰富、直观的界面,用于通过拖放交互、可视化连接和可配置节点的组合来创建和作流。该系统由强大的架构提供支持,该架构将 ReactFlow 的画布功能与自定义组件和状态管理相结合,以创建无缝的开发体验。

本文档涵盖了构成 Flow Editor 系统的核心组件、数据模型、状态管理、用户交互和自定义选项。有关可在流程中使用的组件的更多信息,请参阅 Component System 页面。

来源:src/frontend/src/CustomNodes/GenericNode/index.tsx src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx 来源/前端/src/pages/FlowPage/components/PageComponent/index.tsx src/frontend/src/stores/flowStore.ts 来源/前端/来源/商店/flowsManagerStore.ts 来源/前端/来源/类型/流/index.ts 来源/前端/src/types/api/index.ts 来源/前端/src/utils/reactflowUtils.ts 来源/前端/src/utils/buildUtils.ts

节点和边

相关源文件

本页介绍了 Langflow 可视化编程接口的核心构建块:节点和边。节点表示可以通过边缘连接以创建 AI 工作流的组件(如 LLM、链、工具等)。本文档解释了节点和边在 Langflow 系统中是如何构建和渲染的,以及它们如何相互交互。

有关如何管理和保存流的信息,请参阅流管理。

节点和 Edge 概述

在 Langflow 中,流由由边(表示数据流)连接的节点(表示组件或功能)组成。可视化界面建立在 React Flow 之上,React Flow 为图形编辑器提供了基本功能。

资料来源: [src/frontend/src/CustomNodes/GenericNode/index.tsx], [src/frontend/src/types/flow/index.ts], [src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx]

节点类型和结构

Langflow 有两种主要节点类型:GenericNode(用于组件)和 NoteNode(用于注释)。

节点数据类型

节点的核心数据结构定义为 TypeScript 类型:

资料来源:[src/frontend/src/types/flow/index.ts:37-70], [src/frontend/src/types/api/index.ts:31-66]

GenericNode 组件

它是主要节点类型,代表 Langflow 中可用的不同组件(LLM、链、代理等)。它是一个复杂的组件,它呈现:GenericNode

  1. 节点标头(图标、标题)
  2. 状态指示灯
  3. 描述 (展开时)
  4. 输入参数
  5. 输出手柄

组件根据其状态(展开/最小化、选中、使用工具模式等)以不同的方式显示

资料来源:[src/frontend/src/CustomNodes/GenericNode/index.tsx:66-592]

边和连接

边表示节点之间的数据流,将一个节点的输出连接到另一个节点的输入。

边缘结构

Langflow 中的每个边缘都有:

  • 唯一 ID
  • 源节点 ID 和句柄
  • 目标节点 ID 和句柄
  • 包含连接元数据的数据对象

资料来源:[src/frontend/src/types/flow/index.ts:85-131], [src/frontend/src/utils/reactflowUtils.ts:104-166]

连接验证

连接节点时,Langflow 会验证:

  1. 源和目标是不同的节点
  2. 源的输出类型与目标的输入类型兼容
  3. 对于非列表输入,输入尚未建立连接

资料来源: [src/frontend/src/utils/reactflowUtils.ts:316-363]

节点渲染

该组件根据节点的状态和元数据动态呈现。GenericNode

视觉状态

节点具有多种视觉状态:

  • 扩展/最小化 ( 属性)showNode
  • 已选中(单击时)
  • 构建(在流程执行期间)
  • 错误(验证失败时)
  • 冻结(显式设置时)
  • 工具模式(特殊执行模式)

节点的外观会根据这些状态而变化,以提供视觉反馈。

输入参数渲染

输入参数根据节点的模板呈现,该模板指定每个参数的类型、要求和 UI。

资料来源:[src/frontend/src/CustomNodes/GenericNode/index.tsx:447-458], [src/frontend/src/CustomNodes/GenericNode/components/RenderInputParameters.tsx]

输出参数

输出参数表示节点可以发送到其他节点的数据。它们将呈现为节点右侧的连接手柄。

每个输出都有:

  • 名字
  • 显示名称
  • 类型 (它可以提供的数据类型)
  • 可选的可见性控制(可以隐藏)

资料来源:[src/frontend/src/CustomNodes/GenericNode/index.tsx:539-582]、[src/frontend/src/CustomNodes/GenericNode/components/NodeOutputParameter.tsx]

节点工具栏

选择节点后,将显示 NodeToolbar,提供作来作该节点。

资料来源: [src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx:44-770]

代码编辑

对于具有代码字段的节点(如自定义函数),工具栏提供对代码编辑器的访问:

来源:[src/frontend/src/modals/codeAreaModal/index.tsx:34-289], [src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx:446-456]

工具模式

工具模式是某些节点的一项特殊功能,可更改它们在流程中的处理方式:

资料来源:[src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx:485-532]

节点状态和验证

节点具有指示其在流中的当前状态的构建状态:

资料来源:[src/frontend/src/CustomNodes/GenericNode/components/NodeStatus/index.tsx], [src/frontend/src/style/applies.css:116-138]

节点验证

在执行流之前,会验证节点以确保它们具有所有必需的输入:

资料来源:[src/frontend/src/utils/reactflowUtils.ts:518-601]

Edge 交互和渲染

Edge 可视化节点之间的连接并支持各种交互:

资料来源: [src/frontend/src/utils/reactflowUtils.ts:74-166], [src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx:428-449]

边缘清洁

当节点更改时,将 “清理” 边缘以删除无效连接:

资料来源:[src/frontend/src/utils/reactflowUtils.ts:74-162]

特殊节点功能

冻结节点

节点可以被 “冻结” ,这在视觉上表明它们在流程执行期间不会被重新计算:

资料来源:[src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx:468-484], [src/frontend/src/style/applies.css:116-138]

节点最小化

可以最小化节点以节省复杂流程中的空间:

资料来源:[src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx:190-208]

结论

Langflow 中的节点和边缘系统为构建 AI 工作流提供了灵活的可视化编程界面。节点表示具有特定功能的组件,而 edges 表示这些组件之间的数据流。该系统包括全面的验证、状态指示器和交互功能,可帮助用户有效地创建和调试其流程。

通过 ReactFlow 基础,Langflow 提供了高度交互的体验,用户可以通过连接兼容的组件并配置其参数来直观地构建复杂的工作流程。

流程管理

相关源文件

Langflow 中的流管理是指负责在应用程序内创建、保存、加载和组织流的一组进程和系统。流表示将各种 AI 组件连接在一起以构建应用程序的可视化工作流。本页记录了如何在 Langflow 系统中存储、组织和管理流。

有关流程和节点连接的可视化编辑的信息,请参阅 Flow Editor 系统。

流数据模型

Langflow 中的流由结构化数据模型表示,该模型包含存储和执行工作流所需的所有信息。

流的关键属性包括:

  • id:唯一标识符
  • name:流的显示名称
  • description:可选描述
  • user_id:流的所有者
  • folder_id:包含流的父文件夹
  • data:包含节点、边缘和其他流程详细信息的 JSON 对象
  • is_component:指示流是否为可重用组件的标志
  • endpoint_name:可选的自定义 API 终端节点名称
  • access_type:隐私设置(PRIVATE、PUBLIC、UNLISTED)

来源:来源/backend/base/langflow/api/v1/flows.py36-137

流存储架构

Langflow 为 flow 实现了双重存储策略:

  1. 数据库存储:使用 SQLModel 的主存储,其中包含流和相关数据的表
  2. 文件系统存储(可选):通过 JSON 文件进行辅助存储以实现冗余

创建或更新流时,会将其保存到数据库,如果提供了路径,则会选择性地保存到文件系统中。

来源:来源/backend/base/langflow/api/v1/flows.py47-54 来源/backend/base/langflow/api/v1/flows.py136-152

流的 CRUD作

创建流

创建新流时:

API 通过向重复名称附加数字来自动处理名称冲突(例如,“MyFlow”、“MyFlow (1)”)。指定终端节点名称时,终端节点名称同样是唯一的。

来源:来源/backend/base/langflow/api/v1/flows.py56-136 来源/backend/base/langflow/api/v1/flows.py139-168

检索流

Langflow 提供了多个用于检索流的终端节点:

  • GET /flows/:获取所有流(带筛选选项)
  • GET /flows/{flow_id}:获取特定流
  • GET /flows/public_flow/{flow_id}:获取公开共享的流

响应包括所有流元数据和完整的流定义(节点、边缘等)。

来源:来源/backend/base/langflow/api/v1/flows.py171-253 来源/backend/base/langflow/api/v1/flows.py274-284

更新流

流通过终端节点进行更新:PATCH /flows/{flow_id}

更新流程时,您可以修改任何属性,包括名称、描述、数据、文件夹分配等。如果配置为这样做,系统会在保存之前自动删除敏感数据,例如 API 密钥。

来源:来源/backend/base/langflow/api/v1/flows.py302-364

删除流

删除流时,系统会执行级联删除以删除所有相关数据:

该函数可确保删除所有相关数据,从而防止数据库中出现孤立记录。cascade_delete_flow

来源:来源/backend/base/langflow/api/v1/flows.py367-385 来源/后端/基础/langflow/api/utils.py291-303

流组织

文件夹结构

Langflow 中的流被组织到文件夹中:

每个流程都必须属于一个文件夹。如果在创建过程中未指定文件夹,则流程将自动分配给默认的 “My Collection” 文件夹。

来源:来源/backend/base/langflow/api/v1/flows.py118-126 来源/后端/基础/langflow/api/v1/folders.py35-92

文件夹作

文件夹 API 为以下各项提供端点:

  • 创建文件夹:POST /folders/
  • 检索文件夹: 和GET /folders/GET /folders/{folder_id}
  • 更新文件夹:PATCH /folders/{folder_id}
  • 删除文件夹:DELETE /folders/{folder_id}

删除文件夹后,可以删除其中的所有流或将其移动到默认文件夹。

来源:来源/后端/基础/langflow/api/v1/folders.py94-163 来源/后端/基础/langflow/api/v1/folders.py226-255

流导入和导出

导出流

流可以单独或批量导出:

导出过程会在生成导出文件之前自动删除 API 密钥等敏感信息。

来源:来源/backend/base/langflow/api/v1/flows.py483-522

导入流

可以从 JSON 文件或 ZIP 存档导入流:

导入过程通过为导入的流生成唯一名称来处理名称冲突。

来源:来源/backend/base/langflow/api/v1/flows.py408-451

前端流管理

前端使用 Zustand store 来管理 flow 状态:

提供:flowsManagerStore

  • 电流跟踪
  • 可用流列表
  • 自动保存功能
  • 撤消/重做历史记录管理

来源:来源/前端/来源/商店/flowsManagerStore.ts19-150 来源/前端/来源/类型/zustand/flowsManager/index.ts1-39

撤消/重做功能

前端实现了用于流编辑的撤消/重做功能:

此实施对过去和未来状态使用单独的堆栈,允许用户浏览流程的编辑历史记录。

来源:来源/前端/来源/商店/flowsManagerStore.ts59-124

流相互关系

流与系统中的其他几个组件有连接:

这些关系可确保:

  1. 聊天历史记录随流一起保留
  2. 存储执行记录以供调试
  3. 构建缓存可加快重复执行的速度
  4. 上传的文件仍与其流关联

删除流时,级联删除过程将删除所有相关记录。

来源:来源/后端/基础/langflow/api/utils.py291-303 来源/backend/base/langflow/memory.py73-99 src/backend/base/langflow/api/v1/monitor.py24-43

流访问控制

流支持不同的访问类型:

访问类型

描述

私人

违约。只有所有者可以查看和编辑

公共

任何拥有该链接的人都可以查看和运行流

上市

未公开列出,但可通过链接访问

公共流使用特殊机制根据客户端 ID 和流 ID 创建确定性会话 ID,从而确保匿名用户的行为一致。

来源:来源/后端/基础/langflow/api/utils.py315-372 来源/backend/base/langflow/api/v1/flows.py287-299

总结

Langflow 中的流管理提供了一个用于创建、组织和共享 AI 工作流的综合系统。双存储方法(数据库和文件系统)可确保数据持久性,而基于文件夹的组织可帮助用户管理流集合。具有撤消/重做功能的前端状态管理可提供流畅的编辑体验,而导入/导出功能支持在用户或实例之间轻松共享流。

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

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

相关文章

驱动-定时-秒-字符设备

文章目录 目的相关资料参考实验驱动程序-timer_dev.c编译文件-Makefile测试程序-timer.c分析 加载驱动-运行测试程序总结 目的 通过定时器timer_list、字符设备、规避竞争关系-原子操作&#xff0c;综合运用 实现一个程序&#xff0c;加深之前知识的理解。 实现字符设备驱动框…

[Java实战]Spring Boot整合Kafka:高吞吐量消息系统实战(二十七)

[Java实战]Spring Boot整合Kafka&#xff1a;高吞吐量消息系统实战&#xff08;二十七&#xff09; 一、引言 Apache Kafka作为一款高吞吐量、低延迟的分布式消息队列系统&#xff0c;广泛应用于实时数据处理、日志收集和事件驱动架构。结合Spring Boot的自动化配置能力&…

Kotlin Multiplatform--04:经验总结(持续更新)

Kotlin Multiplatform--04&#xff1a;经验总结&#xff08;持续更新&#xff09; 引言 引言 本章用来记载笔者开发过程中的一些经验总结 一、Ktor设置Header 在官方文档中&#xff0c;想要设置Header的示例代码如下&#xff1a; client.get("https://ktor.io&qu…

在 Ubuntu 系统中,将 JAR 包安装为服务

在 Ubuntu 系统中&#xff0c;将 JAR 包安装为服务可以通过 systemd 来实现。以下是详细的操作步骤&#xff1a; 准备工作 确保 JAR 文件路径和 Java 运行时环境已准备好。验证 Java 是否可用&#xff1a; java -version创建 systemd 服务文件 systemd 的服务文件通常位于 …

电商项目-商品微服务-品牌管理微服务开发

一、功能分析 品牌管理微服务包括&#xff1a; &#xff08;1&#xff09;查询全部列表数据 &#xff08;2&#xff09;根据ID查询实体数据 &#xff08;3&#xff09;增加 &#xff08;4&#xff09;修改 &#xff08;5&#xff09;删除 &#xff08;6&#xff09;分页…

Spring Boot开发—— 整合Lucene构建轻量级毫秒级响应的全文检索引擎

文章目录 一、为什么选择 Lucene?轻量级搜索的底层密码二、核心原理:Lucene 的倒排索引2.1 倒排索引:速度之源2.2 段合并优化策略三、Spring Boot集成Lucene实战3.1 依赖配置3.2 实体与索引设计3.3 核心索引服务(含异常处理)3.4 使用示例(测试类)四、高级优化技巧4.1 索…

SpringBootDay1|面试题

目录 一、springboot框架 1、什么是springboot 2、Spring Boot的主要优点 3、springboot核心注解 4、定义banner&#xff08;springboot的logo&#xff09; 5、springboot配置文件 6、springboot 整合 jdbc 二、面试题 1&#xff09;springmvc的作用 ​编辑 2&#x…

jQuery Ajax中dataType 和 content-type 参数的作用详解

jQuery Ajax中dataType与contentType参数解析 一、核心概念对比 参数作用对象数据类型默认值dataType响应数据预期接收的数据格式jQuery自动判断&#xff08;根据响应头MIME类型&#xff09;contentType请求数据发送数据的编码格式application/x-www-form-urlencoded 二、da…

几款常用的虚拟串口模拟器

几款常用的虚拟串口模拟器&#xff08;Virtual Serial Port Emulator&#xff09;&#xff0c;适用于 Windows 系统&#xff0c;可用于开发和调试串口通信应用&#xff1a; 1. com0com (开源免费) 特点&#xff1a; 完全开源免费&#xff0c;无功能限制。 可创建多个虚拟串口…

LLM笔记(六)线性代数

公式速查表 1. 向量与矩阵&#xff1a;表示、转换与知识存储的基础 向量表示 (Vectors): 语义的载体 在LLM中&#xff0c;向量 x ∈ R d \mathbf{x}\in\mathbb{R}^d x∈Rd 是信息的基本单元&#xff0c;承载着丰富的语义信息&#xff1a; 词嵌入向量 (Word Embeddings)&am…

[特殊字符] Word2Vec:将词映射到高维空间,它到底能解决什么问题?

一、在 Word2Vec 之前,我们怎么处理语言? 在 Word2Vec 出现之前,自然语言处理更多是“工程方法”,例如字符串匹配、关键词提取、正则规则...。但这些表示通常缺乏语义,词与词之间看不出任何联系以及非常浅显。当然,技术没有好坏,只有适合的场景。例如: 关键词匹配非常…

栈和队列的模拟实现

栈和队列的模拟实现 容器适配器priority_queue(优先级队列&#xff09;priority_queue的使用priority_queue的模拟实现&#xff1a; 仿函数什么叫仿函数&#xff1f;需要自己实现仿函数的情况&#xff1a; 栈的模拟实现队列的模拟实现deque&#xff08;vector和list的缝合怪&am…

idea本地debug断点小技巧

idea本地debug断点小技巧 简单的设置断点条件 断点后&#xff0c;右键这个断点&#xff0c;可以在 condition 中填写能得出布尔的表达式 a 1 你如果写如下&#xff0c;表示先给他赋值&#xff0c;然后断住 a 2; true 断点后设置某个变量的值 在 debug 区域可以设置变量…

Oracle中如何解决FREE BUFFER WAITS

基于性能上的考虑&#xff0c;服务器进程在扫描LRU主列的同时&#xff0c;会将脏块移至LRU-W列&#xff0c;如果发现没有足够可用&#xff08;可替换&#xff09;的BUFFER CACHE&#xff0c;进程并不会无止尽地扫描整条LRU主列&#xff0c;而是在扫描到某个阀值&#xff08;该阀…

Git命令使用全攻略:从创建分支到合并的完整流程

Git命令使用全攻略&#xff1a;从创建分支到合并的完整流程 引言一、初始化项目与基础配置1.1 克隆远程仓库1.2 查看当前分支状态 二、创建与管理分支2.1 从main分支创建新功能分支2.2 查看分支列表2.3 提交代码到新分支2.4 推送分支到GitHub 三、版本发布与标签管理3.1 创建轻…

MATLAB跳动的爱心

520&#xff0c;一个会动的心~~~ function particleHeart2 % author : slandarer% 所需匿名函数 col1Func(n) repmat([255,158,196]./255,[n,1])repmat([-39,-81,-56]./255,[n,1]).*rand([n,1]); col2Func(n) repmat([118,156,216]./255,[n,1])repmat([137,99,39].*.1./255,[n,…

Go的单测gomock及覆盖率命令

安装gomock&#xff1a; go get github.com/golang/mock/gomockgo get github.com/golang/mock/mockgen 使用 mockgen 生成 mock 代码: 参考 mockgen -sourceservice/user.go -destinationservice /mocks/mock_user_service.go -packagemocks go test -coverprofilecoverage.ou…

vue添加loading后修复页面渲染问题

问题&#xff1a;想要通过选择流程&#xff08;1&#xff09;后加载出角色信息&#xff08;2&#xff09; 选择后无法展示经过排查&#xff0c;再调用接口给角色数组赋值后&#xff0c;页面在接口调用完之前就已经渲染完成。接口是采用的异步加载解决&#xff1a;loadingRoles…

Python入门手册:Python简介,什么是Python

在当今数字化时代&#xff0c;编程语言犹如一把把神奇的钥匙&#xff0c;能够开启通往技术世界的大门。而Python&#xff0c;无疑是其中最闪耀的一颗明星。今天&#xff0c;就让我们一起走进Python的世界&#xff0c;从它的起源、应用领域以及优缺点三个方面&#xff0c;来全面…

用PyTorch在超大规模下训练深度学习模型:并行策略全解析

我猜咱们每个人肯定都累坏了&#xff0c;天天追着 LLM 研究社区跑&#xff0c;感觉每天都冒出个新的最牛模型&#xff0c;把之前的基准都给打破了呢。要是你好奇为啥创新速度能这么快&#xff0c;那主要就是研究人员能够在超大规模下训练和验证模型啦&#xff0c;这全靠并行计算…