【RAG知识库】本地搭建chatgpt知识库

🤖️ 一种利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。

实现原理如下图所示,过程包括加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的 top k个 -> 匹配出的文本作为上下文和问题一起添加到 prompt中 -> 提交给 LLM生成回答。

langchain+chatglm (1).png langchain+chatglm2.png

环境准备

硬件准备:

win11+wsl2,显卡最好是N卡,我的是2080ti22g(魔改版),这款性价比很高,推荐购买。

软件准备:

  1. 安装python环境管理工具,pyenv或者conda,我这里用的pyenv
  2. 安装好python 3.10版本,
  3. 安装好显卡驱动和cuda,根据显卡来安装版本,在win11下安装就行。
  4. 安装好git
  5. 有梯子的话建议整一个。
验证显卡,python和cuda

方法一、 打开命令提示符或 PowerShell。输入以下命令:nvidia-smi在输出中,可以看到显卡的名称和支持的 CUDA 版本。

WindowsTerminal_h3r8TYIpGu.png 方法二、 使用 Python导入 torch 库。 使用torch.cuda.is_available() 函数来检查是否支持 CUDA。 使用torch.cuda.get_device_name(0) 函数来获取第一个显卡的名称。 使用torch.cuda.get_device_properties(0)函数来获取第一个显卡的属性,其中包括支持的 CUDA 版本。 示例代码:

import torch

if torch.cuda.is_available():
    print(f"支持 CUDA,第一个显卡名称:{torch.cuda.get_device_name(0)}")
    print(f"第一个显卡支持的 CUDA 版本:{torch.cuda.get_device_properties(0).cuda_version}")
else:
    print("不支持 CUDA")

这里可能有个小坑,如果win11里可以看到gpu可用,但是wsl2中无可用cpu,可以把wsl2先停掉,再重新启动。

本地搭建步骤

1、复制项目

git clone https://github.com/chatchat-space/Langchain-Chatchat.git; 
cd Langchain-Chatchat

2、创建环境

这里不管你用什么虚拟环境管理都可以,一定用一个单独的环境,防止依赖冲突和报错。这里是以pyenv为例子。

python -m venv test_langchain_chat
source test_langchain_chat/bin/activate

3、安装依赖

这里安装的适合如果下载的太慢,可以使用安装源,

a、 使用-i参数安装

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ package_name

b、全局设置安装源

可以修改 pip 的配置文件 pip.conf 来全局指定 pip 镜像源。pip.conf 文件位于用户目录下的 .config/pip 目录中。 在 pip.conf 文件中,添加以下内容:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/

保存并关闭 pip.conf 文件后,重启 pip。

c、安装所有依赖
# 安装全部依赖
pip install -r requirements.txt 
pip install -r requirements_api.txt
pip install -r requirements_webui.txt 

4、下载模型

在本地或离线环境下运行,需要首先将项目所需的模型下载至本地,通常开源 LLM 与 Embedding 模型可以从 HuggingFace下载。以本项目中默认使用的 LLM 模型 THUDM/ChatGLM3-6B 与 Embedding 模型 BAAI/bge-large-zh 为例:

下载模型常用的网站有以下几个,

  1. huggingface.co/
  2. www.modelscope.cn/models

下载方式有以下几种

a、git lfs下载

先安装git lfs,如下: docs.github.com/zh/reposito…

git lfs install
git clone https://huggingface.co/THUDM/chatglm3-6b
git clone https://huggingface.co/BAAI/bge-large-zh

b、使用huggingface_hub下载

详细的教程可以参考:hf-mirror.com/docs/huggin…

pip install --upgrade huggingface_hub
from huggingface_hub import hf_hub_download
hf_hub_download(repo_id="lysandre/arxiv-nlp", filename="config.json")

c、使用modelscope-cli下载
## 安装下载客户端
pip install modelscope-cli

## 下载模型
modelscope download bert-base-chinese
 

5、修改和初始化配置

a、初始化配置
## 复制配置文件
python copy_config_example.py
## 初始化知识库
python init_database.py --recreate-vs

b、修改模型配置

修改configs/model_config.py 建议把所有的模型放到一个文件夹,后续如果玩其他大模型指定以下目录就行了。

MODEL_ROOT_PATH = "/home/xx/soft/ai-models"

6、启动调试

执行命令启动服务;访问http://localhost:8501/

python startup.py -a

7、知识库测试

我这里上传了几本epub书籍,都是金融相关的。搜索什么是指数基金是可以显示知识库来源的。

msedge_HkBGMt4pXX.png

msedge_aD0Pi0SNcJ.png

如何系统的去学习大模型LLM ?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

事实上,抢你饭碗的不是AI,而是会利用AI的人。

科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

在这里插入图片描述

二、640套LLM大模型报告合集

这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)

在这里插入图片描述

三、LLM大模型系列视频教程

在这里插入图片描述

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

在这里插入图片描述

LLM大模型学习路线

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。

  • 内容

    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。

  • 内容

    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.3 流水线工程
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

  • 内容

    • L3.1 Agent模型框架
    • L3.2 MetaGPT
    • L3.3 ChatGLM
    • L3.4 LLAMA
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

  • 内容

    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

