https://www.gravatar.com/avatar/7a0c24f697ea1587001c36d00039b60f?s=240&d=mp

使用LangChain与ChromaDB构建本地知识库RAG问答系统

前言 在大模型应用开发中,RAG(Retrieval-Augmented Generation,检索增强生成)是最核心的技术范式之一。它通过将外部知识库与大语言模型结合,解决了LLM的"幻觉"问题和知识时效性问题。 本文将从零开始,使用 LangChain 框架和 ChromaDB 向量数据库,构建一个完整的本地知识库问答系统。所有代码均可本地运行,无需依赖云端API。 为什么需要RAG? 直接使用大模型存在以下痛点: 知识截断:模型训练数据有截止日期,无法回答最新问题 幻觉问题:模型会"编造"不存在的信息 领域缺失:通用模型缺乏特定领域的专业知识 数据安全:企业内部数据不适合上传到第三方API RAG的核心思路是:先检索,再生成。从知识库中检索相关文档片段,将其作为上下文注入Prompt,让大模型基于真实数据进行回答。 技术架构 用户提问 ↓ [文档加载] → [文本分割] → [向量化] → [ChromaDB存储] ↓ 用户提问 → [Embedding] → [向量检索] → [Top-K相关片段] ↓ [Prompt组装] → [LLM生成回答] 环境准备 安装依赖 # 创建虚拟环境 python -m venv rag_env source rag_env/bin/activate # Linux/Mac # rag_env\Scripts\activate # Windows # 安装核心依赖 pip install langchain langchain-community langchain-chroma chromadb pip install sentence-transformers # 本地Embedding模型 pip install unstructured # 文档加载器 pip install tiktoken # Token计算 项目结构 rag_project/ ├── knowledge_base/ # 知识库文档目录 │ ├── doc1.

2023 11 08 阿里云Linux更新docker

前言 我的系统信息: Distributor ID: AlibabaCloud(AliyunLinux) Description: Alibaba Cloud Linux (Aliyun Linux) release 2.1903 LTS (Hunting Beagle) Release: 2.1903 aliyun linux 2实际对应的是centos7。默认的docker版本是Docker version 1.13.1, build 7d71120/1.13.1,这个版本已经很老旧了,无法兼容一些新的容器。所以升级是非常有必要的。 卸载旧版本 删除docker yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine 如果无法卸载,则需要先查看安装的docker包。 执行下面的指令: yum list installed | grep docker 打印结果如下: docker.x86_64 2:1.13.1-209.git7d71120.1.al7 @updates docker-client.x86_64 2:1.13.1-209.git7d71120.1.al7 @updates docker-common.x86_64 2:1.13.1-209.git7d71120.1.al7 @updates docker-compose.noarch 1.18.0-4.el7 @epel docker-rhel-push-plugin.x86_64 2:1.13.1-209.git7d71120.1.al7 @updates python36-docker.noarch 2.6.1-3.el7 @epel python36-docker-pycreds.

2022 11 23 Alibaba Cloud Linux更新git版本到2.x

Alibaba Cloud Linux是阿里云基于龙蜥社区(OpenAnolis)的龙蜥操作系统(Anolis OS)打造的操作系统发行版,兼容RHEL/CentOS。 底层实际就是centos,先要区分你的版本是centos7还是8。 Alibaba Cloud Linux 3选择Linux kernel 5.10 LTS,同时默认搭载GCC 10.2、binutils 2.35、glibc 2.32等基础软件。 Alibaba Cloud Linux 2选择Linux kernel 4.19 LTS,同时提供GCC-7.3.1/8.2.1/9.1.1的devtoolset支持。 Alibaba Cloud Linux 3基于Anolis OS 8打造,兼容CentOS 8、RHEL 8生态。 Alibaba Cloud Linux 2基于Aonlis OS 7打造,兼容CentOS 7、RHEL 7生态。 可以通过cat /proc/version指令查看你的内核版本,以此来判断你是7还是8。 Linux version 4.19.91-24.1.al7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)) #1 SMP Wed Jul 21 17:40:23 CST 2021 比如我的是4.19,那么就是centos 7。 1. 首先要添加源 如果是其他版本的,自行在这里https://packages.endpointdev.com查找 yum install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm (非root用户前面需要添加sudo) 2. 修改repo文件 如果你此时去yum install git会报错