本地大模型6:在conda环境中安装Langchain-Chatchat、xinference及简单使用
一、安装配置conda
下载conda,推荐:
最新版最详细Anaconda新手安装+配置+环境创建教程_anaconda配置-CSDN博客
conda是一个开源的包管理器和环境管理器,主要用于管理 Python 和其他编程语言的软件包和依赖项。conda环境指的是一个隔离的环境,其中包含特定版本的 Python 解释器及其依赖的库和工具。通过使用conda环境,可以避免不同项目间的依赖冲突,并且每个项目都可以使用不同版本的库,而不影响其他项目。简而言之,
conda 环境是一个虚拟环境,允许你在其中安装特定版本的软件包,确保不同的项目不会互相干扰。你可以在不同的环境中使用不同的包和工具版本,而无需担心冲突。
conda环境的主要优点包括:
- 隔离性:每个环境都有独立的包版本,不会相互影响。
- 可重复性:你可以轻松地创建、复制和共享包含所有依赖的环境。
- 兼容性:支持 Python 以及其他语言(如 R、Ruby、Java 等)的包管理。
二、配置Langchain-Chatchat运行本地模型
来自chatgpt-4o的解释,仅供参考:
Langchain-ChatChat是基于LangChain框架构建的一个用于自然语言处理(NLP)任务的聊天对话系统。LangChain是一个开源的 Python 库,主要用于构建多步、可扩展的应用,特别是与大语言模型(如 GPT-3、GPT-4 等)进行集成的应用。LangChain提供了许多功能,如语言模型包装、对话状态管理、API 集成、文件解析等,帮助开发者快速构建复杂的对话系统。
Langchain-ChatChat是一个使用LangChain库与聊天对话相关的高级模块或应用,它通过简化集成过程,使得开发者可以快速实现聊天机器人、对话系统,甚至是多轮对话的复杂应用。主要功能:
多轮对话支持:
Langchain-ChatChat支持多轮对话,能够维持上下文并跟踪对话的状态。这使得聊天系统能够记住之前的对话内容,在后续交互中做出更智能的回应。自然语言生成(NLG): 利用
LangChain对接各种大语言模型(如 OpenAI GPT 系列模型),Langchain-ChatChat可以生成流畅且自然的对话回复。对话历史管理: 通过对话历史管理,系统可以保存每一次对话的内容,以便在后续对话中进行引用或分析。这对于构建更智能的对话系统非常重要,尤其是当聊天内容跨越多次交互时。
API 集成与扩展性:
Langchain-ChatChat支持与其他 API 和外部数据源进行集成,使得对话系统不仅仅局限于语言模型的生成能力,还能引入外部信息(如天气、股票、新闻等)进行回答。模板和规则系统: 提供模板和规则支持,可以使开发者自定义对话的结构和逻辑。比如设置特定情境下的对话流程,或者根据用户输入进行特定的操作。
集成丰富的数据源:
Langchain-ChatChat允许系统从各种不同的源(如数据库、知识库、文件等)中提取信息,辅助生成更精确的回复,增强对话系统的智能。工作原理:
Langchain-ChatChat基本上是LangChain的一部分,它通过调用预训练的语言模型来生成对话回复,并利用LangChain的其他组件来管理对话状态、数据源、推理流程等。
语言模型接口: 利用
LangChain提供的统一语言模型接口,Langchain-ChatChat能够与多个语言模型(如 GPT-3、GPT-4)进行交互。对话管理: 系统维护一个会话状态(通常是对话历史),并在每个新的用户输入时,结合之前的上下文进行更合适的回应生成。
可插拔模块:
LangChain的可插拔特性使得开发者可以灵活地扩展Langchain-ChatChat,例如接入外部API或数据库,或者使用其他的自然语言处理工具。典型应用:
智能客服:
Langchain-ChatChat可以用于开发智能客服机器人,提供实时的客户支持和问题解答。虚拟助手: 在个人助手、语音助手等场景中,可以通过集成多个数据源和智能对话管理,提供个性化的服务。
社交对话: 作为社交对话机器人,
Langchain-ChatChat能够与用户进行富有趣味的交流,甚至模拟角色对话。教育和学习工具: 利用多轮对话和自定义的问答模板,可以开发面向教育的智能对话系统,进行个性化辅导、答疑解惑等。
总结:
Langchain-ChatChat作为一个建立在LangChain上的对话系统框架,极大地简化了复杂对话系统的构建过程。它通过强大的语言模型集成、对话管理功能和多种扩展支持,使得开发者能够轻松构建智能对话应用,满足各种不同场景下的需求。

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

