Jupyter 开发环境(LLM应用方向)部署记录

14 阅读1分钟

由于网络原因,此部署搭建在一个美国区域的 VPS 主机上,使得相应的网络约束不存在。

〇、先安装基础 Docker 环境

一、容器配置

注意到我们使用这个镜像:

hub.docker.com/r/jupyter/m…

关于不同版本镜像的说明:

jupyter-docker-stacks.readthedocs.io/en/latest/i…

关于如何启用 root 权限

jupyter-docker-stacks.readthedocs.io/en/latest/u…

mkdir -p /var/docker
vim /var/docker/docker-compose.yml

编辑 /var/docker/docker-compose.yml 文件:

services:
  jupyter:
    container_name: jupyter
    image: jupyter/minimal-notebook
    user: root
    volumes:
     - ./jupyter/home:/home
     - ./jupyter/opt:/opt
     - ./jupyter/etc:/etc
     - ./jupyter/root:/root
     - ./jupyter/var:/var
     - ./jupyter/usr/lib:/usr/lib
    environment:
      - GRANT_SUDO=yes

  nginx:
    container_name: nginx
    image: nginx
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d

编辑 /var/docker/nginx/conf.d/default.conf 文件:

server {
    listen 80 default_server;
    location / {
        return 444;
    }
}

编辑 /var/docker/nginx/conf.d/jupyter.conf 文件:

注意务必添加 Websocket 的支持,否则连不上 kernel。

server {
    listen 80;
    server_name jupyter.*;
    location / {
        proxy_pass http://jupyter:8888;
        proxy_set_header Host $host;  # 设置主机头
        proxy_set_header X-Real-IP $remote_addr;  # 设置真实客户端IP
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  # 设置转发的IP地址
        proxy_set_header X-Forwarded-Proto $scheme;  # 设置转发的协议
        # WebSocket支持
        proxy_http_version 1.1;  # 使用HTTP/1.1
        proxy_set_header Upgrade $http_upgrade;  # 升级请求头
        proxy_set_header Connection "upgrade";  # 连接升级
    }
}

然后启动即可:

cd /var/docker
docker compose up -d

请确保你的域名 jupyter.example.com 指向你的服务器,当然 *.example.com 应该是你自己的域名。

然后即可访问 jupyter,配置一下密码,即可开始使用。

二、Anaconda Kernel 配置

默认是直接用默认的 python 环境作为 kernel 的,为了方便与可配置,我们通过 anaconda 配置自己的虚拟环境。

参考文章:medium.com/@nrk25693/h…

# 安装 ipykernel
conda install -c anaconda ipykernel
# 创建自己的 conda virtualenv
conda create --name openai
# 将 openai 这个 virtualenv 注册为p ipykernel
python -m ipykernel install --user --name=openai

三、OPENAI 基本操作

参考官方教程:platform.openai.com/docs/quicks…