把最近刚在项目里应用大模型流程记录下

背景介绍:智慧消防系统里有个识别监控图片火灾需求,目前问题是报警火灾图片准确率偏低,所以尝试借助大模型图片识别。

使用框架

依赖包名称 版本号
Flask 3.1.2
langchain 1.2.6
langchain_community 0.4.1
langchain_openai 1.1.7
dashscope 1.25.9
python-dotenv 1.2.1
Pillow 12.1.0

大模型本版

选择的是阿里百炼平台在线大模型qwen3-vl-plus。(需要购买token)充值1元测试就行,调用在线大模型需要密钥,我放在配置文件里了。也可以放容器启动命令或者服务器环境参数里。

使用当前最新langchain版本调用大模型,在阿里百炼平台也会提供调用示例,然后再结合flask这个web框架提供接口调用。

开发语言-python

开发工具pycharm/trae

代码量不多,只能算是一次大模型的调用。

服务部署

图方便使用阿里云服务器部署

正好是首次使用有免费试用,之前都是本地虚拟机部署。这次一并尝试。

准备Dockerfile文件

# 使用轻量级 Python 基础镜像
FROM python:3.10.12-slim-bullseye

# 设置工作目录
WORKDIR /app

# 复制项目文件到容器中
COPY . .

# 安装系统依赖(处理图片时可能需要)
RUN apt-get update && apt-get install -y \
    build-essential \
    libpng-dev \
    && rm -rf /var/lib/apt/lists/*

# 安装 Python 依赖
RUN pip install --no-cache-dir -r requirements.txt

# 安装 Gunicorn(生产环境运行 Flask 应用)
RUN pip install --no-cache-dir gunicorn

# 暴露服务端口
EXPOSE 5000

# 启动命令(使用 Gunicorn 运行应用)
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "app:app"]

将文件发送的服务器上,我使用的xftp,方法很多

上传后是这样的

执行制作镜像

# Dockerfile所在文件夹下执行
docker build -t checkfire:v1 .

执行完后这样

因为我是本地虚拟机制作的镜像,所以后面还要上传到阿里云服务器

云服务器准备

购买或者领取试用服务器后需要开放端口,因为后续是通过接口调用大模型

在阿里平台上打开防火墙模板,新建模板

然后应用刚刚开放的端口到服务器

docker准备

新服务器里面没有docker,手动安装也方便,好像可以购买服务直接装好,我没尝试,我手动安装了,阿里的智能助手也可以给你完整流程命令

手动安装

1. 添加 Docker 官方源
sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
 sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
2. 安装 DNF 源兼容插件
 
sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus
3. 安装 Docker 及相关插件
 sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4. 启动 Docker 服务并设置开机自启
 
sudo systemctl start docker
sudo systemctl enable docker

5. 验证安装是否成功

docker ps

上传制作好的服务镜像

我是本地虚拟机制作的,需要上传,我使用的scp

首先将镜像保存为本地文件,然后上传到云服务器,最后加载上传的文件包即可

打包镜像 docker save -o checkfire.tar checkfire:v1

root@admin1:/env/checkfire/uploads#  docker save -o checkfire.tar checkfire:v1
root@admin1:/env/checkfire/uploads# ls
checkfire.tar

上传到阿里服务器scp checkfire.tar root@123.51.11.12:/opt/dockerapp/

执行后需要手动输入云服务器密码

打开云服务器的/opt/dockerapp/路径就可以看到上传的文件checkfire.tar

然后加载镜像

docker load -i /opt/dockerapp/checkfire.tar

最后运行容器

docker run -d --name checkfire \
  -p 5000:5000 \
  checkfire:v1

接口检验测试

自此一个从0代码的工程编写完整,到大模型调用,再到云服务器部署,最后接口调用测试验证就完成了。

完结。。。。。。。。。。。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