掌握 LangChain 文檔處理核心:Document Loaders 與 Text Splitters 全解析

🐇明明跟你說過:個人主頁

🏅個人專欄:《深度探秘:AI界的007》?🏅

🔖行路有良友,便是天堂🔖

目錄

一、引言

1、什么是LangChain

2、LangChain 在智能應用中的作用

二、Document Loaders 概述

1、什么是 Document Loader

2、常見的 Loader 類型

三、Text Splitters 概述

1、為什么需要 Text Splitter

2、常見的文本切分策略

四、實戰示例

1、使用 PDFLoader + RecursiveCharacterTextSplitter 構建文檔塊

2、多文檔加載并批量切分


一、引言

1、什么是LangChain

想象一下,你正在和 ChatGPT 聊天,問它一個復雜的問題,比如:“我上傳的這份 PDF 文檔里,第三章說的那個算法和第五章的原理有啥關系?”
這時候,你希望 AI 不光能看懂問題,還能讀懂文檔、記住上下文、把答案說清楚,對吧?😎

這,就是 LangChain 登場的地方!


🌟 簡單一句話:

LangChain 是一個幫你構建 “更聰明的 AI 應用” 的框架。

🧩 它能做什么?

LangChain 像一個多才多藝的管家,替你打理 AI 應用的多個方面:

能力舉個栗子 🌰
📄 文檔讀取支持 PDF、Word、網頁、Notion 等多種格式!
?? 文本切分把長文章變成模型“能吃得下”的小塊塊
📦 存儲與檢索把文檔變成向量存在“記憶庫”里,方便快速查找
🧠 調用大模型接入 OpenAI、Claude、Ollama 等模型對話
🪜 工作流鏈條把多個步驟串成“智能流程”,比如 讀取→提問→總結

🤔 舉個真實的例子:

你想構建一個 智能客服機器人,它能自動讀取你的公司文檔、PDF 手冊、產品說明書,并且回答用戶的問題。

你只要這樣做:

  1. ? 用 LangChain 的 Document Loader 讀取資料

  2. ?? 用 Text Splitter 把文檔切成合適的大小

  3. 📦 存到向量數據庫中,比如 FAISS 或 Elasticsearch

  4. 🤖 用戶提問 → LangChain 幫你搜索相關文檔片段

  5. 💬 調用大模型回答問題,還能引用來源!

是不是有點小驚艷??


🛠? 為什么開發者喜歡它?

  • 模塊化:想換個模型、數據庫?一行代碼改完!

  • 靈活性:適合快速搭建原型,也能打造企業級系統

  • 社區活躍:文檔全、插件多,成長飛快!


🏁 總結

LangChain = LLM 的超級助理工具箱🧰 + AI 應用的魔法管家🪄

如果你想讓 AI 不止聊天,還能 讀文檔、處理流程、接數據源、當助手——LangChain 會是你的好搭檔!

?


2、LangChain 在智能應用中的作用

在過去,我們想讓 AI 做事,大多是“一個模型回答一個問題”——比如問 ChatGPT:“天氣怎么樣?”它會給你一個答案。
但當我們想讓 AI 真正“工作起來”,比如:

  • 📄 閱讀上百頁的 PDF 文檔

  • 📚 理解多個文件之間的關系

  • 🧠 記住用戶的歷史提問

  • ?? 調用外部工具,比如數據庫、搜索引擎、API

  • 🔁 串聯多個步驟,像人一樣完成一項任務

👉 光靠一個大模型可不夠了!這時,就輪到 LangChain 登場了!


🧰 LangChain 的作用是什么?

可以簡單理解為:

LangChain 是連接大模型(LLM)與真實世界的橋梁🌉,讓你的 AI 應用更聰明、更有用、更像“工具人”。

? 它解決了哪些問題?

智能應用需求LangChain 幫你搞定 ??
加載和處理各種格式文檔使用 Document Loaders
將大文本拆分為小塊供模型處理使用 Text Splitters
存儲、檢索知識片段集成向量數據庫(如 FAISS、Chroma 等)
結合上下文做連續對話支持 Memory 模塊
自動調用外部工具 / APIAgent + Tool 模塊
多步驟任務處理流程使用 Chain(鏈式執行)機制

🧠 舉個例子:

你要做一個 “AI 法律助手”,目標是能:

  1. 📂 讀取幾十份法律文書

  2. 🤔 回答用戶關于具體條款的問題

  3. 💡 根據上下文推薦可能適用的法規

  4. 📬 自動生成答復郵件或草案

