精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

RAG系列:基于 DeepSeek + Chroma + LangChain 開發一個簡單 RAG 系統

人工智能
相信看過我之前文章的同學,已經了解了什么是 RAG 以及技術實現,也學會了如何本地搭建基于 Ollama、DeepSeek、Chroma、LangChain.js 和 Next.js 的全棧 AI 應用開發框架。本文我們基于這一套全棧 AI 應用開發框架開發一個簡單的 RAG 系統。

創建 Next 項目

首先,使用 npx create-next-app@latest 根據提示完成 Next 項目的創建:

# 創建 Next 項目
npx create-next-app@latest

創建好項目之后,在 src/app 目錄下新建 rag 目錄,本次 demo 的代碼都將放在這里。

知識庫構建

接下來,我們將構建知識庫,主要目標是將準備好的 pdf 通過向量化存到向量數據庫中,以便后續的檢索。

由于本次 RAG 系統的開發都要依賴 LangChain 框架,所以我們先在項目中安裝 LangChain 框架和核心依賴:

# LangChain 框架和核心依賴
npm install langchain @langchain/core

文檔加載

LangChain 的 DocumentLoaders[1] 提供了種類豐富的文檔加載器,可加載文件系統的文件也可以加載線上文件,包括 csv、docx、pdf、pptx、html、github、youtube等等。

現在我們使用 PDFLoader[2] 來實現 pdf 的數據加載。

先安裝所需的依賴包:

# @langchain/community:包含第三方集成,這些集成實現了 LangChain Core 中定義的基本接口,如:文檔加載、文檔嵌入、向量數據庫等等
# pdf-parse:讀取 pdf 文本
npm install @langchain/community pdf-parse

然后添加加載 pdf 的代碼:

import { PDFLoader } from '@langchain/community/document_loaders/fs/pdf';

const loader = new PDFLoader('public/example.pdf', { splitPages: false });
const docs = await loader.load();

文檔分割

加載完成后,由于加載的文檔可能過長,不適合模型的上下文窗口,需要將文檔分割成合適的大小。

LangChain 提供了 TextSplitter[3] 組件來實現文檔分割:

import { RecursiveCharacterTextSplitter } from 'langchain/text_splitter';

// chunkSize:分割文檔的長度
// chunkOverlap:分割文檔間的重疊長度
const textSplitter = new RecursiveCharacterTextSplitter({
    chunkSize: 1000,
    chunkOverlap: 200,
});
const texts = await textSplitter.splitDocuments(docs);

文檔向量嵌入

接下來我們需要對分割后的文本塊進行向量嵌入,然后使用 Chroma 向量數據庫存儲。

向量模型使用 ollama 安裝的 nomic-embed-text 模型,可用 ollama run nomic-embed-text進行下載和運行,完整的代碼如下:

import {
Chroma,
ChromaLibArgs,
} from'@langchain/community/vectorstores/chroma';
import { ChatOllama, OllamaEmbeddings } from'@langchain/ollama';
import { EmbeddingsInterface } from'@langchain/core/embeddings';

// 初始化 embeddings 函數
exportfunctioninitOllamaEmbeddings(model = 'nomic-embed-text') {
returnnewOllamaEmbeddings({ model });
}

// 初始化向量數據庫
exportfunctioninitChroma(
  embeddings: EmbeddingsInterface = initOllamaEmbeddings(),
  args: ChromaLibArgs = {
    collectionName: 'rag_collection',
    url: 'http://localhost:8000',
  }
) {
returnnewChroma(embeddings, args);
}

// 初始化向量數據庫
const chromadb = initChroma();
// 保存文本塊
const documents = await chromadb.addDocuments(texts);

到此就構建好了一個簡單的知識庫。

RAG 系統構建

在創建好知識庫之后,接下來就可以開始構建一個基礎的 RAG 系統。該系統包括檢索器與生成器兩部分,具體工作流程如下:對于用戶輸入的問題,檢索器先搜索與該問題相關的文檔,接著將檢索到的文檔與初始問題一起傳遞給生成器,即大語言模型,最后將模型生成的答案返回給用戶。

檢索器創建

