精品欧美一区二区三区在线观看 _久久久久国色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在线| 亚洲精品人妻无码| 老司机免费视频久久| 精品国产视频在线| 精品黑人一区二区三区观看时间| 国产激情欧美| 亚洲精品乱码久久久久| 欧美日韩精品中文字幕一区二区| 中文av免费观看| 韩国av一区| 日韩在线观看免费| 国产精品成人一区二区三区电影毛片| www.成人在线.com| 色94色欧美sute亚洲线路二| 影音先锋成人资源网站| 搞黄视频免费在线观看| 国产不卡视频在线观看| 国产精品久久久久9999| 久久午夜免费视频| 亚洲v在线看| 亚洲天堂第二页| 扒开伸进免费视频| 精品中文字幕一区二区三区| 欧美自拍偷拍午夜视频| 欧美亚洲国产成人| 欧美24videosex性欧美| 亚洲欧洲日韩一区二区三区| 日本在线播放不卡| 性xxxx18| 成人黄色在线视频| 999精品视频一区二区三区| 这里只有精品9| 丝瓜av网站精品一区二区| 97视频网站入口| 久久久无码一区二区三区| 中文字幕一区二区三三| 久久精品2019中文字幕| 呻吟揉丰满对白91乃国产区| 国产精品一区二区三区av麻| 亚洲精品国产欧美| av电影在线播放| 久久大胆人体视频| 亚洲国产成人在线视频| 国产二级一片内射视频播放| 亚洲精品一区二区三区在线| 精品欧美一区二区在线观看| 无码人妻少妇色欲av一区二区| 日韩一级特黄| 欧美日韩www| 天天操天天干天天做| 欧美美女被草| 在线电影一区二区三区| 日日夜夜精品视频免费观看| 国产一区2区在线观看| 日韩亚洲电影在线| 亚洲黄色小说在线观看| 国产精品极品| 亚洲精品成人久久电影| 欧美一区二区三区成人精品| 免费看成人哺乳视频网站| 亚洲视频在线免费观看| 久久视频一区二区三区| 一区二区蜜桃| 国内久久久精品| 国产精品人人人人| 日本亚洲视频在线| 国产在线精品播放| 国产女人爽到高潮a毛片| 国产成人99久久亚洲综合精品| 日本h片在线| 99精品小视频| 不卡av电影院| 久久久久久久伊人| 一本色道久久精品| 日韩美女视频中文字幕| 亚洲天堂狠狠干| 国产一区二区三区久久久| 高清av免费一区中文字幕| 天天操天天操天天操| 国产丝袜美腿一区二区三区| 一本一本a久久| 欧美wwww| 欧洲国内综合视频| 欧美专区第二页| 少妇久久久久| 久久视频在线直播| 日韩精品国产一区二区| 日av在线不卡| 国产精品视频入口| 国产精品久久久久一区二区国产 | 精品国产精品自拍| 色综合天天色综合| 中文字幕区一区二区三| 亚洲色图美腿丝袜| 毛片aaaaa| 日韩在线a电影| 999国产视频| а天堂8中文最新版在线官网| 一区二区三区中文字幕| 亚洲人成无码www久久久| 国产一区一区| 伊人久久精品视频| 中文字幕一区二区三区手机版| 日本va欧美va瓶| 国产私拍一区| 国产精品久久麻豆| 色综合色综合色综合色综合色综合| 欧美xxxxxbbbbb| 红桃成人av在线播放| 欧美精品久久久久a| 久久久久久草| 毛片在线播放网址| 亚洲一区二区三区四区在线 | 日韩精品久久久久久福利| 亚洲伦理一区二区三区| 丝袜美腿亚洲色图| 久久精品美女| 97在线超碰| 日韩欧美另类在线| 麻豆精品国产免费| 奇米影视在线99精品| 久久综合中文色婷婷| 国产乱妇乱子在线播视频播放网站| 欧美三级资源在线| 国产精品无码一区二区三区| 一区在线免费| av成人观看| 中文字幕资源网在线观看| 欧美网站大全在线观看| 最近中文字幕在线mv视频在线| 亚洲国产日韩欧美一区二区三区| 444亚洲人体| jizzjizz亚洲| 欧美一区二视频| 青花影视在线观看免费高清| 久久精品国产精品亚洲综合| 日韩在线导航| 99久久久国产精品免费调教网站| 亚洲视频在线免费观看| 激情网站在线观看| 国产目拍亚洲精品99久久精品| 国产三区在线视频| 精品在线99| 国产成人精品电影| 岛国最新视频免费在线观看| 在线观看国产91| 国产精品美女高潮无套| 免费美女久久99| 亚洲人久久久| 国产成人久久精品一区二区三区| 日韩一区av在线| 91久久久久国产一区二区| 中文字幕一区av| 成年网站免费在线观看| 亚洲国产一区二区在线观看| 91传媒免费看| 操人在线观看| 亚洲色图狂野欧美| 97免费观看视频| 中文字幕在线播放不卡一区| 亚洲成人av免费观看| 午夜精品国产| 国产视色精品亚洲一区二区| 欧美黑人一区| 久久精品99久久香蕉国产色戒| 国产美女精品视频国产| 亚洲国产一二三| 中文字幕在线免费看线人 | 亚洲一区二区三区在线播放| 亚洲av无码一区东京热久久| 国产日韩综合| 在线视频精品一区| japanese色系久久精品| 日本成人在线视频网址| 国产最新在线| 日韩电影中文 亚洲精品乱码| 国产又粗又猛又黄视频| 一区二区三区中文字幕| 美女洗澡无遮挡| 精品中文av资源站在线观看| 欧美乱大交xxxxx潮喷l头像| 国产成人短视频在线观看| 亚洲xxx大片| 欧美性xxx| 欧美精品做受xxx性少妇| 三级毛片在线免费看| 欧美精品一卡两卡| 女人十八岁毛片| 最新热久久免费视频| 欲求不满的岳中文字幕| 国内精品免费**视频| 欧美一级在线看| 88国产精品视频一区二区三区| 国外成人在线视频网站| 亚洲精品66| 欧美一级视频一区二区| 综合久久2019| www.xxxx精品| 涩涩视频在线观看免费| 欧美一二区视频| 青青艹在线观看| 亚洲国产乱码最新视频 | 国产大尺度视频| 免费一级欧美片在线观看| 少妇人妻大乳在线视频| 国产大片一区| 日韩中文字幕一区| 玖玖玖免费嫩草在线影院一区| 国产日韩精品综合网站| 日韩成人av电影| 久久久久久久影院| 成人福利片网站| 宅男66日本亚洲欧美视频| 完全免费av在线播放| 精品在线观看国产| 亚洲欧美黄色片| 欧美一区日本一区韩国一区| 在线播放国产一区| 91福利在线导航| 男人的天堂一区二区| 一区二区三区国产豹纹内裤在线| 99热这里只有精品4| 国产目拍亚洲精品99久久精品| 熟女人妻在线视频| 成人av网站免费| 亚洲精品一二三四| 国产麻豆91精品| 婷婷激情5月天| 麻豆精品一区二区av白丝在线| 国产麻花豆剧传媒精品mv在线| 亚洲人成免费| 国产一二三在线视频| 韩国精品一区二区三区| 国产一区二区四区| 午夜精品剧场| 黄色片免费在线观看视频| 牛夜精品久久久久久久99黑人| 国产高清精品软男同| 色无极亚洲影院| 夜夜爽www精品| 99精品电影| 日本女人高潮视频| 欧美激情视频一区二区三区在线播放| 在线国产精品网| 中文在线日韩| 青草视频在线观看视频| 最新国产乱人伦偷精品免费网站| 六月婷婷在线视频| 国产精品视区| 亚洲人成无码www久久久| 日本成人中文字幕在线视频| wwwwww.色| 韩国女主播成人在线观看| 国产黄色一区二区三区 | 亚洲av熟女国产一区二区性色| 国产日韩欧美一区二区三区乱码 | 粉嫩老牛aⅴ一区二区三区| 日韩三级视频在线播放| 欧美色另类天堂2015| 久久影视中文字幕| 欧美精品在欧美一区二区少妇| 91一区二区视频| 精品欧美一区二区三区精品久久| 日本国产在线观看| 亚洲乱码av中文一区二区| 成人资源www网在线最新版| 久久精品国产2020观看福利| av网站在线免费看推荐| 97国产一区二区精品久久呦| **欧美日韩在线观看| 成人免费网视频| 久久精品色综合| 日韩在线导航| 伊人蜜桃色噜噜激情综合| 成年人观看网站| 国内精品自线一区二区三区视频| 一个人看的视频www| 91首页免费视频| 女同久久另类69精品国产| 亚洲国产aⅴ天堂久久| 无码人妻av免费一区二区三区| 6080国产精品一区二区| 性xxxx视频| 久久久91精品| 欧美极品影院| 国产91色在线|亚洲| 精品一区三区| 日本中文字幕在线视频观看| 日本网站在线观看一区二区三区 | 国产精品久久影视| 精品五月天久久| 一广人看www在线观看免费视频| 欧美黑人一区二区三区| 99热播精品免费| 国产在线精品日韩| 91精品一区二区三区综合在线爱| 久久久久久久中文| 国产一区二区不卡| 丁香激情五月少妇| 欧美日韩另类视频| 99久久精品无免国产免费 | 精品国产一区二区三区日日嗨| 日本成人小视频| 欧美亚洲一二三区| 粉嫩一区二区三区性色av| 亚洲一区电影在线观看| 色综合天天综合网国产成人综合天| 午夜精品久久久久久久99老熟妇| 中文字幕不卡在线视频极品| 麻豆理论在线观看| 91原创国产| 围产精品久久久久久久| 动漫av免费观看| 91首页免费视频| 男女啊啊啊视频| 亚洲成人黄色网址| 超碰在线免费播放| 成人自拍性视频| 色综合久久一区二区三区| 成人3d动漫一区二区三区| 97se亚洲国产综合自在线| 久久久久97国产| 日韩欧美高清一区| 1024在线播放| 亚洲xxxx视频| 欧美区国产区| 国产成人av片| 亚洲国产综合91精品麻豆 | 亚洲性视频网站| 久久青青视频| 欧美成人第一区| 免费在线播放第一区高清av| 国产精品无码在线| 亚洲福利一区二区三区| 国产91免费在线观看| 欧美激情精品久久久久| 亚洲不卡在线| 免费的一级黄色片| 丁香激情综合国产| 日本少妇裸体做爰| 日韩电影免费观看在线观看| 黄毛片在线观看| 欧美激情论坛| 日韩成人免费在线| 永久免费毛片在线观看| 欧美日韩国产综合一区二区 | av伊人久久| 15—17女人毛片| 亚洲欧美日韩综合aⅴ视频| 国产视频在线一区| 欧美激情奇米色| 任你躁在线精品免费| 国产成人久久777777| 欧美激情一区二区在线| 92久久精品一区二区| 久久伊人色综合| 精品久久97| 妞干网在线免费视频| 国产精品毛片大码女人| av在线资源观看| 97视频在线观看免费高清完整版在线观看| 国产精品久久久久av蜜臀| 人妻内射一区二区在线视频| 欧美高清在线一区| 国产视频一区二区三区四区五区| 欧美激情极品视频| 精品国产乱码久久久久久果冻传媒 | 欧美黄色a视频| 日韩精品在线中文字幕| 久久亚洲一级片| 国产一区二区三区三州| 欧美精品久久久久久久| 欧美最新另类人妖| 免费人成视频在线播放| 岛国av在线不卡| 国产精品扒开做爽爽爽的视频| 国产麻豆日韩| 美日韩一区二区| 国产精品成人av久久| 亚洲一区www| 91精品国产自产在线丝袜啪| 欧美韩国日本在线| 一区二区三区日本| 国内精品在线视频| 99精品国产高清一区二区| 久久深夜福利| 久青草视频在线观看| 国产亚洲欧美日韩一区二区| 911亚洲精品| 亚洲少妇久久久| 五月天国产精品| 成人免费视屏| 亚洲精品国产精品国自产观看| a亚洲天堂av| 国产乱人乱偷精品视频a人人澡|