用 LangChain 的做法大致是這樣:

  • 用 Document Loaders 加載文書內容 📄

  • 用 Text Splitters 切分成模型能處理的小段 ??

  • 用 Embedding + 向量數據庫 存儲和快速檢索 🧠

  • 用 LLM + Chain 回答用戶提問,引用相關文檔 💬

  • 用 Agent + Tool 自動生成郵件并發送 📧

是不是已經能腦補出整個系統架構了?😆


二、Document Loaders 概述

1、什么是 Document Loader

在構建 AI 應用時,我們經常會遇到這樣的任務:

“把一份 PDF 文檔、網頁、Markdown 文件、甚至 Notion 頁面內容,喂給大模型,讓它理解并回答問題。”

問題來了:這些內容格式五花八門,模型又只接受純文本或結構化數據,我們該怎么辦?🤔

這時,LangChain 提供的 Document Loader(文檔加載器) 就派上用場啦!


Document Loader 就像一個“格式轉換器”+“文件導入助手”,負責把各種各樣的文檔 👉 變成大模型能理解的“純文本+元信息”結構。

📦 一個典型的加載結果長這樣:

{"page_content": "這里是文檔的正文內容……","metadata": {"source": "my_file.pdf","page": 2}
}

這個結構非常適合后續切分、嵌入向量、檢索和問答等操作。


📚 支持哪些格式?

LangChain 內置或擴展支持的 Document Loaders 非常多,幾乎覆蓋常見的所有數據源:

類型舉例
📄 文件類.txt, .pdf, .docx, .md, .csv
🌐 網絡類網頁、博客、RSS、Sitemap
📋 協作類Notion、Google Docs、Slack、Confluence
🗃? 數據類JSON、SQL、Elasticsearch、MongoDB 等
🧩 其他自定義 Loader,只要你能解析,都能加!

Document Loader 是智能應用中第一個“入口守門員”👮?♂?,它幫你把“各種格式的知識”變成“模型可讀的文本”。

沒有它,大模型就只能瞪著 PDF 干瞪眼了 😂


2、常見的 Loader 類型

1?? 本地文件加載器(File Loaders)

這些 Loader 適用于你電腦里的各種文檔,比如:

格式Loader 名稱說明
.txtTextLoader加載純文本文件
.pdfPyPDFLoader, PDFMinerLoader支持按頁加載 PDF 文檔
.docxUnstructuredWordDocumentLoader解析 Word 文件
.mdUnstructuredMarkdownLoader加載 Markdown 文件
.csvCSVLoader逐行加載 CSV 文件內容

📌 提示:PDF 支持的 Loader 有多個,可按需選擇,比如:

  • PyPDFLoader: 按頁加載,保留分頁信息

  • PDFPlumberLoader: 更適合帶復雜格式的 PDF


2?? 網絡內容加載器(Web Loaders)

想讓 AI 看網頁、博客、Sitemap?這些 Loader 派上用場:

數據源Loader 名稱說明
網頁WebBaseLoader讀取網頁內容(可自定義解析器)
RSSRSSFeedLoader加載 RSS 訂閱內容
SitemapSitemapLoader掃描整站結構并加載頁面內容

3?? 協作平臺加載器(SaaS & Cloud Docs)

適用于現代團隊的“云端知識庫”,比如:

平臺Loader 名稱說明
NotionNotionDBLoader加載 Notion 數據庫中的頁面
Google DocsGoogleDriveLoader加載 Google 文檔、表格等
GitHubGitHubRepoLoader加載 GitHub 倉庫中的代碼文件或文檔
SlackSlackLoader加載 Slack 聊天記錄

?📝 很適合用于構建企業內部知識問答系統!


4?? 數據庫 / 數據源加載器(DB/Data Source)

當你的知識存儲在結構化數據庫或其他系統中時:

數據源Loader 名稱說明
SQL 數據庫SQLDatabaseLoader連接數據庫并提取數據
ElasticsearchElasticsearchLoader加載已有索引中的數據
MongoDBMongoDBLoader讀取 MongoDB 集合內容
JSONJSONLoader加載本地或遠程 JSON 文件

🔗 有些數據庫 Loader 可與 ORM / SQLAlchemy 結合使用。


5?? 自定義/非結構化內容加載器

