FastGPT+ChatGLM3本地部署

本文介绍了如何在本地部署FastGPT和ChatGLM3模型,包括环境设置(如显存要求、使用conda和pip)、从HuggingFace下载模型、配置api-server.py中的函数,以及Docker部署和MongoDB连接的注意事项,重点提及了遇到的MongoDB相关bug和解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FastGPT+ChatGLM本地部署

本地部署硬性要求:显存13g以上
在这里插入图片描述

关于环境的安装就不多赘述,conda + pip 可以解决大部分问题

ChatGLM本地运行

  • m3e-base
  • chatglm3-6b

在huggingface上可以下载上述模型,如果没有梯子可以使用huggingface镜像

从github上拉取fastGPTchatglm3两个项目

下载好上述模型后,需要按照FastGPT的 file -> models -> ChatGLM2 -> openai_api.py 来配置ChatGLM3 的 openai_api_demo -> api-server.py

api-server.py 加入下述code

class EmbeddingRequest(BaseModel):
    input: List[str]
    model: str

def num_tokens_from_string(string: str) -> int:
    """Returns the number of tokens in a text string."""
    encoding = tiktoken.get_encoding('cl100k_base')
    num_tokens = len(encoding.encode(string))
    return num_tokens


def expand_features(embedding, target_length):
    poly = PolynomialFeatures(degree=2)
    expanded_embedding = poly.fit_transform(embedding.reshape(1, -1))
    expanded_embedding = expanded_embedding.flatten()
    if len(expanded_embedding) > target_length:
        # 如果扩展后的特征超过目标长度,可以通过截断或其他方法来减少维度
        expanded_embedding = expanded_embedding[:target_length]
    elif len(expanded_embedding) < target_length:
        # 如果扩展后的特征少于目标长度,可以通过填充或其他方法来增加维度
        expanded_embedding = np.pad(
            expanded_embedding, (0, target_length - len(expanded_embedding))
        )
    return expanded_embedding

if __name__ == "__main__":
   
    # Load LLM
    tokenizer = AutoTokenizer.from_pretrained(TOKENIZER_PATH, trust_remote_code=True)
    model = AutoModel.from_pretrained(MODEL_PATH, trust_remote_code=True, device_map="auto").eval()

    # load Embedding
    embeddings_model = SentenceTransformer('/home/eleven/PycharmProjects/tingsheng/m3e-base', device='cpu')
    uvicorn.run(app, host='0.0.0.0', port=8000, workers=1)

加入的目的就是为了填补api_server.py中的一些适配的函数。修改embedding_modeks中模型路径,改成你下载的m3e-base的绝对路径,device选择cpu或cuda都可以

环境的缺失报错就用pip安装即可

打开终端,在api-server.py所在路径下输入下述命令

MODEL_PATH=/home/eleven/PycharmProjects/tingsheng/chatglm3-6b python api_server.py

其中MODEL_PATH为你chatglm3模型的绝对路径

运行结果如下:

在这里插入图片描述

可以看到模型在8000端口运行

docker部署

官方教程链接

官方的教程很详细,建议参考官方教程部署docker

这里重点说一下bug问题,以及配置本地模型供fastGPT使用

本地模型连接

上述的chatglm的本地运行端口号为8000,所以需要修改docker-compose.yaml文件中的OPENAI_BASE_URL来适配本地大模型。

  fastgpt:
    container_name: fastgpt
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.7 # git
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.7 # 阿里云
    ports:
      - 3000:3000
    networks:
      - fastgpt
    depends_on:
      - mongo
      - pg
    restart: always
    environment:
      # root 密码,用户名为: root。如果需要修改 root 密码,直接修改这个环境变量,并重启即可。
      - DEFAULT_ROOT_PSW=1234
      # AI模型的API地址哦。务必加 /v1。改成你本地的IP地址加上模型运行的端口号8000
      - OPENAI_BASE_URL=http://192.168.1.1:8000/v1
      # AI模型的API Key。(这里默认填写了OneAPI的快速默认key,测试通后,务必及时修改)
      - CHAT_API_KEY=sk-fastgpt
      # 数据库最大连接数
      - DB_MAX_LINK=30
      # 登录凭证密钥
      - TOKEN_KEY=any
      # root的密钥,常用于升级时候的初始化请求
      - ROOT_KEY=root_key
      # 文件阅读加密
      - FILE_TOKEN_KEY=filetoken
      # MongoDB 连接参数. 用户名myusername,密码mypassword。
      - MONGODB_URI=mongodb://myusername:mypassword@mongo:27017/fastgpt?authSource=admin
      # pg 连接参数
      - PG_URL=postgresql://username:password@pg:5432/postgres
    volumes:
      - ./config.json:/app/data/config.json
      - ./fastgpt/tmp:/app/tmp

然后sudo docker-compose up -d启动容器

在这里插入图片描述

打开本地链接localhost:3000,默认用户名root,密码1234

连接成功后

在这里插入图片描述

可以看到调试使用的模型是chatGLM3-6B

在这里插入图片描述

Bug问题

目前遇到最主要的bug问题都集中在MongoDB上

在登录出现Network error或者出现输入用户名密码后出现登录超时都是Mongo没有正确启动

在遇到上述情况时,在终端输入

sudo docker logs mongo

