M1 Mac从零部署langchain-ChatGLM

一、环境配置

1. 安装homebrew

       1)Homebrew complements macOS. ( Homebrew 使 macOS 更完整。)Homebrew 是 macOS 的套件管理工具,是高效下载软件的一种方法,相当于 Linux 下的 yumapt-get 神器,用于下载存在依赖关系的软件包。通俗地说,Homebrew 是类似于 Mac App Store 的一个软件商店。

       2)打开终端Terminal,运行/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

      3)选择下载源

4)下载同意后,开始下载软件

5)Xcode安装完毕后,验证

  • 安装 Homebrew 需要先安装 Xcode,这是因为 Homebrew 需要使用一些系统开发工具(例如编译器、构建工具等),而这些工具通常包含在 Xcode中。

     Xcode验证:xcode-select --install

显示如下,说明已经安装成功!

6)执行:brew help,检查homebrew是否安装成功,则brew: command not found报错

  重新安装,显示成功

        说明:brew安装成功!

2. 安装Python

brew install python@3.10

验证pyhon是否安装成功?

python --version

报错:zsh: command not found: python

解决办法:

1、添加python到 zsh 以便它在键入python命令时运行。可以通过在终端中运行以下命令来做到这一点:

echo "alias python=/usr/bin/python3" >> ~/.zshrc
2、再运行下面这个命令使其生效:

source ~/.zshrc
 

3.安装依赖

Protobuf是Protocol Buffers的简称,它是Google公司开发的一种数据描述语言,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化 。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。

protobuf是类似与json一样的数据描述语言(数据格式)

protobuf非常适合于RPC数据交换格式

brew install automake
brew install libtool
brew install protobuf

验证protobuf是否安装成功?

protoc --version

 

4.魔改CMake

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。

cmake版本查看:cmake --version

5.代码下载

git clone https://github.com/imClumsyPanda/langchain-ChatGLM.git

6.配置venv环境

cd langchain-ChatGLM进入项目目录 

python3.10 -m venv venv 创建venv环境

source venv/bin/activate 启动venv环境

pip install --pre torch~=2.0.0 --extra-index-url 

pip install -r requirements.txt 安装依赖

7. 下载模型文件

下载FastChat代码:git clone https://github.com/lm-sys/FastChat.git

切换到FastChat目录,执行下列操作安装fschat模块

cd FastChat

pip3 install --upgrade pip

pip3 install -e .

### LangChain-Chatchat、Ollama 和 DeepSeek 的对比分析 #### 功能定位 LangChain-Chatchat 是一个基于 LangChain 构建的应用框架,专注于实现本地化的检索增强生成(RAG)和代理功能[^1]。它支持多种语言模型,例如 ChatGLM、Qwen 和 Llama 等,并允许用户通过集成这些模型来构建自己的知识库应用。 Ollama 则是一个轻量级工具,旨在简化大型语言模型的部署过程[^4]。它的主要特点是提供了一个易于使用的命令行界面以及高效的模型管理机制,使得开发者可以轻松加载并运行各种预训练模型。 DeepSeek 提供了一系列高质量的大规模语言模型,专为高性能计算环境设计[^3]。其核心优势在于强大的推理能力和广泛的适用场景,适合需要高精度输出的任务。 #### 技术架构 从技术角度来看,LangChain-Chatchat 基于 Python 编写,依赖 pip 工具完成安装流程。该框架利用了向量化数据库存储文档片段及其对应的嵌入表示形式,从而实现了快速的信息检索能力。 相比之下,Ollama 更加注重硬件资源利用率优化方面的工作[^2]。为了克服某些特定条件下无法正常调用文本嵌入模型的问题,可能需要调整相应的配置文件参数设置。 至于 DeepSeek,则采用了先进的神经网络结构来进行自然语言处理任务中的序列预测操作。这种设计策略有助于提升整体系统的响应速度和服务质量水平。 #### 使用体验 对于 Window 用户而言,在实际操作过程中可能会遇到一些路径相关的小挑战;不过只要按照官方指南正确指定根目录位置即可顺利解决问题。 而在 Mac M1 Pro 设备上部署时,除了常规软件包更新外并无太多额外复杂度引入步骤说明。这表明无论是在哪种主流操作系统平台上执行初始化准备工作都不会显得特别困难耗时。 ```python import os # Example of setting CHATCHAT_ROOT environment variable on Windows os.environ['CHATCHAT_ROOT'] = r'D:\ProgramData\langchain-chatchat' ``` #### 性能表现 由于三者各自侧重点不同因此很难单纯依据某单一维度去评判谁优谁劣。但从综合考量角度出发的话我们可以得出如下结论: - 如果目标主要是创建具备较强交互性的应用程序那么选用 LangChain-Chatchat 将会是个不错的选择因为它提供了丰富的插件扩展选项便于定制化开发; - 对追求极致简便性和灵活性的需求方来说 Ollama 显然是更为理想的候选方案之一因为凭借简单直观的操作方式能够迅速满足基本需求而无需过多关注底层细节部分; - 而当面临对算力要求极高或者希望获得最精确结果的情况下则应优先考虑采用 DeepSeek 家族成员作为主力引擎驱动整个业务逻辑运转起来。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0海滨小城0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值