使用 DeepSeek R1 大模型和 Ollama 构建本地 RAG 系统-2

B站影视 2025-02-01 11:30 3

摘要:Ollama 和 DeepSeek R1 作为语言模型(LLM)。LangChain 来处理文档加载、文本分割、嵌入和检索。Streamlit 来创建一个用户友好的网页界面,用于上传 PDF 和提问。

系列文章:

使用 DeepSeek R1 大模型和 Ollama 构建本地 RAG 系统-1

RAG 是一种混合方法,它从知识库中检索相关文档或信息(检索),然后使用生成模型根据检索到的内容合成回答。这确保了回答既准确又与上下文相关。

在下面的实现中,我们将使用:

Ollama 和 DeepSeek R1 作为语言模型(LLM)。LangChain 来处理文档加载、文本分割、嵌入和检索。Streamlit 来创建一个用户友好的网页界面,用于上传 PDF 和提问。

LangChain 是一个开源框架,旨在帮助开发者构建基于语言模型的应用程序。它提供了一系列工具和组件,使得开发者可以更轻松地集成和使用各种语言模型。

需要安装langchain 包:pip install langchain

如果之前已经安装过了,需要更新到最新版的langchain:pip install --upgrade langchain

同时,还需要安装和更新 langchain-community 包:

pip install --upgrade langchain-community

查询当前的langchain和langchain-community版本:

pip show langchain langchain-community

Name: langchain

Version: 0.3.17

Summary: Building applications with LLMs through composability

Home-page: https://github.com/langchain-ai/langchain

Author:

Author-email:

License: MIT

Location: /Users/rickie/opt/anaconda3/envs/demo-env/lib/python3.12/site-packages

Requires: aiohttp, langchain-core, langchain-text-splitters, langsmith, numpy, pydantic, PyYAML, requests, SQLAlchemy, tenacity

Required-by: langchain-community

---

Name: langchain-community

Version: 0.3.16

Summary: Community contributed LangChain integrations.

Home-page: https://github.com/langchain-ai/langchain

Author:

Author-email:

License: MIT

Location: /Users/rickie/opt/anaconda3/envs/demo-env/lib/python3.12/site-packages

Requires: aiohttp, dataclasses-json, httpx-sse, langchain, langchain-core, langsmith, numpy, pydantic-settings, PyYAML, requests, SQLAlchemy, tenacity

Required-by: langchain-experimental

以下是 LangChain 的一些主要特点和功能:

文档加载器:LangChain 提供了多种文档加载器,可以从不同的数据源(如 PDF、文本文件、网页等)中加载文档。文本分割器:支持多种文本分割策略,可以将长文本分割成更小的段落,以便更好地处理和分析。嵌入生成器:集成了多种嵌入生成器,可以将文本转换为向量表示,用于相似度计算和检索任务。向量存储:提供了高效的向量存储解决方案,如 FAISS,可以快速检索相似的向量。语言模型:支持多种语言模型的集成,如 HuggingFace、OpenAI 等,可以用于生成文本、回答问题等任务。链式调用:支持将多个组件链式调用,构建复杂的处理流程,如文档检索、问答系统等。

Streamlit 是一个开源的 Python 库,旨在帮助开发者快速创建和共享数据应用程序。通过使用简单的 Python 脚本,开发者可以轻松地将数据分析、机器学习模型和其他数据驱动的应用程序转换为交互式的 Web 应用。

Streamlit 的主要特点包括:

简单易用:使用简单的 Python 代码即可创建复杂的 Web 应用。实时更新:支持实时更新和交互,用户可以在应用中进行操作并立即看到结果。无缝集成:与常见的数据科学库(如 Pandas、NumPy、Matplotlib 等)无缝集成。开源免费:完全开源,任何人都可以免费使用和贡献代码。

要安装 Streamlit,可以在终端或命令行中运行以下命令:

pip install streamlit

安装完成后,可以通过运行以下命令启动一个 Streamlit 应用:

streamlit run your_script.py

另外,还需要安装 pdfplumber 包。pdfplumber 是一个 Python 库,用于从 PDF 文件中提取文本、表格和元数据。它提供了一个简单直观的 API,使得处理 PDF 文档变得容易。

pdfplumber安装直接采用pip即可。命令行中输入:

pip install pdfplumber

来源:软件架构

相关推荐