查看mongoDB有没有正确启动

我所遇到的bug有两个

  • waiting for MongoDB to start…
  • 连接超时

这时需要注意mongoDB的版本问题,如果你使用最新的版本(5.X)不行就降低版本(4.4.24),在保证mongoDB能正确启动的情况下再去访问localhost:3000

<think>嗯,用户问的是FastGPT本地部署教程,我需要先确认自己对这个工具的了解程度。FastGPT是基于ChatGPT的开源项目,对吧?可能用户想自己搭建一个类似的服务,可能是为了数据隐私或者定制化需求。用户可能有一定的技术背景,但可能对具体步骤不太熟悉,所以需要详细的教程。 首先,我应该考虑本地部署的基本步骤,比如环境准备、依赖安装、配置调整等。可能需要提到Docker,因为很多开源项目用Docker来简化部署。然后要检查系统要求,比如操作系统是否支持,内存和CPU的需求,毕竟GPT模型比较吃资源。 接下来,可能需要克隆GitHub仓库,安装Docker和Docker Compose,然后修改配置文件,比如环境变量、API密钥之类的。数据库的设置也很重要,比如MongoDB和Redis,用户可能需要安装这些依赖。还要考虑模型文件的问题,是直接下载还是用其他方式获取,可能需要用git lfs或者其他方法。 然后,启动服务之后,可能需要通过端口访问,比如3000端口,用户可能需要知道如何通过浏览器访问。另外,权限问题、路径设置这些常见错误点需要提醒用户注意。如果用户遇到问题,应该建议查看日志或者社区支持。 不过,可能用户的需求不仅仅是部署,还可能包括后续的使用和维护,比如如何更新版本,如何备份数据。是否需要HTTPS配置或者反向代理?可能用户是个人开发者或者小团队,需要简单的指导,不需要太复杂的架构。 另外,可能用户对中文支持有需求,要确认FastGPT是否支持中文,或者在配置里需要调整语言设置。还要注意模型的版本,比如是使用默认的模型还是可以替换成其他预训练模型。 最后,应该总结一下步骤,确保逻辑清晰,分点说明,让用户能一步步跟着做。同时,提醒常见的坑,比如依赖版本不匹配,权限问题,模型文件缺失等。可能还需要给出参考链接,比如官方文档或者GitHub仓库,方便用户查阅更详细的信息。以下</think>是一个简单的 FastGPT 本地部署教程(基于官方文档整理,具体步骤可能因版本更新有所变化): --- ### **1. 环境准备** - **操作系统**:Linux/Windows/macOS(推荐 Linux 服务器) - **硬件要求**: - CPU:4 核以上 - 内存:8GB+(模型越大要求越高) - 硬盘:20GB+(根据模型大小调整) - **依赖工具**: - Docker(版本 20.10+) - Docker Compose - Git(用于克隆仓库) --- ### **2. 部署步骤** #### **2.1 克隆仓库** ```bash git clone https://github.com/labring/FastGPT cd FastGPT ``` #### **2.2 安装 Docker 和 Docker Compose** - **Linux**: ```bash curl -fsSL https://get.docker.com | bash -s docker systemctl start docker && systemctl enable docker ``` - **Windows/macOS**:从官网下载 Docker Desktop 并安装。 #### **2.3 配置环境文件** 1. 复制示例配置文件: ```bash cp .env.example .env cp docker-compose.yml.example docker-compose.yml ``` 2. 修改 `.env` 文件: - 设置数据库密码(`MONGODB_PWD`、`REDIS_PWD`) - 配置 OpenAI API 密钥(如需调用外部模型) - 其他参数按需调整(如端口号、模型路径等)。 #### **2.4 启动服务** ```bash docker-compose up -d ``` 服务启动后会自动拉取镜像并运行容器(包括 MongoDB、Redis、FastGPT 主服务等)。 --- ### **3. 配置模型** - **本地模型**: 1. 下载模型文件(如 `chatglm2-6b`)并放入 `models` 目录。 2. 在 `.env` 文件中指定模型路径。 - **在线模型**: 在 FastGPT 后台配置 OpenAI 或 Azure 的 API 密钥。 --- ### **4. 访问服务** - 浏览器打开 `http://localhost:3000`(默认端口 3000)。 - 首次登录使用默认账号:`admin` / `1234`(建议登录后修改密码)。 --- ### **5. 常见问题** 1. **端口冲突**:修改 `docker-compose.yml` 中的端口映射(如 `3000:3000`)。 2. **模型加载失败**:检查模型路径、权限及文件完整性。 3. **内存不足**:升级服务器配置或使用轻量模型。 4. **数据持久化**:确保 MongoDB 和 Redis 数据卷挂载正确。 --- ### **6. 进阶配置** - **HTTPS**:通过 Nginx 配置反向代理并添加 SSL 证书。 - **自定义开发**:修改前端代码(位于 `client` 目录)或后端逻辑。 - **备份数据**:定期备份 MongoDB 数据库。 --- ### **参考资源** - 官方文档:https://doc.fastgpt.run/ - GitHub 仓库:https://github.com/labring/FastGPT 如需更详细的操作(如模型训练、插件扩展),建议查阅官方文档或社区教程。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

EEE1even

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

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

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

打赏作者

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

抵扣说明:

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

余额充值