本發(fā)明涉及人工智能計(jì)數(shù)領(lǐng)域,特別涉及一種基于langchain模型的pdf文件處理方法及系統(tǒng)。
背景技術(shù):
1、然而,chatgpt的出現(xiàn)讓本申請(qǐng)的生活更加智能化和便捷化,通過chatgpt,可以進(jìn)行自然語言處理和對(duì)話。chatgpt接近人類表達(dá)的、流暢自然的多輪對(duì)話能力和強(qiáng)大的問題處理能力,讓其不僅能與人類互動(dòng)對(duì)話,還能完成寫文案、論文、代碼和翻譯等各種具體任務(wù)。
2、然而,現(xiàn)有chatgpt具有三個(gè)重要局限:
3、api接口的token限制:chatgpt的api接口有token限制,限制了單次返回的內(nèi)容長(zhǎng)度,也沒有上下文結(jié)合語境進(jìn)行對(duì)話的能力。
4、知識(shí)庫(kù)的滯后性:openai公司的大語言模型(llm)知識(shí)庫(kù)只截止到2021年底,對(duì)于更新的知識(shí)沒有檢索和推理能力。
5、不囊括本地或?qū)S袛?shù)據(jù):openai公司的llm的知識(shí)庫(kù)都來源于互聯(lián)網(wǎng)的公開數(shù)據(jù),對(duì)于某些領(lǐng)域的專有數(shù)據(jù),如高校發(fā)表的論文,或未經(jīng)公開的專有數(shù)據(jù)等,則沒有對(duì)應(yīng)的能力支撐。
6、所以對(duì)于現(xiàn)有來說來說,目前在需要大量閱讀、檢索前人學(xué)術(shù)科研成果(尤其是以pdf格式存在的學(xué)術(shù)科研論文)的學(xué)術(shù)領(lǐng)域時(shí),chatgpt存在又上述三個(gè)缺陷。
技術(shù)實(shí)現(xiàn)思路
1、基于此,本申請(qǐng)實(shí)施例提供了一種基于langchain模型的pdf文件處理方法及系統(tǒng),能夠?qū)崿F(xiàn)langchain進(jìn)行pdf文件摘要總結(jié)和問答。
2、第一方面,提供了一種基于langchain模型的pdf文件處理方法,該方法包括:
3、基于gradio提供的接口獲取用戶上傳的目標(biāo)pdf文件,并對(duì)目標(biāo)pdf文件中的文本進(jìn)行分段構(gòu)成多個(gè)分段文檔;
4、基于langchain模型建立摘要場(chǎng)景和問答場(chǎng)景,具體地:
5、在摘要場(chǎng)景中,將多個(gè)分段文檔傳入llm模型進(jìn)行處理返回得到各個(gè)分段的摘要,并且將所有分段的摘要進(jìn)行聚合,得到目標(biāo)pdf文件的摘要;
6、在問答場(chǎng)景中,將各個(gè)分段文檔計(jì)算得到各自的embedding,并存儲(chǔ)在向量數(shù)據(jù)庫(kù)中;將用戶輸入的問題進(jìn)行embedding,并通過相似度匹配各個(gè)分段文檔所對(duì)應(yīng)的embedding確定出的相似答案集合;最后將問題和相似答案集合通過提示詞組裝,再次調(diào)用llm得到問題的目標(biāo)答案。
7、可選地,基于gradio提供的接口獲取用戶上傳的目標(biāo)pdf文件,包括:
8、通過pypdfloader將pdf加載到文檔數(shù)組中;其中,每個(gè)文檔數(shù)組中包含頁(yè)面內(nèi)容和用于表征頁(yè)數(shù)的元數(shù)據(jù)。
9、可選地,對(duì)目標(biāo)pdf文件中的文本進(jìn)行分段構(gòu)成多個(gè)分段文檔,包括:
10、設(shè)置了環(huán)境變量,所述環(huán)境變量用于動(dòng)態(tài)設(shè)置文本塊的大?。?/p>
11、通過遞歸字符文本分割器對(duì)目標(biāo)pdf文件中的文本按順序進(jìn)行文本分割,直到分割塊為設(shè)定大小。
12、可選地,將各個(gè)分段文檔計(jì)算得到各自的embedding,包括:
13、選擇了huggingface中的shibing624/text2vec-base-chinese模型進(jìn)行文本的embedding,將分段后的文本數(shù)據(jù)轉(zhuǎn)換為向量表示。
14、可選地,將各個(gè)分段文檔計(jì)算得到各自的embedding,并存儲(chǔ)在向量數(shù)據(jù)庫(kù)中,具體包括:
15、通過調(diào)用from_documents方法,將分段文本集合以及embedding都存儲(chǔ)進(jìn)本地的向量數(shù)據(jù)庫(kù)中,數(shù)據(jù)文件以parquet形式保存;其中,所述向量數(shù)據(jù)庫(kù)為chroma向量數(shù)據(jù)庫(kù)。
16、可選地,將多個(gè)分段文檔傳入llm模型進(jìn)行處理返回得到各個(gè)分段的摘要,并且將所有分段的摘要進(jìn)行聚合,得到目標(biāo)pdf文件的摘要,包括:
17、通過map?reduce模式中的map步驟,將每個(gè)分段的摘要分別計(jì)算和輸出;再使用了refine模式進(jìn)行循環(huán)歸并,最終得到目標(biāo)pdf文件的摘要。
18、可選地,將用戶輸入的問題進(jìn)行embedding,并通過相似度匹配各個(gè)分段文檔所對(duì)應(yīng)的embedding確定出的相似答案集合,還包括:
19、結(jié)合用戶當(dāng)前的提問和歷史對(duì)話的上下文,選擇合適的提示詞構(gòu)建摘要,最終生產(chǎn)一個(gè)結(jié)果向量。
20、可選地,得到目標(biāo)pdf文件的摘要中,所述摘要還包括文章的標(biāo)題、作者、機(jī)構(gòu)、關(guān)鍵詞、鏈接以及結(jié)論。
21、第二方面,提供了一種基于langchain模型的pdf文件處理系統(tǒng),該系統(tǒng)包括:
22、上傳模塊,用于基于gradio提供的接口獲取用戶上傳的目標(biāo)pdf文件,并對(duì)目標(biāo)pdf文件中的文本進(jìn)行分段構(gòu)成多個(gè)分段文檔;
23、基于langchain模型建立摘要處理模塊和問答處理模塊,具體地:
24、在摘要處理模塊中,將多個(gè)分段文檔傳入llm模型進(jìn)行處理返回得到各個(gè)分段的摘要,并且將所有分段的摘要進(jìn)行聚合,得到目標(biāo)pdf文件的摘要;
25、在問答處理模塊中,將各個(gè)分段文檔計(jì)算得到各自的embedding,并存儲(chǔ)在向量數(shù)據(jù)庫(kù)中;將用戶輸入的問題進(jìn)行embedding,并通過相似度匹配各個(gè)分段文檔所對(duì)應(yīng)的embedding確定出的相似答案集合;最后將問題和相似答案集合通過提示詞組裝,再次調(diào)用llm得到問題的目標(biāo)答案。
26、本申請(qǐng)實(shí)施例提供的技術(shù)方案帶來的有益效果至少包括:
27、(1)相比于現(xiàn)有模式節(jié)約了token,提升了對(duì)于pdf文件的摘要生成效果;
28、(2)通過設(shè)置的提示詞提高了在線pdf對(duì)話能力的可用性和實(shí)用性;
29、(3)模型中參數(shù)可以根據(jù)實(shí)際進(jìn)行調(diào)整,在實(shí)際操作中具有很強(qiáng)的適配性。
1.一種基于langchain模型的pdf文件處理方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的pdf文件處理方法,其特征在于,基于gradio提供的接口獲取用戶上傳的目標(biāo)pdf文件,包括:
3.根據(jù)權(quán)利要求1所述的pdf文件處理方法,其特征在于,對(duì)目標(biāo)pdf文件中的文本進(jìn)行分段構(gòu)成多個(gè)分段文檔,包括:
4.根據(jù)權(quán)利要求1所述的pdf文件處理方法,其特征在于,將各個(gè)分段文檔計(jì)算得到各自的embedding,包括:
5.根據(jù)權(quán)利要求4所述的pdf文件處理方法,其特征在于,將各個(gè)分段文檔計(jì)算得到各自的embedding,并存儲(chǔ)在向量數(shù)據(jù)庫(kù)中,具體包括:
6.根據(jù)權(quán)利要求1所述的pdf文件處理方法,其特征在于,將多個(gè)分段文檔傳入llm模型進(jìn)行處理返回得到各個(gè)分段的摘要,并且將所有分段的摘要進(jìn)行聚合,得到目標(biāo)pdf文件的摘要,包括:
7.根據(jù)權(quán)利要求1所述的pdf文件處理方法,其特征在于,將用戶輸入的問題進(jìn)行embedding,并通過相似度匹配各個(gè)分段文檔所對(duì)應(yīng)的embedding確定出的相似答案集合,還包括:
8.根據(jù)權(quán)利要求1所述的pdf文件處理方法,其特征在于,得到目標(biāo)pdf文件的摘要中,所述摘要還包括文章的標(biāo)題、作者、機(jī)構(gòu)、關(guān)鍵詞、鏈接以及結(jié)論。
9.一種基于langchain模型的pdf文件處理系統(tǒng),其特征在于,所述系統(tǒng)包括: