LangChain-Chatchat 开源知识库来了

LangChain-Chatchat 开源知识库来了

LangChain-Chatchat 是基于 ChatGLM 等大语言模型与 LangChain 等应用框架实现,开源、可离线部署的 RAG 检索增强生成大模型知识库项目。最新版本为 v0.2.10,目前已收获 26.7k Stars,非常不错的一个开源知识库项目。

项目地址:https://github.com/chatchat-space/Langchain-Chatchat

LangChain-Chatchat 架构设计

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

依托于本项目支持的开源 LLM 大模型与 Embedding 嵌入模型,本项目可实现全部使用开源模型 离线私有部署。与此同时,本项目也支持 OpenAI GPT API 的调用,并将在后续持续扩充对各类模型及模型 API 的接入。

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

从文档处理角度来看,实现流程如下:

LangChain-ChatChat 具体实现过程

  • 任务定义

    首先,我们需要定义问答任务。在 LangChain 中,任务是通过一系列 JSON 格式的配置文件来定义的。对于问答任务,我们需要指定输入文本、输出文本、知识库等相关信息。

  • 模型选择

    在定义完任务后,我们需要选择合适的模型来完成任务。LangChain 支持多种自然语言处理模型,比如:BERT、GPT 等。对于问答任务,我们可以选择使用问答模型,比如:QA-BERT、QA-GPT 等。

  • 数据处理

    在模型选择完成后,我们需要对输入数据进行处理。这包括文本清洗、分词、编码等步骤。LangChain 提供了一系列工具和库,方便我们进行数据处理。

  • 输出生成

    最后,我们需要将模型的输出转换为人类可读的格式。在问答任务中,输出通常是一个答案文本。我们可以使用 LangChain 提供的输出生成工具,将模型的输出转换为格式化的答案文本。

一键本地离线部署

软件环境

  • Linux Ubuntu 22.04.5 kernel version 6.7
  • Python 版本: >= 3.8(很不稳定), < 3.12,推荐 3.11.7
  • CUDA 版本: >= 12.1,推荐 12.1

硬件环境

  • 取决于选择的大模型,在 GPU 运行本地模型的 FP16 版本,至少需要以下的硬件配置,来保证对话的稳定连续。
  • ChatGLM3-6B & LLaMA-7B-Chat 等 7B 模型
    • 最低显存要求: 14GB
    • 推荐显卡: RTX 4080
  • Qwen-14B-Chat 等 14B 模型
    • 最低显存要求: 30GB
    • 推荐显卡: V100

支持三种部署方式

  • 轻量化部署、Docker 部署、常规部署
  • 建议使用 Docker 一键部署
shell 复制代码
docker run -d --gpus all -p 80:8501 registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.0
相关推荐
njsgcs14 分钟前
langchain框架怎么让 Skills 与 MCP(tools)协同使用
人工智能·langchain·skills
昇腾CANN26 分钟前
TileLang Ascend:让AI算子开发更简单!
开源·cann
lywybo31 分钟前
【开源】赛博报社技术剖析:如何零成本使用AI大模型
人工智能·开源
兆龙电子单片机设计34 分钟前
【STM32项目开源】STM32单片机智能宠物管家
stm32·单片机·物联网·开源·毕业设计·宠物
Goway_Hui38 分钟前
【开源鸿蒙跨平台开发--KuiklyUI--02】华为云真机部署实战指南
华为·开源·华为云·harmonyos·kuikly
DolphinScheduler社区39 分钟前
Linux 环境下,Apache DolphinScheduler 如何驱动 Flink 消费 Kafka 数据?
linux·flink·kafka·开源·apache·海豚调度·大数据工作流调度
时光慢煮1 小时前
构建跨端提示体验:Flutter × OpenHarmony 实现底部 SnackBar 卡片
flutter·华为·开源·openharmony
DolphinScheduler社区1 小时前
深度探秘 Apache DolphinScheduler 数据库模式
数据库·开源·apache·开源社区·海豚调度·大数据工作流调度
极智-9961 小时前
GitHub 热榜项目-日榜精选(2026-01-28)|实用资源与工具、开源LLM应用 | pi-mono、supermemory、mlx-audio等
开源·github·语音处理·密钥管理·llm应用·iptv资源
lbb 小魔仙1 小时前
【Harmonyos】开源鸿蒙跨平台训练营DAY7:Flutter鸿蒙实战轮播图搜索框和导航指示器
flutter·开源·harmonyos