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、Qwen2.5等工具,这些都是搭建本地知识库的关键组件。 首先,用户需要安装Ollama来运行本地大模型。Ollama支持多种模型,比如Qwen2.5,安装过程应该比较简单,通过命令行下载安装即可。然后,下载并配置AnythingLLM,这是一个RAG框架,支持多种嵌入模型,包括Ollama本地模型。安装Docker是必须的,因为AnythingLLM依赖它来运行容器。 接下来,配置知识库的时候需要选择嵌入模型,这里用户可以选择Ollama提供的模型,确保数据在本地处理,保障隐私。添加本地文档到知识库,比如PDF或TXT文件,这样AnythingLLM会进行处理和向量化存储。 集成ChatGPT的话,可能需要通过API的方式,但用户可能更希望使用本地模型来避免数据外传。引用中提到AnythingLLM支持本地AI模型,所以应该可以设置Ollama本地模型作为LLM,这样所有的处理都在本地完成,不需要外部API。 管理知识库方面,定期更新文档和监控使用情况是必要的,确保数据准确性和系统性能。用户可能关心安全性和隐私,所以需要强调所有步骤都在本地运行,数据不会上传到外部服务器。 用户可能遇到的问题包括Docker的安装配置、模型下载失败或者AnythingLLM的设置错误。需要提醒用户检查网络连接,确保Docker服务正常运行,以及正确配置模型路径和端口。 总结下来,步骤分为安装Ollama、部署AnythingLLM、配置知识库、集成本地模型,最后测试和使用。整个过程需要按照顺序逐步进行,并验证每一步是否成功,比如运行Ollama的测试命令,访问AnythingLLM本地端口等。</think>以下是在Mac上创建本地知识库并与ChatGPT集成的分步指南,结合引用内容的技术方案: ### 一、环境准备 1. **安装Ollama本地大模型** - 下载地址:`https://ollama.ai/download` - 终端执行:`curl -fsSL https://ollama.ai/install.sh | sh` - 测试安装:`ollama run qwen2.5:7b`(加载清华的Qwen2.5模型)[^2] 2. **部署Docker环境** - 官网下载Docker Desktop for Mac - 启动后需分配至少4GB内存给容器[^4] ### 二、搭建知识库核心 1. **部署AnythingLLM** ```bash git clone https://github.com/Mintplex-Labs/anything-llm cd anything-llm docker-compose up -d ``` - 访问`http://localhost:3001`进入控制台 2. **配置嵌入模型** ```mermaid graph LR A[工作区设置] --> B[选择Ollama] B --> C{模型选择} C --> D[Qwen2.5] C --> E[Llama3] ``` 在LLM设置中选择`Local:Ollama`,输入`http://localhost:11434`作为API端点 ### 三、知识库集成 1. **文档处理流程** - 支持格式:PDF/TXT/DOCX/Markdown - 处理方式: $$ \text{文档} \xrightarrow{\text{分词}} \text{向量} \xrightarrow{\text{FAISS}} \text{索引} $$ - 单个文档限制<10MB,建议文本类文件优先[^4] 2. **ChatGPT集成模式** - 本地模式:直接调用Ollama本地模型 - 混合模式:敏感问题走本地模型,通用问题调用ChatGPT API - API配置路径:`设置 > 第三方集成 > OpenAI`[^1] ### 四、典型应用场景 1. **企业知识管理** - 案例:上传内部技术手册后,提问"如何处理XX设备故障?"会优先返回本地文档内容 2. **学术研究** - 上传论文合集后询问"请总结近三年NLP领域突破",系统结合本地文献和模型推理生成答案 ### 五、安全设置建议 1. 启用本地加密存储 ```python # 在AnythingLLM配置文件中设置 STORAGE_ENCRYPTION_KEY = "自定义32位密钥" ``` 2. 配置访问控制: - 基础认证:`admin:password@localhost:3001` - OAuth集成(可选)[^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值