端JS怎么實現大文件G級的斷點續傳(分塊上傳)和分段下載,前端上傳文件或者上傳文件夾,HTML+AJAX實現上傳大文件方案,h5批量下載文件,HTTP+斷點續傳,前端處理大文件/視頻分片上傳,斷點續傳,VUE—實現文件上傳(多文件),圖片上傳,VUE 項目大文件上傳下載解決方案,VUE將前端的JSON文件上傳到后臺對應目錄,
JAVASCRIPT之分片上傳,斷點續傳的實際項目實現詳解,大文件上傳如何做斷點續傳?全端+后端結合開發,VUE實現文件上傳(單文件、多文件、分片上傳),JS中實現文件上傳下載的三種解決方案(推薦),JS實現大文件上傳——分片上傳方法,完美解決WEB無法上傳大文件方法,HTML大文件上傳源碼,
WEBUPLOAD組件實現文件上傳功能和下載功能,js大文件上傳下載解決方案,vue大文件上傳下載解決方案
asp.net大文件上傳下載解決方案,.net大文件上傳下載解決方案,webform大文件上傳下載解決方案,jsp大文件上傳下載解決方案,java大文件上傳下載解決方案,JAVASCRIPT 大文件上傳下載切片解決方案,JAVASCRIPT 大文件上傳下載切割解決方案,JAVASCRIPT 大文件上傳下載分割解決方案,JAVASCRIPT 大文件上傳下載分塊解決方案,JAVASCRIPT 大文件上傳下載分片解決方案,web大文件上傳下載解決方案,
網頁大文件上傳下載解決方案,前端大文件上傳下載解決方案,html5大文件上傳下載解決方案,JAVASCRIPT 大文件上傳下載解決方案,支持
之前在網上也找過相關的資料,論壇上也有網友交流過,但是基本上都不太令人滿意,與公司這邊的項目需求相差太遠。文章的話基本上大部分都是重復的內容,幾乎都是講的如何用HTML5來做,但是提到的也不多。關鍵點都說的不詳細,如何分塊,斷點續傳如何實現,如何保存進度。
HTML5,VUE2,VUE3,React,javascript等常用前端UI框架,JS框架,網上找的方案大多數都只是一些代碼片段,沒有提供完整的前后端代碼。
原理到是不復雜。上傳位置不能傳錯。用戶主要強調穩定性和兼容性。
之前在網上也搜過相關的資料。論壇里面也有一些網絡交流,但是都不太令人滿意。公司這邊實際上需要的是一成熟的商業解決方案,需要能夠提供成功案例,公司客戶都是國企。
跟項目經理溝通過,這塊網上搜到的文章能用的幾乎沒有。實際上客戶那邊比較在乎兩點。
之前項目上面用Flash比較多一點,現在基本上都是HTML5,斷點續傳除了頁面級以外最好還能夠提供離線支持。
支持IE,Chrome和信創國產化環境,比如銀河麒麟,統信UOS,龍芯,
支持分片,分塊,分段,切片,分割上傳。能夠突破chrome每域名的5個TCP連接限制,能夠突破chrome重啟,關閉瀏覽器續傳的限制。
支持10G,20G,50G,100G文件上傳和續傳,支持秒傳,支持文件夾上傳,重復文件檢測,重復文件校驗
支持文件下載,批量下載,下載斷點續傳,加密下載,端到端加密,加密算法支持國密SM4,多線程下載
支持在服務端保存文件夾層級結構,支持將文件夾層級結構信息保存到數據庫中,支持下載時能夠將文件夾層級結構下載下來,支持下載文件夾,下載文件夾支持斷點續傳,
支持加密傳輸,包括加密上傳,加密下載,加密算法支持國密SM4,
支持云對象存儲,比如華為云,阿里云,騰訊云,七牛云,AWS,MinIO,FastDFS,
提供手機,QQ,微信,郵箱等聯系方式,提供7*24小時技術支持,提供長期技術支持和維護服務,提供遠程1對1技術指導,提供二次開發指導,提供文檔教程,提供視頻教程。
視頻教程:
https://www.ixigua.com/7226245960341389859
1.下載示例
https://gitee.com/xproer/up6-vue-cli
將up6組件復制到項目中
示例中已經包含此目錄
1.引入up6組件
2.配置接口地址
接口地址分別對應:文件初始化,文件數據上傳,文件進度,文件上傳完畢,文件刪除,文件夾初始化,文件夾刪除,文件列表
參考:http://www.ncmem.com/doc/view.aspx?id=e1f49f3e1d4742e19135e00bd41fa3de
3.處理事件
啟動測試
啟動成功
效果
數據庫
源碼工程文檔:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra
源碼報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwoiul8gl
OEM版報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuzp4W0a
控件源碼下載:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc
授權碼生成器:https://drive.weixin.qq.com/s?k=ACoAYgezAAwTIcFph1
之前的文章中,筆者在《探秘大模型應用開發-有關chunking的方方面面》中提到有關分塊的內容,感興趣的朋友可以閱讀。近日,Maria Khalusova在Unstructured官方博客分享了有關分塊的最佳實踐。
Unstructured成立于2022年9月,致力于解決自然語言處理(NLP)和大型語言模型(LLM)應用中的數據預處理問題。公司總部位于美國,專注于將非結構化數據轉化為LLM可以處理的格式,當下流行的pdf解析庫就來自于它們,它們在數據預處理方面擁有非常前沿的技術和經驗。
分塊是文檔處理的一個步驟,當各種格式的文檔被解析變成文本文檔后,接下來就需要對文檔進行分塊。而這一步驟也直接會影響到后期檢索和模型推理總結的效果。這時候必然會帶來一些常見的問題如:為什么要分塊?最佳塊大小是多少?拆分文本的最佳方法是什么?等等。 在這篇文章里,博文作者將給出他們的實踐分享。
出于多種原因,在為 RAG 準備數據時,分塊是必不可少的預處理步驟。
1)上下文窗口限制
首先從基礎開始。檢索到的塊將直接作為上下文輸入到提示中,以便LLM生成響應。這意味著所有檢索到的塊的總長度至少不能超過LLM的上下文窗口。盡管當下許多LLM有相當大的上下文窗口,但實際上并不希望填滿上下文窗口,因為這些LLM會面臨“大海撈針”的問題(延伸閱讀:超長上下文窗口大模型的“照妖鏡”——大海撈針實驗,大模型“打假”必知必會)。另外,開發者可能還想以其他方式利用這個大上下文窗口,比如提供詳細的指令、角色描述或一些少樣本示例(few-shot)。
此外,如果打算使用相似性搜索并嵌入(embedding)文檔,必須考慮到嵌入模型也有一個有限的上下文窗口。這些模型不能嵌入超過其上下文窗口最大長度的文本。這個限制因具體模型而異,但可以在模型的描述中找到這些信息,例如在Hugging Face Hub上的模型卡片上。一旦知道將使用哪種模型來生成嵌入,就能確定文本塊的最大值(以token為單位,而不是字符或單詞)。嵌入模型通常在上下文窗口大小上的最大值約為8K token或更少,這相當于英語中的大約6200個單詞。為了直觀理解有多大,比如,整個《指環王》系列,包括《霍比特人》,大約有576,459個單詞,所以如果想利用這個語料庫進行RAG與相似性搜索,需要將其分成至少93個塊。
2)塊大小對檢索精度的影響
雖然嵌入模型對其可以嵌入的標記數量規定了硬性的最大限制,但這并不意味著分塊必須達到這個長度。這只是意味著它們不能超過這個長度。事實上,在許多情況下,使用每個分塊的最大長度(如 6200 字(8K 標記))可能會過長。這里有幾個令人信服的理由來選擇較小的語塊。
回想一下當我們嵌入一段文本以獲得嵌入向量時會發生什么。大多數嵌入模型都是編碼器類型的轉換器模型,輸入文本的最大長度為 768。不管你給模型的是 10 個字的句子還是 1000 個字的段落,得到的嵌入向量的維度都是一樣的,都是 768。其工作原理是,模型首先將文本轉換為token,在預訓練過程中為每個token學習了一個向量表征。然后,它將應用一個池化操作,將單個token表征平均為一個單向量表征。
常見的池化類型包括:
其目標是將細粒度的token級表征壓縮成單一的固定長度表征,其中包含整個輸入序列的含義。這種壓縮本身就是有損的。對于較大的塊,表征可能會變得過于粗糙,可能會掩蓋重要的細節。為確保精確檢索,文本塊必須擁有有意義且細致入微的表征。
現在,請考慮另一個潛在問題。一個大塊可能包含多個主題,其中一些可能與用戶查詢相關,而另一些則不相關。在這種情況下,單個向量中每個主題的表示可能會變得模糊,這同樣會影響檢索精度。
另一方面,較小的片段可以保持重點突出的上下文,從而可以更精確地匹配和檢索相關信息。通過將文檔分解成有意義的片段,檢索器可以更準確地找到特定段落或事實,從而最終提高 RAG 性能。那么,在保持上下文完整性的前提下,文件塊可以有多小?這取決于文檔的性質,可能需要進行一些試驗。通常情況下,250 個 token 左右的塊大小(相當于約 1000 個字符)是一個合理的實驗起點。
1)字符級分塊
將大文檔分割成小塊的最基本方法是將文本分成 N 個字符大小的塊。通常在這種情況下,還會指定一定數量的字符,這些字符應在連續的文本塊之間重疊。這在一定程度上降低了句子或觀點在相鄰兩塊之間的邊界被突然切斷的可能性。不過,可以想象,即使有重疊,每個塊的固定字符數加上固定的重疊窗口,也不可避免地會導致信息流中斷、不同主題混合,甚至句子在一個詞的中間被分割。字符分割法完全不考慮文檔結構。
2)句子級分塊或遞歸分塊
字符分割是一種簡單化的方法,完全沒有考慮到文檔的結構。這種方法完全依賴于固定的字符數,經常會導致句子在中途甚至在詞的中間被拆分,效果并不好。
解決這一問題的方法之一是使用遞歸分塊法,這種方法有助于保留單個句子。使用這種方法,您可以指定一個有序的分隔符列表來指導分割過程。例如,以下是一些常用的分隔符:
如果按照指定的順序使用上述分隔符,過程將是這樣的。首先,遞歸分塊會在每次出現雙新行("\n\n")時分解文檔。然后,如果這些分段仍然超過了所需的分塊大小,它將在新行處進一步分解它們("\n"),以此類推。
雖然這種方法大大降低了中途斷句的可能性,但仍然無法捕捉到復雜的文檔結構。文檔通常包含多種元素,如段落、章節頁眉、頁腳、列表、表格等,所有這些元素都有助于文檔的整體組織。然而,上述遞歸分塊法主要考慮的是段落和句子,而忽略了其他結構上的細微差別。
此外,文檔以多種本地格式存儲,因此必須為每種不同的文檔類型設計不同的分隔符。上面的列表可能對純文本很有效,但對于標記符,你需要一個更細致、更有針對性的分隔符列表;如果是 HTML 或 XML 文檔,還需要另一個列表,等等。將這種方法擴展到處理 PDF 和 PowerPoint 演示文稿等基于圖像的文檔,會帶來更多復雜性。如果使用場景涉及各種非結構化文檔,那么統一應用遞歸分塊很快就會成為一項繁重的任務。
Unstructured提供了多種智能分塊策略,所有這些策略都比前面提到的方法有明顯優勢。一旦使用 Unstructured 對任何類型的文檔進行分區,分塊處理就會應用于一組單獨的文檔元素,這些元素代表原始文檔的邏輯單元并反映其結構,而不是處理一堵帶有隨機潛在分隔符的純文本墻。
這就意味著,你不必再想辦法區分文檔的各個部分。Unstructured 已經完成了這些繁重的工作,直接展示不同的文檔元素,這些元素封裝了文檔中的段落、表格、圖片、代碼片段和其他任何有意義的文本單元。在完成分區步驟后,文檔已經被劃分為更小的片段。這是否意味著文檔已經分塊?不完全是,但已經成功了一半!
分區后得到的某些文檔元素可能仍會超出嵌入模型的上下文窗口或所需的塊大小。這些需要進一步分割。相反,有些文檔元素可能太小,無法包含足夠的上下文。例如,一個列表被分割成單個的 ListItem元素,但你可以選擇將這些元素合并成一個單一的塊,只要它們仍然符合偏好設置的塊大小。
從系統劃分為離散元素的文檔開始,Unstructured 提供的智能分塊策略可以做到這一點:
智能分塊比遞歸分塊更進一步,它實際上考慮到了文檔的語義結構和內容。
智能分塊提供了四種策略,它們在保證分塊內容純凈度方面各有不同:
Unstructured 智能分塊策略的另一個優勢是可普遍適用于各種文檔類型。不需要像遞歸分塊那樣,為每個文檔硬編碼和維護分隔符列表。可以輕松嘗試分塊大小和分塊策略,為任何給定的使用場景找出最佳方案。
分塊是任何 RAG 系統中必不可少的預處理步驟之一。設置時的選擇會影響檢索質量,進而影響系統的整體性能。以下是設計分塊步驟時需要注意的一些事項:
原文:https://unstructured.io/blog/chunking-for-rag-best-practices
S實現大文件上傳——分片上傳方法,完美解決WEB無法上傳大文件方法,HTML大文件上傳源碼,WEBUPLOAD組件實現文件上傳功能和下載功能,js大文件上傳下載解決方案,vue大文件上傳下載解決方案,asp.net大文件上傳下載解決方案,.net大文件上傳下載解決方案,webform大文件上傳下載解決方案,jsp大文件上傳下載解決方案,java大文件上傳下載解決方案,JAVASCRIPT 大文件上傳下載切片解決方案,JAVASCRIPT 大文件上傳下載切割解決方案,JAVASCRIPT 大文件上傳下載分割解決方案,JAVASCRIPT 大文件上傳下載分塊解決方案,JAVASCRIPT 大文件上傳下載分片解決方案,web大文件上傳下載解決方案,網頁大文件上傳下載解決方案,前端大文件上傳下載解決方案,html5大文件上傳下載解決方案,JAVASCRIPT 大文件上傳下載解決方案,支持HTML5,VUE2,VUE3,React,javascript等常用前端UI框架,JS框架,網上找的方案大多數都只是一些代碼片段,沒有提供完整的前后端代碼。
支持IE,Chrome和信創國產化環境,比如銀河麒麟,統信UOS,龍芯,
支持分片,分塊,分段,切片,分割上傳。能夠突破chrome每域名的5個TCP連接限制,能夠突破chrome重啟,關閉瀏覽器續傳的限制。
支持10G,20G,50G,100G文件上傳和續傳,支持秒傳,支持文件夾上傳,重復文件檢測,重復文件校驗
支持文件下載,批量下載,下載斷點續傳,加密下載,端到端加密,加密算法支持國密SM4,多線程下載
支持在服務端保存文件夾層級結構,支持將文件夾層級結構信息保存到數據庫中,支持下載時能夠將文件夾層級結構下載下來,支持下載文件夾,下載文件夾支持斷點續傳,
支持加密傳輸,包括加密上傳,加密下載,加密算法支持國密SM4,
支持云對象存儲,比如華為云,阿里云,騰訊云,七牛云,AWS,MinIO,FastDFS,
提供手機,QQ,微信,郵箱等聯系方式,提供7*24小時技術支持,提供長期技術支持和維護服務,提供遠程1對1技術指導,提供二次開發指導,提供文檔教程,提供視頻教程。
1.下載示例
https://gitee.com/xproer/up6-vue-cli
將up6組件復制到項目中
示例中已經包含此目錄
1.引入up6組件
2.配置接口地址
接口地址分別對應:文件初始化,文件數據上傳,文件進度,文件上傳完畢,文件刪除,文件夾初始化,文件夾刪除,文件列表
參考:http://www.ncmem.com/doc/view.aspx?id=e1f49f3e1d4742e19135e00bd41fa3de
3.處理事件
啟動測試
啟動成功
效果
數據庫
源碼工程文檔:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra
源碼報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwoiul8gl
OEM版報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuzp4W0a
控件源碼下載:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc
*請認真填寫需求信息,我們會在24小時內與您取得聯系。