當你遇到“雜七雜八”的文檔,比如 HTML、掃描圖像、郵件正文……也不用怕:

類型Loader 名稱說明
任意文本塊UnstructuredFileLoader自動識別結構,適配多種格式(PDF, HTML, EML等)
郵件UnstructuredEmailLoader提取 EML/MSG 郵件內容
圖片UnstructuredImageLoaderOCR 圖像并提取文字內容(需 Tesseract)

🧠 “Unstructured” 系列 Loader 是 LangChain 的秘密武器,適配面非常廣!


? 總結一張圖:Loader 類型一覽表

📁 本地文件類 ? ? → Text, PDF, Word, Markdown, CSV
🌐 網絡頁面類 ? ? → HTML 網頁, RSS, Sitemap
?? 協作平臺類 ? ? → Notion, Google Docs, GitHub, Slack
🗃? 數據源/數據庫類 → SQL, MongoDB, Elasticsearch, JSON
🌀 非結構化類 ? ? → Email, HTML, OCR 圖片, 多格式文檔


三、Text Splitters 概述

1、為什么需要 Text Splitter

當我們使用大語言模型(LLM)處理文檔時,比如問它:

“請總結這份 200 頁的產品白皮書”📄

你可能會遇到👇這種“靈魂打擊”:

? 模型回復:文本太長,我讀不下去了!

因為 大多數模型對輸入長度是有限制的(比如 GPT-4 的上下文長度是幾千到幾萬 token,不等于幾萬字)。文檔太長會:

  • ? 超出 token 限制,直接報錯

  • ? 信息太雜,模型難以理解上下文

  • ? 檢索性能下降,影響回答質量

于是,LangChain 中的 “Text Splitter(文本切分器)” 就成了救場英雄 🦸?♂?!


🧠 Text Splitter 是干嘛的?

通俗來說:

Text Splitter 就是一個“聰明的剪刀 ??”,它把一整段大文本,裁剪成模型可以處理的小段落,并盡量保留上下文邏輯。


? 為什么一定要切分?

原因舉個例子 🌰
📏 模型有輸入長度限制一次最多只能看幾千 token
🔍 檢索更精準小段落更容易關聯關鍵詞
🧠 上下文更清晰避免模型迷失在長篇大論中
🧪 后續處理更靈活每段可以獨立做嵌入、摘要、問答等操作



2、常見的文本切分策略

🧱 1. CharacterTextSplitter —— 純文本切分磚頭式 🧱

📌 按固定字符數切分文本,最基礎的策略。

  • 優點:簡單粗暴,適用于沒有結構的純文本

  • 缺點:容易在中間截斷句子,影響上下文理解

?🧠 適合場景:純文本日志、沒有結構的長段文字


🧠 2. RecursiveCharacterTextSplitter —— 遞歸智能剪刀 ??

📌 優先按段落 > 句子 > 單詞 > 字符切分,保持最大完整性。

  • 優點:保留語義結構,盡可能避免切斷上下文

  • 缺點:略比 CharacterTextSplitter 慢一些,但更智能

🌟 這是 LangChain 默認推薦使用的切分器!

🧠 適合場景:通用文本、PDF、網頁內容、問答任務等


🔡 3. TokenTextSplitter —— 模型視角的切分器 🔍

📌 按 Token 數量切分文本,而不是字符數!

  • 優點:精確控制模型的輸入上限,避免超出上下文窗口

  • 缺點:需要引入 Tokenizer(如 OpenAI 或 HuggingFace)

🔍 每個 token ≈ 0.75 個英文單詞,適合多語言文本處理?

🧠 適合場景:需要嚴格控制 token 長度(如 GPT-3.5/4)


📄 4. MarkdownTextSplitter —— Markdown 專用 ??

📌 識別標題、列表、代碼塊等 Markdown 結構,有結構感地切分。

  • 優點:支持 Markdown 語法,切分結果更有層次感

  • 缺點:不適合非 Markdown 文檔

?🧠 適合場景:知識庫、技術文檔、博客文章


🧬 5. SpacyTextSplitter —— 語言學視角的切分器 📚

📌 用 NLP 工具 Spacy 對文本按句子切分,更具語言理解力。

  • 優點:語義層面更精細,尤其適合自然語言句子

  • 缺點:依賴第三方庫,處理速度較慢

?🧠 適合場景:高質量問答、摘要、學術文章


🧾 一張表對比:快速選擇適合的切分器 ?

