赞
踩
根据https://github.com/chatchat-space/Langchain-Chatchat进行操作,使用最新版本。
在Anaconda3中创建虚拟环境,指定Python版本为3.10.12。由于个人笔记本性能有限,故采取轻量部署方案,即采用在线API实现LLM和Embeddings相关功能,这里我选用的是智谱API。将项目部署到本地后,在虚拟环境中输入pip install -r requirements_lite.txt
安装依赖。推荐使用pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
更换pip源,可以不出错地安装依赖。
根据https://github.com/chatchat-space/Langchain-Chatchat/wiki/%E5%8F%82%E6%95%B0%E9%85%8D%E7%BD%AE进行详细配置。先执行python copy_config_example.py
以生成config文件及备份config_example。首先配置模型配置项model_config.py。LLM和Embeddings模型我均选用智谱API实现,因此需要更改模型名称及配置API:
# 选用的 Embedding 名称
EMBEDDING_MODEL = "zhipu-api"
# 要运行的 LLM 名称,可以包括本地模型和在线模型。列表中本地模型将在启动项目时全部加载。
LLM_MODELS = ["zhipu-api"]
# 线上模型配置
ONLINE_LLM_MODEL = {
...
# 具体注册及api key获取请前往 http://open.bigmodel.cn
"zhipu-api": {
"api_key": "your_api_key",
"version": "chatglm_turbo", # 可选包括 "chatglm_turbo"
"provider": "ChatGLMWorker",
},
...
}
然后配置数据库配置kb_config.py。在这里我们需要配置默认使用的知识库(也可以运行时在WebUI中修改)。其余部分如分词器配置我们不用动。向量数据库使用faiss即可,无需安装faiss-gpu,因为lite版依赖已经安装了faiss-cpu,且性能足够。
DEFAULT_KNOWLEDGE_BASE = "your_kb_name"
这里你需要输入的是你的知识库的名称。要创建自己的知识库,需要在/knowledge_base文件夹新建文件夹(名称就作为你的知识库的名称),然后在其中放入需要AI学习的文件即可。如项目本身提供了知识库sample,那么可以通过DEFAULT_KNOWLEDGE_BASE = "sample"
来将sample设置为默认使用的知识库。
其余所有没有提到的config文件都不用修改,采用默认设置即可。
接下来初始化知识库。运行python init_database.py --recreate-vs
来初始化知识库。在构建知识库test时,会频繁报错no module named 'xxx'
,这是因为读取.pdf或.pptx中的内容需要安装对应的依赖,使用pip install所有找不到的模块即可。注意,因为无法直接读取.pdf的文字内容,仅仅安装fitz还会报module 'fitz' has no attribute 'open'
**的错误,还需要安装pymupdf来实现OCR功能。**这样就可以正常读取.pdf文件中的内容了。知识库初始化完毕后,还会生成向量文件。当看到已将向量库 ('kb_name', 'current_model_name') 保存到磁盘
时,表示知识库构建成功。
一键启动脚本startup.py,运行python startup.py -a
即可启动所有服务。
测试LLM对话,能正常回答说明无问题,采用在线API实现回答。
切换为知识库问答模式,提问和知识库相关的问题,先测试知识库sample,可以正常回答。显示知识库匹配结果,说明可以正常结合本地知识库回答问题。
再测试个人知识库gcglppt。我上传了某门课的课件作为知识库,并询问它这门课的作业题,得到了一个较为满意的答案。
更换openai版本为0.28.1
部署该项目的0.2.7版本,重新构建知识库,并根据报错信息逐步修改/server/chat下相关文件的内容
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。