我們先基于 VectorStoreRetriever 創建檢索器,利用向量相似度進行檢索。

// 初始化向量數據庫
  const chromadb = initChroma();
  // 創建檢索器
  const retriever = chromadb.asRetriever();

生成器創建

接下來我們創建生成器,這里我們使用 Ollama 安裝的 deepseek-r1:14b 大模型作為生成器。

import { ChatOllama } from '@langchain/ollama';

export function initOllamaLLM(model = 'deepseek-r1:14b') {
  return new ChatOllama({ model });
}

// 創建生成器(初始化大模型)
const ollamaLLM = initOllamaLLM()

然后再設置提示模版:

// 設置提示模版
  const prompt = PromptTemplate.fromTemplate(
    '你是負責回答問題的助手。使用以下檢索到的上下文片段來回答問題。如果你不知道答案,就說你不知道。\n\n上下文:{context}\n\n問題:{question}\n\n回答:'
  );

RAG 鏈生成答案

最后我們通過 RAG 鏈將檢索器和生成器整合在一起,這里可以使用 LangChain 表達式語言(LangChain Execution Language,LCEL)來方便快捷地構建一個鏈,將檢索到的文檔、構建的輸入 Prompt 以及模型的輸出組合起來。

// 使用 LCEL 構建 RAG 鏈
const ragChain = RunnableSequence.from([
    {
      context: retriever.pipe((docs) => {
        // 文檔列表使用 \n\n 拼接為字符串
        return docs.map((doc) => doc.pageContent).join('\n\n');
      }),
      question: newRunnablePassthrough(),
    },
    prompt,
    ollamaLLM,
    newStringOutputParser(),
  ]);

// 使用 RAG 鏈生成答案
const answer = await ragChain.invoke(question);

項目代碼

代碼:https://github.com/laixiangran/ai-learn

啟動項目之后在瀏覽器輸入 http://localhost:3000/rag 即可訪問該 RAG 系統,然后在輸入框輸入問題:互聯網的人才缺口有哪些

圖片

也可以通過訪問 http://localhost:3000/rag/generate?questinotallow=互聯網的人才缺口有哪些

圖片

通過以上步驟,我們就完成了一個基礎 RAG 系統的搭建,其中借助于 LangChain 提供了一系列強大的工具和組件,使得構建和整合檢索與生成過程變得簡單而高效。而借助 Ollama 我們也能夠在本地部署大語言模型和向量模型,這讓我們可以以較小的資源進行 AI 的開發學習實踐。

引用鏈接

[1] DocumentLoaders: https://js.langchain.com/docs/concepts/document_loaders

[2] PDFLoader: https://v03.api.js.langchain.com/classes/_langchain_community.document_loaders_fs_pdf.PDFLoader.html

[3] TextSplitter: https://js.langchain.com/docs/concepts/text_splitters

責任編輯:龐桂玉 來源: 燃哥講AI
相關推薦

2024-05-22 09:38:25

2025-05-22 02:00:00

AI人工智能前端

2024-09-02 08:17:53

RAG聊天機器人人工智能

2024-06-24 14:32:33

2025-05-26 09:57:46

2025-02-10 11:27:37

2024-12-06 09:58:09

2025-02-14 00:00:35

2024-06-03 09:33:28

2025-02-06 08:26:21

2025-05-23 06:00:00

RAGAI人工智能

2025-05-22 06:23:48

2024-03-26 00:00:07

2025-02-03 00:00:55

DeepSeekRAG系統

2024-02-05 14:12:37

大模型RAG架構

2025-06-10 04:30:00

2025-11-04 07:15:00

LangChain大模型AI

2025-02-06 13:50:06

2025-02-24 08:39:08

2025-06-24 09:51:10

點贊
收藏

51CTO技術棧公眾號

