新手教程,使用Langchain-Chatchat构建自己的专属GPT

技术

picture.image

有人问我怎么构建自己的 gpt?

正好这里有个开源项目,可以自己部署,构建自己的专属 gpt。

自己部署的最大好处就是没有数据安全泄露问题 ,毕竟数据隐私这一块还是相当重要的。

这个项目是:Langchain-Chatchat

picture.image

这个项目目前已经有 27k+ starts, 129 位贡献者,虽然比不上 原生的 langchain 的框架,但已经想当不错了。

Langchain-Chatchat 是基于 Langchain 与大语言模型的本地知识库问答。

可以实现与LLM对话知识库问答文件对话搜索引擎问答自定义Agent问答等功能,可以满足大部分的需求。

picture.image

这个项目好是好,但是初次部署存在一些坑,本文教你一步步配置 ,启动 Langchain-Chatchat,可以收藏,留作后用。

无论你是云端,还是本机,都可以,只不过有些环境不同。

这里以AutoDL云端服务器为例,镜像可采用 https://www.codewithgpu.com/i/chatchat-space/Langchain-Chatchat/Langchain-Chatchat

模型采用Qwen/Qwen-1_8B-Chat,向量检索模型采用bge-large-zh-v1.5

本文的目的是先跑起来 ,至于里面向量检索模型是用什么?还能用什么大模型,还有什么更加好玩的地方?是否能自己修改开发,后面再继续讨论。

预备下载

1、下载项目

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

picture.image

无论是什么环境,采用 git clone 也好,还是直接下载压缩包也好,把 Langchain-Chatchat 下载到服务器就行。

AutoDL 我采用下载 ZIP 压缩包到本地,然后在上传的方式。

2、下载 LLM 模型

picture.image

之前写过怎么能够快速的下载模型,可以看之前的文章。

这里采用 python 脚本 snapshot 的下载方式。

(1) export HF_ENDPOINT=https://hf-mirror.com

(2)


        
          
from huggingface_hub import snapshot_download  
  
snapshot_download(repo_id='Qwen/Qwen-1\_8B-Chat',  
                  repo_type='model',  
                  local_dir='./Qwen/Qwen-1\_8B-Chat',  
                  resume_download=True)  

      

3、下载向量模型

采用模型是 bge-large-zh-v1.5

picture.image

(1) export HF_ENDPOINT=https://hf-mirror.com

(2)


        
          
from huggingface_hub import snapshot_download  
  
snapshot_download(repo_id='BAAI/bge-large-zh-v1.5',  
                  repo_type='model',  
                  local_dir='./BAAI/bge-large-zh-v1.5',  
                  resume_download=True)  

      

下载上面的项目和模型之后,记住模型的 local_dir 位置,到时候要填写其绝对路径,切记,相对路径也可以,只要你能搞清楚路径的存储都没问题,绝对路径相对大多数人来说,简单一些。

项目配置

上面已经下载了项目,进到项目之后,开始配置。

1、先配置 model 所需要的

先执行 python copy_config_example.py

执行之后,进入到 cd configs/

这里要先修改 model_config.py

找到 EMBEDDING_MODELLLM_MODELS两个变量,修改为下面的值。

多说一嘴,LLM_MODELS可以是多个,默认是第一个,但是要写多个的话,记得模型路径都得配置好。


        
          
# 选用的 Embedding 名称  
EMBEDDING_MODEL = "bge-large-zh-v1.5"  
  
LLM_MODELS = ["Qwen-1\_8B-Chat"]  

      

picture.image

第二步,修改下面的两处为模型的绝对路径,很重要。

picture.image

上面的配置之后,模型这部分就告一段落。

2、配置启动服务

配置 server_config.py

这里是 autoDL 的一个坑,端口 👌 号要修改和 autodl 的一致。

picture.image

autodl 的在这里看, 自定义服务

picture.image

picture.image

第二个要修改的地方。

"Qwen-1_8B-Chat" 的 device 改为 "cuda"

picture.image

以上 修改model_config.pyserver_config.py 之后,配置就算 ok 了。

数据库初始化

回到项目目录,执行下面命令,正常的情况下,1-2 分钟就 ok 了。


        
          
python init_database.py --recreate-vs  
  

      

picture.image

扩展一下,这里加载的是 Langchain-Chatchat/knowledge_base/samples/content里面的文档,构建的向量索引存储在 Langchain-Chatchat/knowledge_base/samples/vector_store/bge-large-zh-v1.5下面。

picture.image

以上所有的初始化工作都已经结束,可以启动服务了。

启动服务

autoDL 启动这个服务之前,要开启自定义服务。

picture.image

picture.image

然后执行命令:python startup.py -a

不出意外的话,启动成功之后就出现下面的URL

picture.image

访问 WebUI 界面:http://localhost:6006/

picture.image

初次使用

1、LLM 对话

这里默认加载的是你刚才配置的Qwen-1_8B-Chat大模型。

可以直接对话聊天。

picture.image

2、知识库问答

picture.image

这里要先进行知识库管理,上传文件,并添加到知识库,这里能够看到是采用 faiss构建的向量索引。

picture.image

最后可以对知识库管理,修改之后保存更改就行,还是很友好的 UI 界面。

picture.image

测试一下效果。

picture.image

3、文件对话

还有文件对话功能,上传你的文件,类似之前的 chatpdf 的功能,还有现在的 kimi 一样的功能。

picture.image

那么请问文件对话和知识库问答有什么区别呢?

4、搜索引擎

除了上面的功能之外,还可以借助搜索引擎的功能完成搜索。

picture.image

这个需要设置搜索引擎的 key。

以上就是用 Langchain-Chatchat 构建自己的专属 gpt,新手启动服务的配置,这样应该可以了吧,有问题群里交流。

总结一下

langchain 这个框架包括衍生出来的 Langchain-Chatchat 还是很值得大家关注的,对于有私有数据,不方便上传到 gpt 的,可以自己搭建这种功能的服务。

另外,langchain 这个框架的发展速度是想当惊人的,现在已经有 83k 的 start,也就是 8 万 3 千多人,项目贡献者已经超多了 2600 人,是值得大家关注学习的。

picture.image

<-End->

往期推荐

免魔法,非套壳API,国内使用GPT plus,和官网功能一模一样,强烈推荐!

Meta AI开源迄今为止功能最强大的开源模型Llama3,如何体验呢?

几种高速下载大模型的方法

Kimi 太慢了,200万字上下文还没开放,不等了,先用下kimi的插件

自那之后,heygen更新了蛮多功能的

云端如何部署测试Qwen1.5-MoE模型

谁也没想到,阿里发布的新项目,竟然遭受了谩骂

我是大林,持续关注 AIGC 趋势发展,和大家一起交流。微信(dalinvip2023),备注【公众号 AIGC】,进 AIGC 交流群一起交流。

如果文章对你有一点点 🤏🏻 帮助,关注公众号并星标,可以及时收到最新 AI 信息,点赞、在看、帮忙转发给更多的朋友,是最大的支持,谢谢。

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论