开启左侧

LangChain-Chatchat

[复制链接]
naxieburu 发表于 昨天 22:54 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
作者:E的工程笔记
LLM、AIGC、RAG 开发交流裙:377891973

LangChain-Chatchat-1.png



文章目录


      关于 LangChain-Chatchat
        特性说明实现原理文档处理流程技术路线图(截止0.2.10)
      使用



关于 LangChain-Chatchat

Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM 等语言模型的本地知识库问答。
    github : https://github.com/chatchat-space/Langchain-Chatchatwiki: https://github.com/chatchat-space/Langchain-Chatchat/wiki/
      支持列表 LLM 模型、Embedding 模型、向量数据库、工具支持列表开发环境部署
      前期准备 :软件、硬件
      部署代码:Docker 部署、最轻模式部署方案、常规模式本地部署方案(环境安装、模型下载、初始化知识库、一键启动、多卡加载)参数配置 :基础配置项 basic_config.py、模型配置项 model_config.py、提示词配置项 prompt_config.py、数据库配置 kb_config.py、服务和端口配置项 server_config.py、覆盖配置文件 或者配置 startup.py自定义:使用自定义的分词器、 Agent 工具、微调模型、嵌入模型,日志功能。最佳实践:推荐的模型组合、微调模型加载实操、预处理知识库文件、自定义的关键词调整Embedding模型、实际使用效果
    原理介绍:ChatGLM + LangChain 实践培训(视频 1h)
    https://www.bilibili.com/video/BV13M4y1e7cN/
    ppt : https://pan.baidu.com/s/15jmNG2dc80IWM4LlLj94Rw?pwd=7fnw

特性说明

    利用 langchain 思想实现的 基于本地知识库 的问答应用目标:期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。受 GanymedeNil 的项目 document.ai 和 AlexZhangji 创建的 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生成回答。
LangChain-Chatchat-2.png



文档处理流程

LangChain-Chatchat-3.png



技术路线图(截止0.2.10)


  • Langchain 应用
      本地数据接入
    • 接入非结构化文档
        .txt, .rtf, .epub, .srt.eml, .msg.html, .xml, .toml, .mhtml.json, .jsonl.md, .rst.docx, .doc, .pptx, .ppt, .odt.enex.pdf.jpg, .jpeg, .png, .bmp.py, .ipynb

    • 结构化数据接入
        .csv, .tsv.xlsx, .xls, .xlsd

    • 分词及召回
        接入不同类型 TextSplitter优化依据中文标点符号设计的 ChineseTextSplitter
      搜索引擎接入Bing 搜索DuckDuckGo 搜索Metaphor 搜索Agent 实现基础React形式的Agent实现,包括调用计算器等Langchain 自带的Agent实现和调用智能调用不同的数据库和联网知识

  • LLM 模型接入
      支持通过调用 FastChat api 调用 llm支持 ChatGLM API 等 LLM API 的接入支持 Langchain 框架支持的LLM API 接入

  • Embedding 模型接入
      支持调用 HuggingFace 中各开源 Emebdding 模型支持 OpenAI Embedding API 等 Embedding API 的接入支持 智谱AI、百度千帆、千问、MiniMax 等在线 Embedding API 的接入
    基于 FastAPI 的 API 方式调用
  • Web UI
      基于 Streamlit 的 Web UI


使用

Langchain-Chatchat 体验
https://mp.weixin.qq.com/s/RvS85gPjWOXkfQa9A2izpw

1、克隆项目
首先将以上项目克隆至本地,并安装相关依赖。
  1. git clone https://github.com/chatchat-space/Langchain-Chatchat.git
复制代码
  1. pip install-r requirements.txt --trusted-host mirrors.aliyun.com
  2. pip install-r requirements_webui.txt --trusted-host mirrors.aliyun.com
复制代码

2、下载模型
  1. git clone https://www.modelscope.cn/qwen/Qwen-1_8B-Chat-Int8.git
  2. git clone https://www.modelscope.cn/AI-ModelScope/bge-large-zh.git  
复制代码
模型下载路径为 /models

3、初始化配置文件和知识库
  1. python copy_config_example.py
  2. python init_database.py --recreate-vs
复制代码

4、修改配置信息
model_config.py
  1. # 修改为下载模型的地址
  2. MODEL_ROOT_PATH ="/models"# 修改为本地使用模型
  3. LLM_MODELS =["Qwen-1_8B-Chat-Int8"]
复制代码

5、启动
  1. python startup.py --all-webui --model-name Qwen-1_8B-Chat-Int
复制代码

2024-03-20(三)
喝了一杯 黑糖珍珠鲜牛奶~




原文地址:https://blog.csdn.net/lovechris00/article/details/136870525
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行更多+

Powered by Discuz! X3.4© 2001-2013 Discuz Team.( 京ICP备17022993号-3 )