<think>嗯,用户想在Mac上设置本地知识库,并且和ChatGPT集成。首先,我需要回忆一下相关的工具和步骤。之前看到过Ollama和AnythingLLM的组合,可能适合这个需求。Ollama是用来在本地运行大语言模型的,比如Llama 3,而AnythingLLM是一个开源的AI问答知识库工具,可以整合本地文档。 首先,用户需要安装Ollama。在Mac上可以通过Homebrew安装,或者直接下载安装包。安装完成后,需要下载并运行模型,比如llama3,这样本地就有模型可用了。然后,安装AnythingLLM,用户可以选择Docker方式或者直接下载Mac版。Docker可能更灵活,但需要先安装Docker Desktop。如果用户不熟悉Docker,可能直接下载Mac应用更方便。 接下来是配置AnythingLLM。首次启动时,需要设置管理员账户,然后选择LLM提供商,这里应该选Ollama,并填入本地地址,比如http://localhost:11434。然后选择模型,比如llama3。之后需要创建知识库,上传文档,比如PDF、TXT等。上传后,系统会进行向量化处理,可能需要一些时间。 集成完成后,用户可以在聊天界面提问,AnythingLLM会结合本地知识库和模型生成回答。此外,用户可能还需要优化知识库,比如更新文档或调整分块策略。如果遇到问题,可能需要检查Ollama是否运行,模型是否加载正确,或者文档格式是否支持。 另外,用户可能关心性能问题,比如处理速度或者资源占用。Mac的配置可能会影响这些,尤其是使用较大模型时。可能需要推荐用户使用较小的模型或者调整参数。同时,引用部分提到的RAG技术,可以解释一下为什么结合本地知识库能提高准确性,引用的资料里提到RAG适合本地应用,结合现有资料和LLM能力,提供更准确的答案。 还要注意用户可能的问题,比如如何更新知识库,如何处理不同格式的文档,或者如何优化回答质量。可能需要建议定期更新文档,确保数据最新,或者调整分块大小和重叠参数来提高检索效果。此外,备份知识库数据也是重要的,防止数据丢失。 总结步骤应该是清晰的,分步指导用户安装、配置、使用,并给出优化建议。同时生成的相关问题要覆盖安装问题、模型选择、文档处理、性能优化和应用场景,帮助用户全面了解。</think>以下是在 Mac 上使用 Ollama + AnythingLLM 搭建本地知识库并与 ChatGPT 模型集成的分步指南: ### 一、环境准备 1. **安装 Ollama**(本地模型运行环境) ```bash # 使用 Homebrew 安装 brew install ollama # 启动服务(会自动创建 ~/.ollama 目录存放模型) ollama serve ``` 或直接下载[官方 Mac 安装包](https://ollama.ai/download) 2. **下载语言模型** ```bash ollama pull llama3 # 推荐 8B 参数版本,适合 Mac 本地运行 ``` ### 二、部署 AnythingLLM #### 方案 1:Docker 部署(推荐) ```bash # 安装 Docker Desktop for Mac https://www.docker.com/products/docker-desktop/ # 拉取镜像 docker pull mintplexlabs/anythingllm # 创建数据目录 mkdir -p ~/anythingllm_data # 启动容器 docker run -d \ --name anythingllm \ -p 3000:3000 \ -v ~/anythingllm_data:/app/server/storage \ mintplexlabs/anythingllm:latest ``` #### 方案 2:直接安装 Mac 版 从 [GitHub Releases](https://github.com/Mintplex-Labs/anything-llm/releases) 下载 `.dmg` 安装包 ### 三、配置知识库集成 1. **访问控制台** 浏览器打开 `http://localhost:3000` → 创建管理员账户 2. **连接本地模型** ``` 工作区设置 → LLM 偏好设置 → 选择 Ollama → 填入 API 端点 http://localhost:11434 → 选择已下载的 llama3 模型 ``` 3. **创建知识库** ```markdown 1. 新建工作区 → 启用 "向量检索增强生成(RAG)" 2. 上传文档(支持 PDF/TXT/Word/Markdown/网页等格式) 3. 系统会自动将文档切片并向量化存储 ``` ### 四、使用示例 通过聊天界面提问时,系统会: 1. 从知识库中检索相关段落 2. 将检索结果与问题组合成增强提示 3. 调用本地 LLM 生成最终回答 $$ RAG\ Pipeline = Document_{retrieval} \oplus Prompt_{engineering} \rightarrow LLM_{generation} $$ ### 五、优化建议 - **知识库更新**:定期上传最新文档保持数据时效性 - **分块策略**:调整文档切片大小为 512-1024 tokens(通过工作区设置) - **模型选择**:M1/M2 Mac 建议使用量化版模型(如 `llama3:8b-instruct-q4_0`) >> 常见问题排查: - 若出现响应延迟,检查 Mac 活动监视器的内存占用 - 文档处理失败时,确认文件编码为 UTF-8 - 模型未加载时执行 `ollama ps` 查看运行状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值