Splitter 名稱切分方式優點適用場景
CharacterTextSplitter按字符數切分簡單快速純文本
RecursiveCharacterTextSplitter遞歸結構切分最推薦,保留語義通用文檔、問答系統
TokenTextSplitter按 token 數切分精準控制輸入Token 限制敏感任務
MarkdownTextSplitter識別 Markdown 結構有層次感技術文檔、博客
SpacyTextSplitter按句子切分更符合語言邏輯NLP 高質量處理


四、實戰示例

1、使用 PDFLoader + RecursiveCharacterTextSplitter 構建文檔塊

🧠 系統目標

構建一個能同時處理:

  • ? 文本內容(用于問答/摘要)

  • 🖼 圖片內容(用于圖文搜索、OCR 或視覺問答)

?🧱 系統組件架構

[PDF 文檔]
? ?│
? ?├── PDF 文本塊提取 ? ? ? ---> 文本切分(RecursiveCharacterTextSplitter)
? ?│ ? ? ? ? ? ? ? ? ? ? ? ? ? ?↓
? ?│ ? ? ? ? ? ? ? ? ? ? ? ?文本文檔塊 (List[Document])
? ?│
? ?├── PDF 圖片提取 ? ? ? ? ---> 圖片切片、OCR(可選)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ↓
? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖片數據塊 (List[ImageDocument])
? ?│
? ?└── 圖文融合文檔構建 ? ? ?---> 圖文統一格式:帶文本+圖片的 Document
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ↓
? ? ? ? ? ? ? ? ? ? ? ? 最終圖文文檔塊 (List[FusedDocument])


? 第一步:提取文本塊

from langchain.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter# 加載 PDF 文本
pdf_loader = PyPDFLoader("example.pdf")
pages = pdf_loader.load()# 切分文本塊
splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=100)
text_chunks = splitter.split_documents(pages)

第二步:提取圖片塊 + 可選切分/OCR

import fitz  # PyMuPDF
from PIL import Image
from io import BytesIOimage_chunks = []doc = fitz.open("example.pdf")for page_num, page in enumerate(doc):images = page.get_images(full=True)for img_index, img in enumerate(images):xref = img[0]base_image = doc.extract_image(xref)image_bytes = base_image["image"]image_ext = base_image["ext"]image = Image.open(BytesIO(image_bytes))# 可選:切分圖片或運行 OCRimage_chunk = {"page": page_num + 1,"index": img_index + 1,"image": image,"description": f"第{page_num+1}頁的圖片{img_index+1}"}image_chunks.append(image_chunk)

💡 OCR 可選:可結合 pytesseract 提取圖片中的文字以增強圖文問答。

🔗 第三步:圖文融合文檔塊

我們把圖像信息整合進 LangChain 的 Document 中(或自定義類):

from langchain.schema import Documentfused_documents = []# 文本塊先入
for chunk in text_chunks:fused_documents.append(chunk)# 圖片塊轉為 Document(注意可自定義內容結構)
for image_data in image_chunks:doc = Document(page_content=f"[圖像] {image_data['description']}",metadata={"type": "image","page": image_data["page"],"image_obj": image_data["image"]})fused_documents.append(doc)

📌 建議:將圖像保存為本地路徑或上傳后使用 URL,再嵌入 metadata。

🤖 最終用途(示例)

構建向量索引(僅文本內容 + OCR 圖像文字):

from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings# 只索引文本文檔
vectorstore = FAISS.from_documents(text_chunks, OpenAIEmbeddings())

問答應用(圖文支持)

  • 用戶提問時,匹配文本塊

  • 如果命中含圖文 metadata 的塊,可聯動前端展示圖片

  • 圖片塊也可通過關鍵詞 OCR 搜索檢索


2、多文檔加載并批量切分

要實現 多 PDF 文檔的批量加載 + 切分(支持后續統一向量化、入庫),我們可以使用 PyPDFLoaderUnstructuredPDFLoader,配合 RecursiveCharacterTextSplitter 進行統一處理。

下面是完整且實用的代碼示例 ?

🧠 完整代碼邏輯:

