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.pswp.cn/news/906399.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/906399.shtml
英文地址,請注明出處:http://en.pswp.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;這全靠并行計算…