大模型工具_Langchain-Chatchat

2023-12-23 20:04

本文主要是介绍大模型工具_Langchain-Chatchat,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

https://github.com/chatchat-space/Langchain-Chatchat
原Langchain-ChatGLM

1 功能

  • 整体功能,想解决什么问题
    • 基于 Langchain 与 ChatGLM 等LLM模型,搭建一套针对中文场景与开源模型,界面友好、可离线运行的知识库问答解决方案。
  • 当前解决了什么问题,哪些问题解决不了
    • 目前 0.2.8 版本支持了多个本地模型
    • 因为加入了大模型,配置难度相对较大
  • 提供哪些功能点,其中哪些是刚需
    • 核心功能是:支持中文&离线知识库与问答系统
    • 同时支持搜索实时数据,以及对其它在线大模型的调用,整体功能丰富。
  • 用户使用难度,操作逻辑是否过于复杂
    • 工具链做得很好,不需要太多配置

2 技术栈

  • 技术栈是什么:
    • 前端使用 python streamlit 实现
    • 知识库使用 langchain 构建
  • 现有底层工具消化了哪些常用功能
    • FastChat:用于大模型支持
    • langchain:用于构建本地知识库
    • ChatGLM:中文 LLM 模型
    • HuggingFace 中各种开源 Emebdding 模型,以及线上Embedding
    • Streamlit:Web界面
    • 搜索引擎:Bing 搜索,DuckDuckGo 搜索,Metaphor 搜索
    • 向量库支持:es, pgsql, faiss, milvus, zilliz等
  • 代码分析(使用cloc工具统计)
    • github 项目下载 137M,其中一半为.git,还包含一些 nltk data
    • 代码:Python 10709行,JS 1604 行。
    • docker image: 41.3 G,以为自己看错了;镜像较大主要由于其中包含了 chatglm2-6b 和 Embedding 模型,以及 torch, cuda 库;还有一些安装过程中的数据没删除。
    • 核心代码在:源码/server/ 目录下

3 商业模式

  • 以本地部署为主

4 环境测试

  • 下载源码
$ git clone https://github.com/chatchat-space/Langchain-Chatchat
  • Docker镜像
    直接下载可用的docker镜像
$ docker run -d --gpus all -p 8051:8501 registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.7

我的显存不够报错,本地部署大模型,建议 20G以上显存

启动镜像并进入手动调试:

$ docker run -it --gpus all --network=host --entrypoint bash registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.7
$ python3 startup.py -a --lite # 启动轻量版本

注意:配置文件都在 configs 目录下,按需参照 example 配置 py文件,请重点关注:configs/model_config.py 模型配置。

5 参考

部署文档

这篇关于大模型工具_Langchain-Chatchat的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/529280

相关文章

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结