# mar13 **Repository Path**: smartllm/mar13 ## Basic Information - **Project Name**: mar13 - **Description**: mar13 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-12 - **Last Updated**: 2025-01-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AIGC ## Docker 部署 ### 1 环境变量设置 ```shell # IP FRONT_HOST="10.254.47.36" BACK_HOST="10.254.47.36" CRAWLER_HOST="10.254.47.35" MODEL_HOST="10.254.47.35" # Port FRONT_PORT=8090 BACK_PORT=8091 # Work dir APP_DIR=/home/aigc/mar13 # Database DB_HOST="10.254.47.36" DB_PORT=3306 DB_NAME="website" DB_USER="root" DB_PASSWORD="AIGCdata@123" DB_CHARSET="utf8mb4" ``` ### 2 配置nfs 1. 配置服务端 ```bash sudo yum -y install rpcbind nfs-utils # 在服务器上创建共享目录,并设置权限。 mkdir /data/share/ sudo chmod 755 -R /data/share/ # 配置NFS cd /etc/exports加入一行,共享给nfs client /data/share/ $client_url(rw,no_root_squash,no_all_squash,sync) # 生效 sudo exportfs -r ``` 2. 修改防火墙配置 方法1:开放指定端口 修改/etc/sysconfig/nfs文件,将下列内容的注释去掉,如果没有则添加: ```shell RQUOTAD_PORT=1001 LOCKD_TCPPORT=30001 LOCKD_UDPPORT=30002 MOUNTD_PORT=1002 ``` 保存好后,将端口加入到防火墙允许策略中。执行: ```javascript sudo firewall-cmd --zone=public --add-port=111/tcp --add-port=111/udp --add-port=2049/tcp --add-port=2049/udp --add-port=20049/tcp --add-port=20049/udp --add-port=1001/tcp --add-port=1001/udp --add-port=1002/tcp --add-port=1002/udp --add-port=30001/tcp --add-port=30002/udp --permanent sudo firewall-cmd --reload sudo firewall-cmd --list-all ``` 方法2:直接开放服务 ```bash //开放服务端口 sudo firewall-cmd --zone=public --add-service=nfs --permanent sudo firewall-cmd --zone=public --add-service=mountd --permanent sudo firewall-cmd --zone=public --add-service=rpc-bind --permanent sudo firewall-cmd --reload sudo firewall-cmd --list-all ``` 3. 启动 nfs server服务 按顺序启动rpcbind和nfs服务: ```bash systemctl start rpcbind systemctl start nfs ``` 加入开机启动: ```bash systemctl enable rpcbind systemctl enable nfs ``` 使用 showmount 命令来查看服务端(本机)是否可连接: ```bash showmount -e localhost ``` 4. 启动 nfs client ```bash sudo yum -y install rpcbind nfs-utils ``` 查看服务端已共享的目录: ```bash showmount -e $server_url ``` 建立挂载目录,执行挂载命令: ```bash mkdir -p /home/aigc/mar13/crawler/ mount -t nfs 10.254.47.35:/home/aigc/mar13/crawler/website_data/ /home/aigc/mar13/crawler/website_data/ -o nolock,nfsvers=3,vers=3 ``` 设置开机挂载 ```javascript [root@localhost ~]# vim /etc/rc.d/rc.local //在文件最后添加一行: mount -t nfs 192.168.11.34:/data/share /mnt/share/ -o nolock,nfsvers=3,vers=3 ``` ### 3 部署docker容器 在对应机器下,部署相应服务的容器; 例如 `cd mar13 && bash scripts/backend_run_dev.sh` ### crawler (docker-compose) ```bash cd mar13 # 设置环境变量 vi docker/.env FRONT_PORT=8090 BACK_PORT=8091 APP_DIR=/home/aigc/mar13 # 编译镜像 # TODO: 把环境变量写进docker-compose里面 bash docker/build-image-crawler.sh # 启动容器 bash docker/run-crawler.sh # 关闭容器 docker compose -f docker/docker-compose-crawler.yaml down # 进入容器 docker exec -it docker-crawler-1 /bin/bash ``` ### frontend (docker-compose) ```bash cd mar13 # mar13/frontend/nginx.conf 修改 后端IP和port # 检查环境变量 vi docker/.env # 编译镜像 bash docker/build-image-crawler.sh # 启动容器 bash docker/run-crawler.sh # 关闭容器 docker compose -f docker/docker-compose-crawler.yaml down # 进入容器 docker exec -it docker-crawler-1 /bin/bash ``` ## backend ## model 1. 把模型权重下载到对应文件夹中 `mar13/model/model` 2. 检查`.env`文件,修改数据库连接参数,修改模型宿主机位置 3. 启动容器 `bash scripts/backend_run_dev.sh` ### docker 磁盘空间已满问题 1. 清理磁盘 `docker system prune -a` 2. 更改docker存储目录 ```shell vi /etc/docker/daemon.json # 加入以下数据 { "data-root": "/newdisk/docker" } ``` ```shell sudo systemctl daemon-reload sudo systemctl restart docker docker info # 检查 Docker root dir 是否更改 ``` TODO: 关键页面: 1. done 前端加字段(是否查找关键页面) 2. done 前端回传参数 3. done 数据库在task表中加find_key_page字段 4. done 后端新建任务时写入find_key_page字段 5. done 爬虫在download开始后,判断是否需要多爬5个 6. done 模型,在判断是aigc后,判断是否需要判断key_page dashboard: 1. done 确定接口 2. done 后端接口 3. done 前端页面展示 分页处理: 1. 后端接口改成加入页码 2. 前端接口改成展示1页 ``` def getWebsiteList( page: pageNum, domin: isDomin, search_word: search_word): return { website_list, total } ``` core: 1. 有些网站爬取的时候会导致内存爆掉