目录

1、申请模型API

2、本地开发Flask应用

3、购买阿里云服务器

4、下载远程连接工具Xshell、Xftp

5、远程连接服务器

6、上传项目文件

7、在项目目录中配置虚拟环境

8、设置安全组


1、申请模型API

我本次开发使用的是国内的Deepseek的API_KEY

在官网获取api_key: 

DeepSeek

在创建好apikey之后一定要复制粘贴保存好。

建议在项目文件夹下创建一个.env文件,将API_KEY写入环境,然后在代码中通过load_dotenv()获取环境变量。

from dotenv import load_dotenv

# 加载环境变量
load_dotenv()
api_key = os.getenv("API_KEY")
client = OpenAI(api_key=api_key, base_url='https://api.deepseek.com')

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "system", "content": "You are a helpful assistant"},
        {"role": "user", "content": "Hello"},
    ],
    stream=False
)

print(response.choices[0].message.content)

这种方式安全性会更高。

2、本地开发Flask应用

*根据你的需求开发自己的AI应用。

我本次开发的就是一个在线聊天的机器人并做了一个AI界面。

http://127.0.0.1:5000/

http://127.0.0.1:5000/face

http://127.0.0.1:5000/talkwith

前段html,后端python-flask框架,简单易学好上手,是学习ai开发的非常nice的一个入门小案例!

下载链接:https://download.csdn.net/download/qq_51701007/90480797

3、购买阿里云服务器

云服务器最新特惠_爆款产品新老同享续费同价-阿里云

在阿里云官网买一个自己财力范围内的服务器,最轻量级的2核CPU2G内存运行小程序是没问题的。但对于本项目来说最佳性能可以选择 2核CPU4G内存的服务器。

这个配置跑本程序是完全没问题的。

4、下载远程连接工具Xshell、Xftp

远程连接工具主要使用下面这两个,官网有免费一个月额度可用,也可以付费买更久。

5、远程连接服务器

当你拥有了自己的服务器并下载好了连接工具,接下来就是通过远程连接服务器进行一些软件的下载并上传项目并上线部署了。

(1)为服务器设置用户名和密码

为了方便连接。

(2)登录Xshell连接服务器

新建连接,输入公网ip、用户名、密码

连接好之后,需要有一定的Linux操作指令基础,就可以正常使用你的服务器了。

Xftp的连接同理。

 6、上传项目文件

在Windows终端将项目打包压缩

cd ~/your_project
tar -czvf 3DPhotoWall.tar.gz .

将打包好的压缩文件使用Xftp将文件传输入Linux。

 直接拖拽,很方便。

如果你想使用git上传项目,需要在服务器安装git工具

# 安装Git
sudo apt-get install git

 然后基本流程如下:

在本地将项目部署到github代码仓库,然后在服务器通过git指令down程序包。

git clone https://github.com/your_username/your_repository.git

cd your_repository

7、在项目目录中配置虚拟环境

我们需要下载一些必要的软件包:

首先,Ubuntu 24.04 64位OS自带Python3.12,自带虚拟环境,所以不需要额外安装Python虚拟环境的管理器。

 如果你想使用更低版本的Python,如Python3.10,需要安装第三方库才能下载管理其他版本的Python(低版本)。因为Ubuntu 24.04 可能默认不包含 Python 3.10,所以需要添加一个包含 Python 3.10 的第三方软件源。运行以下命令添加 deadsnakes PPA(一个常用的 Python 第三方源):

sudo apt update
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update

添加 PPA 后,重新尝试安装 Python 3.10 和 python3.10-venv

sudo apt install python3.10 python3.10-venv

安装完成后,检查 Python 3.10 是否安装成功:

python3.10 --version

如果输出类似以下内容,说明安装成功:

Python 3.10.x

 使用 Python 3.10 创建虚拟环境并激活:

python3.10 -m venv venv
source venv/bin/activate

 在虚拟环境中安装项目依赖:

pip install -r requirements.txt

如果没有依赖,清先在本地终端创建

 pip freeze > requirements.txt

 创建好之后再倒入Linux,执行安装指令即可。如果还有库没有安装,那就在该虚拟环境下使用pip缺什么补什么。

那么,如果你对Pyhton的版本没有明确的需求,而且一般来说更高的python版本往往是向下兼容的。我们直接使用Pyhton3.12可以更方便配置环境。

cd /home/user/your_project
python3 -m venv venv
source venv/bin/activate

如果还没有 requirements.txt 文件,可以在Windows项目终端使用以下命令生成:

pip freeze > requirements.txt

安装项目依赖:

pip install -r requirements.txt

运行程序(如果运行缺少某些库,那就是在该环境中使用pip下载即可):

python3 app.py

关闭当前虚拟环境:

deactivate

为了在生产环境中运行 Flask 应用,建议使用 Gunicorn 作为 WSGI 服务器,并使用 Nginx 作为反向代理。

在虚拟环境中安装 Gunicorn:

pip install gunicorn

你可以使用以下命令启动 Gunicorn: 

gunicorn --workers 3 --bind 0.0.0.0:5000 app:app

安装 Nginx:

sudo apt install nginx -y

创建一个新的 Nginx 配置文件: 

sudo nano /etc/nginx/sites-available/mychatbot_flsk

 添加以下内容:

server {
    listen 80;
    server_name your_server_ip;

    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

启用配置文件并重启 Nginx: 

sudo ln -s /etc/nginx/sites-available/mychatbot_flsk /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

确保防火墙允许 HTTP 和 HTTPS 流量: 

sudo ufw allow 'Nginx Full'

 如何在关闭连接后使程序在后台运行?

查看进程

ps aux | grep gunicorn

关闭某一个进程 (kill -9 强制关闭)

sudo kill <PID>

或者直接终结所有gunicorn进程

pkill -9 gunicorn

重新启动项目并在后台自动运行:

nohup gunicorn --workers 3 --bind 0.0.0.0:5000 app:app > gunicorn.log 2>&1 &

- `nohup`:让程序忽略挂断信号(SIGHUP),即使终端关闭也不会中断。

- `> gunicorn.log`:将标准输出重定向到 `gunicorn.log` 文件。

- `2>&1`:将标准错误输出也重定向到 `gunicorn.log` 文件。

- `&`:让程序在后台运行。

8、设置安全组

将你的项目端口的安全组打开,这样你的项目就可以让他人在网址通过ip:端口号查看了。

开放含有你的项目的监听端口即可。 

恭喜你已经掌握了服务器部署的基本原理! 

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