解压后用vscode打开
在vscode终端运行,创建conda环境
conda create --name qwen_langchain python=3.10
初始化 conda
conda init
重新打开终端,激活环境
conda activate qwen_langchain
分别运行下面两行代码
pip install langchain-chatchat -U
pip install "langchain-chatchat[xinference]" -U
修改model_settings.yaml的两处
第一处修改模型名称
第二次添加模型


启动ollama中的模型:ollama run yuanshen2:latest
启动chatchat
chatchat start -a
修改配置 ,点击ok后输入问题即可


三、安装配置xinference
来自chatgpt-4o的解释,仅供参考:
xinference是一个轻量级、跨平台的推理框架,旨在高效地执行机器学习模型,特别是深度学习模型的推理。它通过优化的计算图和底层加速,使得模型在各种硬件设备上(如 CPU、GPU、TPU 等)都能实现高效的推理。主要特点:
- 轻量化:
xinference设计上尽量避免了冗余的计算和内存占用,适合在资源有限的环境下运行。- 跨平台支持:支持在不同平台上运行,包括桌面操作系统、云环境以及嵌入式设备等。
- 硬件加速:它能够自动利用硬件加速功能(如 NVIDIA CUDA 加速,AMD ROCm 加速等),以提高推理速度。
- 兼容性:支持多种常见的机器学习框架,如 TensorFlow、PyTorch、ONNX 模型等,能够导入并优化这些框架训练的模型。
- 简易的API:提供了简洁易用的 API,用户可以快速将其集成到应用中,降低了使用的门槛。
- 多语言支持:通常提供 Python 和 C++ 绑定,方便开发者在不同语言环境中使用。
应用场景:
- 边缘设备推理:由于其轻量化和高效的特性,
xinference被广泛应用于边缘计算设备,如智能摄像头、物联网设备等。- 实时推理:适合需要低延迟推理的应用场景,如自动驾驶、智能助理等。
- 资源受限的环境:比如嵌入式系统或者需要高效内存管理的场合。
工作原理:
xinference在执行推理时,会通过优化算法减小计算的复杂度,同时通过合适的内存管理策略,确保推理过程在不同硬件上都能顺利高效地执行。它的优化不仅限于模型计算图的优化,还涉及到内存布局和数据预处理等方面的改进。
创建xinference
conda create -n qwen_xinference python=3.10 -y
激活环境
conda activate qwen_xinference
先安装pynini
conda install -c conda-forge pynini==2.1.5
在此环境下,更新pip并换源
python -m pip install --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
安装xinference库
pip install "xinference[all]"
启动 xinference
xinference-local --host 0.0.0.0 --port 9997

遇到上面的报错可以试试这个启动(来源:xinference安装报错踩坑 - AI·你所爱)
xinference-local --host localhost --port 9997
注意:想要修改模型保存路径,默认是C盘的!
使用的话可以看这个B站博主的演示:
【Xinference+Langchain-Chatchat一键运行qwen2.5】 https://www.bilibili.com/video/BV1dGskewEZe/?share_source=copy_web&vd_source=56cb21dbb48899aaa5066785bcfd8b94
四、其他代码
1.启动Langchain-Chatchat、xinference
Langchain-Chatchat
注意chatchat需要在第二步最开始下载的那个项目中运行
先运行环境
conda activate qwen_langchain
再运行本地模型
ollama run yuanshen2:latest
最后启动chatchat
chatchat start -a
xinference
运行环境
conda activate qwen_xinference
启动
示例一:
xinference-local --host 0.0.0.0 --port 9997
示例二:
xinference-local --host localhost --port 9997
2.其他
关闭当前的 conda 环境并返回到 base 环境
conda deactivate
查看有哪些环境
conda env list
删除环境
conda env remove --name qwen_xinference
清除缓存
conda clean --all
五、脚本启动
每次想要运行都需要这些重复操作,非常没意思,所以制作一个bat脚本就可以稍微省去一些操作
启动Langchain-Chatchat
★新建一个txt文本文件
★打开复制粘贴下面的命令,当然,要根据自己的模型、项目文件夹、环境名称等修改下面的命令
@echo off
chcp 65001
echo 正在后台启动 ollama 模型...
start /B ollama run yuanshen2:latest
echo 正在切换到项目文件夹...
cd /d D:\CodingSpace\Langchain-Chatchat-master
echo 正在激活 conda 环境 'qwen_langchain'...
call conda activate qwen_langchain
echo 正在启动 Chatchat...
chatchat start -a
pause
★保存退出,修改后缀名为bat
★双击运行
更多推荐
所有评论(0)