import os
from langchain.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter# 設置你的 PDF 文件夾路徑
pdf_folder = "./docs"# 初始化空列表收集所有文檔
all_documents = []# 遍歷目錄下所有 PDF 文件
for filename in os.listdir(pdf_folder):if filename.endswith(".pdf"):file_path = os.path.join(pdf_folder, filename)# 加載當前 PDFloader = PyPDFLoader(file_path)documents = loader.load()# 添加文檔元信息(可選)for doc in documents:doc.metadata["source_file"] = filenameall_documents.extend(documents)print(f"總共加載了 {len(all_documents)} 個頁面 📝")# 切分文檔塊
splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
split_docs = splitter.split_documents(all_documents)print(f"切分后文檔塊數: {len(split_docs)} ?")

📌 輸出樣例:

總共加載了 85 個頁面 📝
切分后文檔塊數: 431 ?

🧰 補充建議

功能方法
📌 元信息添加用于記錄文件名、頁碼等,方便溯源
🧠 多格式支持UnstructuredLoader 支持 Word、HTML、TXT 等
💾 存入向量庫FAISS.from_documents()Chroma.from_documents()
🔐 大模型向量化使用 OpenAIEmbeddingsHuggingFaceEmbeddings

💕💕💕每一次的分享都是一次成長的旅程,感謝您的陪伴和關注。希望這些文章能陪伴您走過技術的一段旅程,共同見證成長和進步!😺😺😺

🧨🧨🧨讓我們一起在技術的海洋中探索前行,共同書寫美好的未來!!!???

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/81040.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/81040.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/81040.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

開發工具指南

后端運維場用工具 工具文檔簡介1panel安裝指南運維管理面板網盤功能介紹網盤jenkins可以通過1panel 進行安裝jpom輔助安裝文檔后端項目發布工具

拷貝構造函數如果不加引用會怎樣?

博主介紹:程序喵大人 35- 資深C/C/Rust/Android/iOS客戶端開發10年大廠工作經驗嵌入式/人工智能/自動駕駛/音視頻/游戲開發入門級選手《C20高級編程》《C23高級編程》等多本書籍著譯者更多原創精品文章,首發gzh,見文末👇&#x1…

UE5中制作動態數字Decal

在進行城市道路編輯時,經常需要繪制人行道、交通標志、停車線等路面元素。如果能夠使用具有動態修改功能的 Decal(貼花),將大大提升編輯效率和靈活性。接下來講解如何制作。 1.首先準備一張包含所需元素的Texture,這里…

【Leetcode 每日一題】2900. 最長相鄰不相等子序列 I

問題背景 給你一個下標從 0 0 0 開始的字符串數組 w o r d s words words,和一個下標從 0 0 0 開始的 二進制 數組 g r o u p s groups groups,兩個數組長度都是 n n n。 你需要從 w o r d s words words 中選出 最長子序列。如果對于序列中的任何…

ProfibusDP主站轉ModbusRTU/TCP與橫河AXG電磁流量計通訊案例

ProfibusDP主站轉ModbusRTU/TCP與橫河AXG電磁流量計通訊案例 在當今數字化工業時代,智能儀表與控制系統的互聯互通成為提高生產效率和管理水平的關鍵。橫河AXG電磁流量計作為一款高性能的流量測量設備,在多個行業得到了廣泛應用。而Profibus DP作為一種…

微軟向現實低頭:悄悄延長Windows 10的Microsoft 365支持

快科技5月11日消息,Windows 10將在今年10月14日正式結束支持,此前微軟曾明確表示,Microsoft 365(M365)應用,如Outlook、Teams、OneDrive、Word、Excel等,也將隨之停止支持。 不過無法升級至Win…

【Spring AI】模型記憶持久化 + 自動加載記憶上下文

當我們利用大模型進行開發時,有時會因為項目重啟而丟失模型的記憶,會給開發的過程帶來不方便 接下來我將介紹如何將模型的記憶持久化,并保證在項目重啟后依然能能夠正常加載記憶上下文。 我們在配置ChatClient時,由于想要實現模…

(C語言)超市管理系統 (正式版)(指針)(數據結構)(清屏操作)(文件讀寫)

目錄 前言: 源代碼: product.h product.c fileio.h fileio.c main.c 代碼解析: 一、程序結構概述 二、product.c 函數詳解 1. 初始化商品列表 Init_products 2. 添加商品 add_product 3. 顯示商品 display_products 4. 修改商品 mo…

[服務器面板對比] 寶塔、aaPanel、Plesk、cPanel 哪家強?功能、性能與價格橫評 (2025)

