AI(學習筆記第六課) 使用langchain進行AI開發 load documents(csv和文件夾)

文章目錄

  • AI(學習筆記第六課) 使用langchain進行AI開發 load documents(csv和文件夾)
  • 學習內容:
    • 1.load documents(csv)
      • 1.1 學習`url`
      • 1.2 `load csv`文件
        • 1.2.1 默認`load`
        • 1.2.2 `csv`文件內容
        • 1.2.2 執行`csv`文件的`load`
      • 1.3 Customizing the CSV parsing and loading(自定義`loader`)
      • 1.3.1 實現代碼
      • 1.3.2 代碼執行
      • 1.4 Specify a column to identify the document source(執行列來標明`source`)
        • 1.4.1 實現`source`指定的代碼
        • 1.4.2 執行`source`指定的代碼
      • 1.3 使用`python`的`tempfile`
        • 1.3.1 `tempfile`使用的代碼
        • 1.3.2 代碼執行
    • 2.load documents(from directory)
      • 2.1 準備數據文件夾
      • 2.2 文件夾`load`的代碼
      • 2.3 `trouble shooting`
        • 2.3.1 出現的問題
        • 2.3.2 使用`git bash`進行安裝
      • 2.4 執行文件夾`load`的代碼

AI(學習筆記第六課) 使用langchain進行AI開發 load documents(csv和文件夾)

  • 使用langchain如何解析csv文件

學習內容:

  • csvload文件
  • 從文件夾中loader文件

1.load documents(csv)

1.1 學習url

  • langchain的load documents(csv)文檔
  • csv文件示例

1.2 load csv文件

1.2.1 默認load
from langchain_community.document_loaders.csv_loader import CSVLoader
import asynciofile_path = r'D:\00_study\07_python\PythonProject\src' \r'\document_loaders\examples\mlb_teams_2012.csv'async def load_csv():loader = CSVLoader(file_path=file_path)data = loader.load()for record in data[:2]:print(record)asyncio.run(load_csv())
1.2.2 csv文件內容

這里的示例csv文件

"Team", "Payroll (millions)", "Wins"
"Nationals",     81.34, 98
"Reds",          82.20, 97
"Yankees",      197.96, 95
"Giants",       117.62, 94
"Braves",        83.31, 94
"Athletics",     55.37, 94
"Rangers",      120.51, 93
"Orioles",       81.43, 93
"Rays",          64.17, 90
"Angels",       154.49, 89
"Tigers",       132.30, 88
"Cardinals",    110.30, 88
"Dodgers",       95.14, 86
"White Sox",     96.92, 85
"Brewers",       97.65, 83
"Phillies",     174.54, 81
"Diamondbacks",  74.28, 81
"Pirates",       63.43, 79
"Padres",        55.24, 76
"Mariners",      81.97, 75
"Mets",          93.35, 74
"Blue Jays",     75.48, 73
"Royals",        60.91, 72
"Marlins",      118.07, 69
"Red Sox",      173.18, 69
"Indians",       78.43, 68
"Twins",         94.08, 66
"Rockies",       78.06, 64
"Cubs",          88.19, 61
"Astros",        60.65, 55
1.2.2 執行csv文件的load

對解析出來的data的前兩行的輸出。
在這里插入圖片描述

