AGI全棧開發(fā) 課件第8章 數(shù)據(jù)庫設(shè)計-RAG檢索與知識庫構(gòu)建_第1頁
AGI全棧開發(fā) 課件第8章 數(shù)據(jù)庫設(shè)計-RAG檢索與知識庫構(gòu)建_第2頁
AGI全棧開發(fā) 課件第8章 數(shù)據(jù)庫設(shè)計-RAG檢索與知識庫構(gòu)建_第3頁
AGI全棧開發(fā) 課件第8章 數(shù)據(jù)庫設(shè)計-RAG檢索與知識庫構(gòu)建_第4頁
AGI全棧開發(fā) 課件第8章 數(shù)據(jù)庫設(shè)計-RAG檢索與知識庫構(gòu)建_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第8章數(shù)據(jù)庫設(shè)計—RAG檢索與知識庫構(gòu)建"把繁瑣的向量計算交給AGI,把知識架構(gòu)與業(yè)務(wù)邏輯留給自己"——構(gòu)建的不只是外掛記憶,更是智能體在垂直領(lǐng)域的專業(yè)靈魂。學習目標掌握工具:掌握使用PostgreSQL及pgvector插件構(gòu)建向量數(shù)據(jù)庫的方法。理解原理:掌握深度學習與文本向量化(Embeddings)的基礎(chǔ)理論。應(yīng)用開發(fā):能獨立編寫AgentStory類,實現(xiàn)文檔加載、分割、向量化及持久化。

知識圖譜:1文本分割與文本向量化2RAG檢索與向量數(shù)據(jù)庫設(shè)計3AgentStory類封裝目錄CONTENTS4智能體開發(fā)5本章小結(jié)與習題

1文本分割與向量化文本分割工具庫:LangChain類名:RecursiveCharacterTextSplitter(遞歸字符分割器)機制:優(yōu)先按段落分割,再按句子分割,最后按字符分割。模型限制:大模型(LLM)有上下文窗口限制(ContextWindow),無法一次性處理長文檔。檢索精度:將長文切分為小的語義塊(Chunk),能提高向量檢索的匹配準確度。為什么需要分割?技術(shù)工具文本向量化文本向量化(Embeddings)技術(shù)棧import{TensorFlowEmbeddings}from'langchain/embeddings/tensorflow';asyncfunctionembeddings(text:string):Promise<number[]>{constmodel=newTensorFlowEmbeddings();constvector=awaitmodel.embed(text);if(vector.length!==512){thrownewError("Expected512dimensions");}returnvector;}TypeScript實現(xiàn)LangChain(框架)+@tensorflow/tfjs(模型后端)將自然語言文本轉(zhuǎn)化為計算機可理解的512維數(shù)字數(shù)組。余弦相似度定義:通過計算兩個向量在多維空間中夾角的余弦值來衡量相似程度。公式:特征:值越接近

1,表示文本語義越

相似。functioncosineSimilarity(vectorA:number[],vectorB:number[]):number{constdotProd=vectorA.reduce((sum,v,i)=>sum+v*vectorB[i],0);constmagA=Math.sqrt(vectorA.reduce((sum,v)=>sum+v*v,0));constmagB=Math.sqrt(vectorB.reduce((sum,v)=>sum+v*v,0));returndotProd/(magA*magB);}算法實現(xiàn)

2RAG檢索與向量數(shù)據(jù)庫設(shè)計背景與服務(wù)端實現(xiàn)為什么需要RAG?01URL獲取router.post('/loader',async(req,res)=>{leturl=req.body?.url;constresponse=awaitfetch(url);constbuffer=Buffer.from(awaitresponse.arrayBuffer());letdata;if(url?.endsWith(".pdf")){data=awaitpdf(buffer);}elseif(url?.endsWith(".docx")){data=awaitmammoth.extractRawText(buffer);}res.json({code:200,data:data});});下載流文本解析返回文本數(shù)據(jù)Express路由實現(xiàn)大模型無法直接讀取本地私有文檔。Prompt輸入整篇文檔Token成本過高。向量數(shù)據(jù)庫設(shè)計01數(shù)據(jù)庫選型選擇PostgreSQL數(shù)據(jù)庫,并使用pgvector插件,支持向量數(shù)據(jù)類型和高效檢索,滿足知識庫構(gòu)建需求。02數(shù)據(jù)范式設(shè)計Story和Document表,Story表存儲文檔元數(shù)據(jù),Document表存儲文本塊和向量數(shù)據(jù),實現(xiàn)數(shù)據(jù)的合理組織。03關(guān)系設(shè)計一個Story對應(yīng)多個Document,通過外鍵關(guān)聯(lián),支持文檔的分塊存儲和檢索,提高數(shù)據(jù)處理效率。

3AgentStory類封裝AgentStory類設(shè)計核心方法//1.初始化conststory=newAgentStory({url:"/policy.docx",title:"杭州人才政策"});//2.執(zhí)行全流程awaitstory.loader(story.url);//加載awaitstory.splitter();//分割awaitstory.embeddings();//向量化入庫console.log("知識庫構(gòu)建完成!");loader(url)

加載PDF/DOCX,提取純文本。splitter()使用LangChain將長文本分割為chunks。embeddings()調(diào)用TensorFlow生成向量并存入數(shù)據(jù)庫。retrieveAllDocument()執(zhí)行相似度計算與檢索。示例代碼

4智能體開發(fā)智能體應(yīng)用架構(gòu)向量提取(Vector)功能:文件列表管理。操作:加載文件->點擊“分割”->點擊“嵌入”。記憶召回(Retrieve)功能:測試RAG檢索效果。操作:輸入問題->前端/后端檢索->顯示相似度分值。知識問答(Story)功能:完整的AI對話。操作:輸入問題->RAG增強->LLM生成->Markdown渲染。技術(shù)棧前端:Ionic/Angular(StandaloneComponents)后端:Node.jsExpress+PostgreSQL知識問答業(yè)務(wù)邏輯提問(Input)向量化(Embed)生成(LLM)增強(Prompt)檢索(Retrieve)lettop10Doc=this.searchDocList.slice(0,10);//2.注入上下文letdocInsertion=top10Doc.map(item=>item.pageContent).join("\n");letPromptTemplate=`${docInsertion}#角色指令

您是一名專業(yè)的人力資源顧問,請基于以上知識庫文檔,回答學生的問題。${this.messageInput}`;Prompt模板構(gòu)建代碼功能測試與效果測試案例:博士后在杭州工作或者創(chuàng)業(yè),能享受到哪些政策?具體一些。演示效果

5本章小結(jié)與習題總結(jié)與思考本章小結(jié)掌握了TextSplitting(分割)與Vectorization(向量化)技術(shù)。實現(xiàn)了基于pgvector的向量檢索API。完成了AgentStory類的封裝與RAG智能體應(yīng)用開發(fā)。AGI的優(yōu)勢高效處理:快速計算相似度,處理海量文本。輔助開發(fā):自動生成SQL查詢語句和基礎(chǔ)代碼。持續(xù)優(yōu)化:算法模型可迭代更新。課后習題1在文本向量化中,()用于計算文本的嵌入向量。A.TensorFlow B.NumPyC.PyTorch D.scikit-learn2RAG檢索中,(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論