精品视频在线观看日韩| 亚洲成年人影院| 成人av在线亚洲| 国产一区二区播放| 久本草在线中文字幕亚洲| 一本色道久久综合亚洲精品按摩| 亚洲精品高清视频| 亚洲国产中文字幕在线| 久久只有精品| 免费99精品国产自在在线| 亚洲AV无码国产精品| 欧美在线se| 亚洲电影一级黄| 一本一道久久a久久综合精品 | 久久一区二区三区超碰国产精品| 色狠狠av一区二区三区香蕉蜜桃| 师生出轨h灌满了1v1| 亚洲精品国产嫩草在线观看| 一区二区三区毛片| 色综合久久88色综合天天提莫| 亚洲av永久无码国产精品久久| 日韩中文字幕一区二区三区| 国模视频一区二区| 黄色录像一级片| 一区二区小说| 精品蜜桃在线看| 中文av一区二区三区| 松下纱荣子在线观看| 亚洲精品免费播放| 永久免费精品视频网站| 黄色av网站在线免费观看| 国产99久久久久| 成人激情视频网| av网站中文字幕| 亚洲调教视频在线观看| 最近2019中文字幕第三页视频| 51调教丨国产调教视频| 第四色在线一区二区| 91精品国产福利在线观看| 欧美大尺度做爰床戏| 欧美大片免费高清观看| 精品国产精品自拍| a级免费在线观看| huan性巨大欧美| 国产精品成人免费精品自在线观看 | 男女爱爱视频网站| 日本三级视频在线播放| 国产精品久久久久久一区二区三区 | 国产精品福利电影| 麻豆国产精品官网| 国产欧美一区二区三区久久| 亚洲图片中文字幕| 蜜臀av在线播放一区二区三区| 国产成人精品亚洲精品| 国产成人精品777777| 99精品视频免费全部在线| 韩国国内大量揄拍精品视频| 国产对白videos麻豆高潮| 亚洲一级二级| 97在线看免费观看视频在线观看| 国产成人亚洲精品自产在线| 日韩一级精品| 日本中文字幕久久看| 中文字幕av第一页| 六月丁香婷婷色狠狠久久| 国产精品视频xxx| 亚洲一卡二卡在线| 激情欧美日韩一区二区| 97操在线视频| 搡老岳熟女国产熟妇| 91色porny| 色狠狠久久av五月综合| 伦xxxx在线| 一区二区高清免费观看影视大全| 亚洲色成人www永久在线观看| xxx.xxx欧美| 色综合久久88色综合天天6| 中文字幕第80页| 国语精品视频| 日韩av在线直播| 日本精品久久久久中文| 亚洲v在线看| 国内精品久久久久久中文字幕| av资源免费观看| 蜜桃av噜噜一区| 97se在线视频| 高清美女视频一区| 一区二区三区中文免费| 欧美 日韩 亚洲 一区| 欧美日韩在线精品一区二区三区激情综合| 在线电影国产精品| 欧产日产国产精品98| 国产99久久久国产精品成人免费 | 国产一区视频观看| 九色视频在线播放| 伊人夜夜躁av伊人久久| 欧美黄色免费影院| 2020国产精品小视频| 日韩欧美成人一区二区| 欧美多人猛交狂配| 欧美韩国一区| 国产精品美女久久| 欧美特黄一级视频| 国产精品人妖ts系列视频| 天堂…中文在线最新版在线| 高清一区二区| 亚洲美女视频网| 麻豆影视在线播放| 奇米精品一区二区三区在线观看| 国产高清自拍99| 在线免费看黄| 色综合亚洲欧洲| wwwww在线观看| 91亚洲国产| 5566日本婷婷色中文字幕97| 国产999久久久| 国产精品视频免费看| 乱妇乱女熟妇熟女网站| 婷婷综合国产| 久久精品最新地址| 免费黄色小视频在线观看| www.亚洲人| 日本a级片在线播放| 久久91视频| 亚洲性无码av在线| www.久久精品视频| 99国产精品国产精品毛片| 久久久无码中文字幕久...| 影音成人av| 亚洲免费伊人电影在线观看av| 久草视频手机在线观看| 国内精品伊人久久久久av影院| 日韩妆和欧美的一区二区| 国产夫妻在线播放| 精品久久一区二区三区| 五月天激情丁香| 精品一区二区国语对白| 一区二区三区四区视频在线| 日本综合视频| 中文字幕日韩av电影| 日日夜夜狠狠操| 久久久一区二区| 91免费视频网站在线观看| 卡通动漫国产精品| 97视频免费观看| 熟妇高潮一区二区高潮| 精品福利樱桃av导航| 精品少妇人妻av一区二区三区| 极品av少妇一区二区| 成人在线观看91| 波多野结衣在线播放| 亚洲成人av资源网| 亚洲一区欧美在线| 久久综合久久鬼色| 精品久久久久久久免费人妻| 久久99免费视频| 国产精品成人av性教育| 天堂аⅴ在线地址8| 91精品久久久久久久91蜜桃| 手机在线中文字幕| 国产精品456| 可以看毛片的网址| 亚洲视频分类| 国产精品久久久久久久久久久久久久| 福利成人在线观看| 欧美精品在线视频| 精品少妇一二三区| 久久一区二区三区国产精品| 色一情一乱一伦一区二区三区日本| 欧美日中文字幕| 成人欧美一区二区三区在线 | 高清国产mv在线观看| 亚洲超碰精品一区二区| 男人天堂av电影| 看电视剧不卡顿的网站| 7777在线视频| 国内自拍欧美| 国产精品户外野外| 最爽无遮挡行房视频在线| 欧美v亚洲v综合ⅴ国产v| 国产成人一区二区三区影院在线| 国产亚洲1区2区3区| 中文字幕线观看| 尹人成人综合网| 日韩精品一线二线三线| 日韩综合一区二区三区| 欧美在线视频免费| 成人免费在线| 精品中文字幕久久久久久| 一级片视频播放| 亚洲电影一级黄| 日本美女黄色一级片| 成人性视频网站| 杨幂毛片午夜性生毛片| 伊人狠狠色j香婷婷综合| 亚洲国产一区二区精品视频| 哺乳挤奶一区二区三区免费看| 国产福利精品在线| 天堂va在线| 自拍偷拍亚洲区| 天天操天天爱天天干| 91.成人天堂一区| 黄色片网站在线免费观看| 亚洲日本青草视频在线怡红院| 亚洲av无码国产精品久久| 极品尤物av久久免费看| 人妻有码中文字幕| 午夜欧美精品久久久久久久| 日本公妇乱淫免费视频一区三区| 亚洲91网站| 国产精品自在线| 成人性教育av免费网址| 久久成年人免费电影| 成年人视频在线观看免费| 亚洲国内精品视频| 国产女人18毛片水真多| 欧美中文字幕一二三区视频| 天堂网av手机版| 亚洲午夜久久久久| 一区二区视频免费看| 国产亚洲欧美在线| 中文字幕狠狠干| 白白色 亚洲乱淫| 国产男女无遮挡猛进猛出| 日本不卡一区二区三区高清视频| 欧美午夜小视频| 国内精品久久久久久久97牛牛 | 精品国产91亚洲一区二区三区www| 国产精品一区二区三区av| 国产精品久久久久福利| 激情开心成人网| 欧美在线视频一区| 色多多在线观看| 97精品国产aⅴ7777| 国产在线xxx| 欧美激情一二三| 日韩精品卡一| 欧美大片免费观看在线观看网站推荐 | 国产精品18久久久久久久网站| 欧美激情第3页| 麻豆中文一区二区| 亚洲欧洲日本精品| 美日韩一区二区三区| 中文字幕在线导航| 蜜臀久久99精品久久久画质超高清| 少妇高清精品毛片在线视频| 天堂一区二区在线| 黑人粗进入欧美aaaaa| 三级不卡在线观看| 日本超碰在线观看| 久99久精品视频免费观看| 四季av一区二区三区| 黄色资源网久久资源365| 亚洲色图欧美自拍| 国产精品69久久久久水密桃| 韩国三级hd中文字幕有哪些| 国产福利91精品一区二区三区| 95视频在线观看| 久久午夜电影网| 在线观看免费小视频| 国产精品久久久久久久久久久免费看| 后入内射无码人妻一区| 亚洲人成在线播放网站岛国| 538任你躁在线精品视频网站| 亚洲一区二区三区四区五区黄 | 成人h在线播放| 超碰97久久| 欧美一区二区在线视频观看| 日韩电影二区| 蜜桃视频一区二区在线观看| 亚洲国内自拍| 牛夜精品久久久久久久| 国产精品综合二区| 国产精品久久久免费观看| 久久人人爽人人爽| 亚洲天堂黄色片| 欧美日韩激情小视频| 成人黄色免费网| 精品免费视频.| 高清美女视频一区| 欧美国产日韩一区二区| 成人黄色免费短视频| 91久久久久久| 日韩激情啪啪| 在线观看国产一区| 亚洲精品专区| 中文av一区二区三区| 不卡视频免费播放| 一本在线免费视频| 亚洲va欧美va人人爽| 中文字幕男人天堂| 亚洲国产精品嫩草影院久久| av在线首页| 国内精品一区二区三区| 78精品国产综合久久香蕉| 99在线影院| 日韩欧美一区免费| 日韩激情免费视频| 国产精品亚洲视频| 一级黄色录像毛片| 亚洲高清视频的网址| 一级片视频免费| 精品亚洲一区二区三区| 91麻豆免费在线视频| 国产精品高清免费在线观看| 爱爱精品视频| 在线视频不卡国产| 日韩精品久久理论片| 国产精品一区二区人妻喷水| 亚洲人成精品久久久久| 亚洲 小说区 图片区| 日韩av网址在线| 国产蜜臀在线| 成人免费网站在线观看| 免费视频国产一区| 欧美在线一区视频| 国产精品亚洲专一区二区三区| 老司机福利在线观看| 色综合欧美在线| 天天在线女人的天堂视频| 欧美国产日本在线| 国产一区二区三区免费在线| 深田咏美在线x99av| 亚洲专区欧美专区| 国产 xxxx| 亚洲一区二区三区影院| 国产免费高清av| www高清在线视频日韩欧美| 精品日本视频| 日韩av不卡在线播放| 乱码第一页成人| 在线观看国产免费视频| 亚洲一二三四在线观看| 精品人妻伦一区二区三区久久| 精品国产一区二区三区在线观看| 日本肉肉一区| 日韩一区二区三区资源| 日韩精品电影在线| 黄色片在线观看免费| 色嗨嗨av一区二区三区| 国产理论电影在线观看| 国产精品aaaa| 欧美系列电影免费观看| 亚州精品一二三区| 国产精品天干天干在观线| 中文字幕人妻色偷偷久久| 色偷偷88888欧美精品久久久| 另类一区二区| 秋霞在线一区二区| 国产精品羞羞答答xxdd| 九九视频免费在线观看| 精品国产三级电影在线观看| free性m.freesex欧美| 精品一区二区久久久久久久网站| 午夜在线视频观看日韩17c| 在线免费观看成年人视频| 91久久精品一区二区| 77导航福利在线| 91久久精品美女| 韩日成人在线| 丰腴饱满的极品熟妇| 欧美日韩色一区| av中文字幕在线观看| 国产精品日本一区二区| 欧美亚洲网站| 亚洲国产精品一区二区久久hs| 91精品在线免费| wwww亚洲| 欧美日韩亚洲一区二区三区在线观看| 麻豆精品新av中文字幕| 国产精品白嫩白嫩大学美女| 亚洲电影免费观看高清完整版在线| 欧美极品videos大乳护士| 亚洲精品在线免费| 国产精品一区二区不卡| 99热在线观看免费精品| 在线免费看av不卡| 精品一区二区三区免费看| 日本国产在线播放| 国产精品久久久久一区二区三区共| 99久久久久久久| 欧美一级bbbbb性bbbb喷潮片| 日韩成人a**站| 国产精品久久久久久亚洲av| 色综合久久88色综合天天免费| 老司机午夜在线| 久久精品国产一区二区三区不卡| 麻豆91在线播放免费| 国产中文字幕免费| 宅男66日本亚洲欧美视频| 成人资源在线播放| av在线无限看| 天天综合天天综合色| 欧美性天天影视| 久久99精品久久久久久久青青日本 | 不卡的日韩av| 国产91热爆ts人妖在线| 综合日韩在线| 最新中文字幕av| 亚洲激情 国产|