1.3 Customizing the CSV parsing and loading(自定義loader

1.3.1 實現代碼

async def load_customized_csv():loader = CSVLoader(file_path=file_path,csv_args={"delimiter": ",","quotechar": '"',"fieldnames": ["MLB Team", "Payroll in millions", "Wins"],},)data = loader.load()for record in data[:2]:print(record)asyncio.run(load_customized_csv())

1.3.2 代碼執行

在這里插入圖片描述

1.4 Specify a column to identify the document source(執行列來標明source

上面的例子看出,metadata中的source都是這個csv的所在文件的絕對路徑,那么如果想使用某一個column作為source也是可以的。

1.4.1 實現source指定的代碼
async def load_specify_source():loader = CSVLoader(file_path=file_path,source_column="Team")data = loader.load()for record in data[:2]:print(record)asyncio.run(load_specify_source())
1.4.2 執行source指定的代碼

在這里插入圖片描述

1.3 使用pythontempfile

如果沒有文件,臨時使用內存變量進行模擬csv文件,進行load

1.3.1 tempfile使用的代碼
async def load_with_tempfile():string_data = """"Team", "Payroll (millions)", "Wins""Nationals",     81.34, 98"Reds",          82.20, 97"Yankees",      197.96, 95"Giants",       117.62, 94""".strip()with tempfile.NamedTemporaryFile(delete=False, mode="w+") as temp_file:temp_file.write(string_data)temp_file_path = temp_file.nameloader = CSVLoader(file_path=temp_file_path,)data = loader.load()for record in data[:2]:print(record)asyncio.run(load_specify_source())
1.3.2 代碼執行

在這里插入圖片描述

2.load documents(from directory)

2.1 準備數據文件夾

在這里插入圖片描述

雖然這個文件夾就兩個文件,但是使用這個作為練習的目標文件夾。

2.2 文件夾load的代碼

from langchain_community.document_loaders import DirectoryLoaderdirectory_path = r'D:\00_study\07_python\PythonProject\src' \r'\document_loaders\examples'
loader = DirectoryLoader(directory_path,glob="**/*.md")
docs = loader.load()
print(len(docs))

2.3 trouble shooting

2.3.1 出現的問題

這里,執行的時候發現出現錯誤,讓執行pip install "unstructured[md]",這時候通過pycharm的包管理的界面已經搜索不到了。
在這里插入圖片描述

2.3.2 使用git bash進行安裝

沒有辦法,只能進行命令行的pip install "unstructured"注意,這里的雙引號不能省略

  • 進入git bash
  • 激活venv
    cd /d/00_study/07_python/PythonProject
    source ./venv/Scripts/activate
    
  • 檢查是pip還是pip3
    環境不同,有時候需要執行pip install,有時候需要執行pip3,所以需要檢查一下。
    $ where pip
    C:\Users\Dell\AppData\Local\Microsoft\WindowsApps\pip.exe
    (.venv)
    Dell@finlay-pc MINGW64 /d/00_study/07_python/PythonProject$ where pip3
    D:\00_study\07_python\PythonProject\.venv\Scripts\pip3.exe
    C:\Users\Dell\AppData\Local\Microsoft\WindowsApps\pip3.exe
    (.venv)
    
    這里很清楚,如果為虛擬python環境venv安裝需要的包,那么執行pip3 install
  • 執行pip3 install
    pip3 install "unstructured[md]"
    
    注意,安裝完畢之后,切換到pycharm的畫面,可以看到pycharm也在加載,自動進行更新
    在這里插入圖片描述

2.4 執行文件夾load的代碼

debug模式執行代碼,可以看到md文件已經被成功load
在這里插入圖片描述

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

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

相關文章

企業運維實戰:Jenkins 依賴 JDK21 與應用需 JDK1.8 共存方案(含流水線配置)

前言:在企業運維中,“工具升級”與“業務兼容”的平衡始終是核心挑戰。近期我們遇到一個典型場景:Jenkins 升級到 2.450 版本后,強制要求 JDK21 運行環境;但開發團隊的應用程序因框架依賴,必須使用 JDK1.8 …

爬蟲小知識三:selenium庫

前言 selenium 庫是一種用于 Web 應用程序測試的工具,它可以驅動瀏覽器執行特定操作,自動按照腳本代碼做出單擊、輸入、打開、驗證等操作,支持的瀏覽器包括 IE、Firefox、Safari、Chrome、Opera 等。 與 requests 庫不同的是,se…

Jmeter使用 -1

1 接口測試1.1 為什么要進行接口測試接口測試能夠繞過前端校驗,對后端的接口處理邏輯進行測試(數據的邊界/格式/類型)在一些需要重復測試的需求中,接口自動化的效率比手工執行效率高1.2 接口測試流程熟悉API接口文檔(接…

GitHub 趨勢日報 (2025年07月16日)

📊 由 TrendForge 系統生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日報中的項目描述已自動翻譯為中文 📈 今日獲星趨勢圖 今日獲星趨勢圖2415markitdown570claude-code434ART330erpnext150MusicFree146rustdesk129vanna80…

Python+Tkinter制作音頻格式轉換器

我們將使用Python的Tkinter庫來構建一個音頻格式轉換器界面。由于音頻轉換需要實際的處理,我們將使用pydub庫(需要安裝)來進行音頻格式轉換。同時,我們會使用ffmpeg作為后端,因此請確保系統中已安裝ffmpeg并添加到環境…

Haproxy算法精簡化理解及企業級高功能實戰

文章目錄4. Haproxy的算法4.1 靜態算法4.1.1 static-rr:基于權重的輪詢調度1. 示例:4.1.2 first1. 示例2. 測試效果:4.2 動態算法4.2.1 roundrobin1. 示例2. 動態調整權重4.2.2 leastconn1. 示例4.3 其他算法4.3.1 source1. 示例2. 測試4.3.2…

git fork的項目遠端標準協作流程 倉庫設置[設置成upstream]

這是一個在開源協作中非常常見的配置。 簡單來說,upstream 在這里指的是你 Fork 來的那個原始的、官方的倉庫。 下面我們來詳細解釋一下這個 git remote -v 輸出的含義: 1. 兩條“遙控器” (Remotes) 你的 git 配置了兩個遠程倉庫的地址,就像…

[FFmpeg] 輸入輸出訪問 | 管道系統 | AVIOContext 與 URLProtocol | 門面模式

鏈接:https://trac.ffmpeg.org/ docs:FFmpeg FFmpeg 是一個強大的多媒體框架,旨在處理媒體處理的各個階段。 它就像一個數字媒體工廠,包含以下部門:打包/解包(容器處理)、 轉譯/壓縮&#xff…

微服務的編程測評系統2

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄前言工程創建創建ck-oj創建oj-modules創建具體微服務oj-system推送碼云管理員登錄邏輯分析docker安裝mysqldocker客戶端docker desktop安裝安裝mysqlmysql-plus和數據…

AR智能巡檢:電力運維的數字化變革

在電力行業快速發展的當下,傳統運維方式已難以滿足現代電網對高效、安全的需求。近年來,增強現實(AR www.teamhelper.cn )技術的興起為電力巡檢帶來了全新的解決方案。通過實時數據可視化、遠程協作和智能分析,AR技術…

NeRF和3DGS原理詳細

NeRF和3DGS一、傳統三維表征方法1.1 顯示表征1.2 隱式表征二、NeRF(Nerual Radiance Field)2.1 NeRF場景表示2.2 NeRF訓練流程2.3 NeRF體渲染2.4 NeRF位置編碼2.5 NeRF體素分層采樣(Volume Hierarchical Sampling)2.6 NeRF網絡結構…

035_ClaudeCode_MCP_介紹

035_ClaudeCode_MCP_介紹 摘要 Model Context Protocol(MCP)是一個開放的標準化協議,專為大型語言模型提供上下文數據而設計。作為Claude Code生態系統的重要組成部分,MCP如同"AI應用程序的USB-C端口",提供…

Python 程序無法找到 Oracle 的 64 位客戶端庫 (libclntsh.so)

數據庫錯誤: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/odpi/doc/installation.html#linux for help 這個錯誤表明 Python 程序無法找到…

Kubernetes常用命令總結

文章目錄Kubernetes常用命令總結1. 集群管理命令kubectl cluster-infokubectl get nodeskubectl describe node <node-name>kubectl top nodes2. Pod相關命令kubectl get podskubectl get pods -o widekubectl describe pod <pod-name>kubectl logs <pod-name&g…

roboflow使用教程

如何利用roboflow標注自己的訓練集、調用開源數據集 官網&#xff1a;Roboflow: Computer vision tools for developers and enterprises&#xff08;國內代理進不去&#xff09; 先注冊登陸進去 訓練自己的數據集 點擊“New Project”,名字按照自己的需求來 我不想寫了&am…

IDEA中使用Tomcat兩種方式

Catalogue1 集成本地Tomcat2 Tomcat Maven插件&#xff08;推薦&#xff09;1 集成本地Tomcat 將本地Tomcat集成到Idea中&#xff0c;然后進行項目部署即可 點擊編輯配置 點擊加號 添加local的Tomcat 配置Application Server 可以修改一下Name 至此&#xff0c;配置完成 …

服務器上的文件復制到本地 Windows 系統

在 Windows 上通過 SSH 連接到 Linux 服務器后&#xff0c;如果需要將服務器上的文件復制到本地 Windows 系統&#xff0c;可以使用以下幾種方法&#xff1a;方法 1&#xff1a;使用 scp&#xff08;Secure Copy&#xff09;命令 scp&#xff08;基于 SSH 的安全復制&#xff0…

大語言模型置信度增強實戰指南

LLM怎么簡單增強置信度 在大語言模型(LLM)的應用中,“置信度增強”核心目標是提升模型輸出的可靠性(減少錯誤/幻覺) 并讓模型更清晰地表達自身的不確定性(避免“一本正經地胡說”)。常用方式可分為“輸出優化”“知識補充”“校準調整”三大類, 一、基于“推理過程優…

NLP:人名分類器案例分享

本文目錄&#xff1a;一、案例介紹&#xff08;一&#xff09;關于人名分類&#xff08;二&#xff09;人名分類數據預覽二、案例步驟&#xff08;一&#xff09;導入工具包&#xff08;二&#xff09;數據預處理1. 獲取常用的字符數量2. 國家名種類數和個數3.讀數據到內存4.構…

3分鐘實戰!用DeepSeek+墨刀AI生成智能對話APP原型圖

如今&#xff0c;AI生成原型圖已經逐漸成為產品經理的一項常用輔助技能&#xff0c;不僅能加快設計進程&#xff0c;還能顯著提升前期溝通效率。最近我嘗試將大語言模型工具與AI原型工具結合測試&#xff0c;目標是看看是否能生成更高質量的原型頁面。直到我使用DeepSeek墨刀AI…