對于很多 Linux 服務器用戶來說,直接面對黑乎乎的命令行界面 (CLI) 進行各種操作,雖然強大靈活,但也確實有一定的學習門檻和操作復雜度。特別是當你需要管理多個網站、數據庫、FTP賬戶,或者進行日常的軟件安裝、安全配置、日志查看…

WebGL圖形編程實戰【7】:變換流水線 × 坐標系與矩陣精講

變換流水線 #mermaid-svg-Omabd9LSNCdIvWqB {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Omabd9LSNCdIvWqB .error-icon{fill:#552222;}#mermaid-svg-Omabd9LSNCdIvWqB .error-text{fill:#552222;stroke:#552222;…

電力電容器故障利用沃倫森(WARENSEN)工業設備智能運維系統解決方案

行業工況背景 當配電室報警顯示“電容器故障”時,管理者可能會感到焦慮。沃倫森(WARENSEN)憑借十多年的電力補償設備服務經驗,提供了科學的故障應對流程,幫助避免大部分二次損失。 一、五大常見故障現象快速識別 溫度…

星海智算云平臺部署GPT-SoVITS模型教程

背景 隨著 GPT-SoVITS 在 AI 語音合成領域的廣泛應用,越來越多的個人和團隊開始關注這項前沿技術。你是否也在思考,如何快速、高效地部署并體驗這款強大的聲音克隆模型?遺憾的是,許多本地部署方案不僅配置復雜,而且對…

高吞吐與低延遲的博弈:Kafka與RabbitMQ數據管道實戰指南

摘要 本文全面對比Apache Kafka與RabbitMQ在數據管道中的設計哲學、核心差異及協同方案。結合性能指標、應用場景和企業級實戰案例,揭示Kafka在高吞吐流式處理中的優勢與RabbitMQ在復雜路由和低延遲傳輸方面的獨特特點;介紹了使用Java生態成熟第三方庫(如Apache Kafka Clie…

Python零基礎入門到高手8.4節: 元組與列表的區別

目錄 8.4.1 不可變數據類型 8.4.2 可變數據類型 8.4.3 元組與列表的區別 8.4.4 今天彩票沒中獎 8.4.1 不可變數據類型 不可變數據類型是指不可以對該數據類型進行原地修改,即只讀的數據類型。迄今為止學過的不可變數據類型有字符串,元組。 在使用[]…

無人機數據處理與特征提取技術分析!

一、運行邏輯 1. 數據采集與預處理 多傳感器融合:集成攝像頭、LiDAR、IMU、GPS等傳感器,通過硬件時間戳或PPS信號實現數據同步,確保時空一致性。 邊緣預處理:在無人機端進行數據壓縮(如JPEG、H.265)…

LeetCode 熱題 100 105. 從前序與中序遍歷序列構造二叉樹

LeetCode 熱題 100 | 105. 從前序與中序遍歷序列構造二叉樹 大家好,今天我們來解決一道經典的二叉樹問題——從前序與中序遍歷序列構造二叉樹。這道題在 LeetCode 上被標記為中等難度,要求根據給定的前序遍歷和中序遍歷序列,構造并返回二叉樹…

CSS- 1.1 css選擇器

本系列可作為前端學習系列的筆記,代碼的運行環境是在HBuilder中,小編會將代碼復制下來,大家復制下來就可以練習了,方便大家學習。 HTML系列文章 已經收錄在前端專欄,有需要的寶寶們可以點擊前端專欄查看! 系…

MongoClient和AsyncIOMotorClient的區別和用法

示例代碼: from motor.motor_asyncio import AsyncIOMotorClient from pymongo import MongoClient🔍 這兩個庫分別是: 名字說明舉個例子pymongo.MongoClient同步版 的 MongoDB 客戶端(常規阻塞式操作)你在主線程里一…

5.15打卡

浙大疏錦行 DAY 26 函數專題1 知識點回顧: 1. 函數的定義 2. 變量作用域:局部變量和全局變量 3. 函數的參數類型:位置參數、默認參數、不定參數 4. 傳遞參數的手段:關鍵詞參數 5. 傳遞參數的順序:同時出現三種參數…

針對面試-mysql篇

1.如何定位慢查詢? 1.1.介紹一下當時產生問題的場景(我們當時的接口測試的時候非常的慢,壓測的結果大概5秒鐘)),可以監測出哪個接口,最終因為是sql的問題 1.2.我們系統中當時采用了運維工具(Skywalking就是2秒,一旦sql執行超過2秒…