FastGPT+ChatGLM3本地部署

devtools/2024/10/15 20:24:41/

FastGPT+ChatGLM本地部署

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

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

ChatGLM本地运行

在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: strdef 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_tokensdef 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_embeddingif __name__ == "__main__":# Load LLMtokenizer = AutoTokenizer.from_pretrained(TOKENIZER_PATH, trust_remote_code=True)model = AutoModel.from_pretrained(MODEL_PATH, trust_remote_code=True, device_map="auto").eval()# load Embeddingembeddings_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: fastgptimage: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.7 # git# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.7 # 阿里云ports:- 3000:3000networks:- fastgptdepends_on:- mongo- pgrestart: alwaysenvironment:# 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/postgresvolumes:- ./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


http://www.ppmy.cn/devtools/4597.html

相关文章

Axure中继器排序失效 /没变化解决

问题复现 通过设置交互条件后&#xff0c;但是没效果&#xff0c;查了很多资料&#xff0c;按照教程操作&#xff0c;仍旧没效果。 原因 结论先行&#xff1a;问题出在汉化包&#xff0c;你用了汉化包导致axure内部出错。最简单的办法&#xff0c;删除汉化文件&#xff0c;…

第七章 案例一:分析ARP解析过程

1、实验环境 主机A和主机B连接到交换机&#xff0c;并与一台路由器互连&#xff0c;如图7.17所示&#xff0c;路由器充当网关。 图7.17 实验案例一示意图 2、需求描述 查看 ARP 相关信息,熟悉在PC 和 Cisco 设备上的常用命令,设置主机A和主机B为同一个网段网关设置为路由接…

Webservice使用

Webservice使用教程 Webservice的交互模式是一个类似于CS结构的模式&#xff0c;因此它需要一个Server端与一个Client端。在Client端访问Server端的接口来实现Webservice的功能。 Server端 打开IDEA创建gradle模块 webservice-01-server1 然后再build.gradle.kts文件中添加以…

Day 14 网络协议

常见网络设备&#xff1a;交换机 路由器 中继器 多协议网关&#xff08;路由器的前身&#xff09; 交换机&#xff1a;用于连接统一网络的设备&#xff0c;实现内网设备通信。 从广义上分为&#xff1a;局域网交换机&#xff0c;广域网交换机 从网络构成分为&#xff1a;接…

对单片机的一点理解

前言 大一时学过一段时间的51单片机&#xff0c;后面就一直研究STM32和算法&#xff0c;最近工作搞51单片机有半年了&#xff0c;有一些自己的想法&#xff0c;跟公司的工程师也探讨了一些&#xff0c;结合聊天记录&#xff0c;写了这篇博客&#xff0c;希望对读者有帮助。 有…

SQLite数据库中JSON 函数和运算符(二十七)

返回&#xff1a;SQLite—系列文章目录 上一篇:维护SQLite的私有分支&#xff08;二十六&#xff09; 下一篇&#xff1a;SQLite—系列文章目录 ​1. 概述 默认情况下&#xff0c;SQLite 支持 29 个函数和 2 个运算符 处理 JSON 值。还有两个表值函数可用于分解 JSON 字…

Python实现BOA蝴蝶优化算法优化LightGBM分类模型(LGBMClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算…

SS3D翻译

SS3D AbstractIntroductionRelated WorkFully-Supervised 3D Object DetectionWeakly/Semi-Supervised 3D Object DetectionSparsely-Supervised 2D Object Detection MethodOverall FrameworkArchitecture of DetectorMissing-Annotated Instance Mining Module 缺失注释实例挖…