当前位置:   article > 正文

LangChain-Chatchat_langchain-chatchat文档

langchain-chatchat文档

在这里插入图片描述



关于 LangChain-Chatchat

Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM 等语言模型的本地知识库问答。


特性说明

  • 利用 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生成回答。

在这里插入图片描述


文档处理流程

在这里插入图片描述


技术路线图(截止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、克隆项目

首先将以上项目克隆至本地,并安装相关依赖。

git clone https://github.com/chatchat-space/Langchain-Chatchat.git
  • 1
pip install -r requirements.txt --trusted-host mirrors.aliyun.com
pip install -r requirements_webui.txt --trusted-host mirrors.aliyun.com
  • 1
  • 2

2、下载模型

git clone https://www.modelscope.cn/qwen/Qwen-1_8B-Chat-Int8.git
git clone https://www.modelscope.cn/AI-ModelScope/bge-large-zh.git  
  • 1
  • 2

模型下载路径为 /models


3、初始化配置文件和知识库

python copy_config_example.py
python init_database.py --recreate-vs
  • 1
  • 2

4、修改配置信息

model_config.py

# 修改为下载模型的地址
MODEL_ROOT_PATH = "/models"

# 修改为本地使用模型
LLM_MODELS = ["Qwen-1_8B-Chat-Int8"]
  • 1
  • 2
  • 3
  • 4
  • 5

5、启动

python startup.py --all-webui --model-name Qwen-1_8B-Chat-Int
  • 1

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

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号