appstore/apps/langchain-chatchat
2024-12-12 21:27:56 +08:00
..
0.2.10 feat:格式化yaml文件 2024-12-12 21:27:56 +08:00
data.yml feat:格式化yaml文件 2024-12-12 21:27:56 +08:00
logo.png feat:添加langchain-chatchat到列表 2024-03-28 15:04:02 +08:00
README.md feat:更新一些应用的gpu使用说明 2024-05-21 02:23:46 +08:00

使用说明

  • 需要注意查看项目Wiki先安装好对应环境

  • 1Panel v1.10.3-lts以下版本会覆盖docker-compose.ymlgpu设置,所以最好安装完成后检查一下, 不对则用以下覆盖并在应用目录下手动执行docker-compose down && docker-compose up -d

version: '3'

services:
  langchain-chatchat:
    container_name: ${CONTAINER_NAME}
    restart: always
    networks:
      - 1panel-network
    ports:
      - "${PANEL_APP_PORT_HTTP}:8501"
    deploy:
      resources:
        limits:
          cpus: ${CPUS}
          memory: ${MEMORY_LIMIT}
        reservations:
          devices:
            - driver: ${GPU_DRIVER_TYPE}
              count: all
              capabilities: [gpu]
    image: registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.7 # 镜像版本,按需修改
    labels:  
      createdBy: "Apps"

networks:  
  1panel-network:  
    external: true

原始相关


🌍 READ THIS IN ENGLISH 🌍 日本語で読む

📃 LangChain-Chatchat (原 Langchain-ChatGLM)

基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现,开源、可离线部署的检索增强生成(RAG)大模型知识库项目。

介绍

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

💡GanymedeNil 的项目 document.aiAlexZhangji 创建的 ChatGLM-6B Pull Request 启发,建立了全流程可使用开源模型实现的本地知识库问答应用。本项目的最新版本中通过使用 FastChat 接入 Vicuna, Alpaca, LLaMA, Koala, RWKV 等模型,依托于 langchain 框架支持通过基于 FastAPI 提供的 API 调用服务,或使用基于 Streamlit 的 WebUI 进行操作。

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

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

📺 原理介绍视频

实现原理图

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

实现原理图2

🚩 本项目未涉及微调、训练过程,但可利用微调或训练对本项目效果进行优化。

🌲 一行命令运行 Docker

docker run -d --gpus all -p 80:8501 registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.7

🧩 本项目有一个非常完整的Wiki README只是一个简单的介绍_ 仅仅是入门教程,能够基础运行_。 如果你想要更深入的了解本项目,或者想对本项目做出贡献。请移步 Wiki 界面

解决的痛点

该项目是一个可以实现 __完全本地化__推理的知识库增强方案, 重点解决数据安全保护,私域化部署的企业痛点。 本开源方案采用Apache License,可以免费商用,无需付费。

我们支持市面上主流的本地大语言模型和Embedding模型支持开源的本地向量数据库。 支持列表详见Wiki