# aipaper **Repository Path**: cstcloud-cnic/aipaper ## Basic Information - **Project Name**: aipaper - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-10 - **Last Updated**: 2025-12-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 关于ZhongKun ## 环境搭建(CentOS10、openEuler24.03) ### 1 安装python和Git 请自行安装python3.11+和Git。 使用Git拉取代码: ``` git clone https://gitee.com/cstcloud-cnic/aipaper.git git clone https://github.com/GOSC-CNIC/aipaper.git # 备用 ``` ### 2 安装python运行环境 #### (1) 使用python虚拟环境 管理工具由pipenv迁移到了uv,使用pip命令安装uv。 ``` pip3 install uv ``` 在代码工程根目录下,即文件Pipfile同目录下运行命令: ``` uv venv # 如果只有一个python版本时不需要指定python版本,如果安装了多个python版本,需要指定。 uv venv --python 3.11 # 指定python版本 uv sync # 安装虚拟环境依赖 ``` #### (2) 使用系统python环境 在代码工程根目录下,即文件requirements.txt同目录下运行命令: ```pip3 install -r 00_script/depend/requirements.txt``` ### 3 安全敏感信息配置文件 安全信息配置demo文件security_demo.py修改文件名为security.py,根据自己情况完成配置。配置项主要包括 数据库; ### 4 数据库安装 数据库和版本支持MySQL(8.0+)、MariaDB(10.4+)和TiDB(7.5.0+);请自行安装mysql、Mariadb或TiDB数据库,根据自己的情况修改security.py文件中数据库的配置项。 ``` DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # mysql数据库引擎 # 'ENGINE': 'django_tidb', # TiDB数据库 'NAME': 'xxx', # 数据的库名,事先要创建之 'HOST': '127.0.0.1', # 主机 'PORT': '3306', # 数据库使用的端口 'USER': 'xxx', # 数据库用户名 'PASSWORD': 'xxx', # 密码 'OPTIONS': { 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", 'charset': 'utf8mb4' } }, } ``` * 特别注意 > 创建数据库时,数据库字符集(CHARACTER)使用“utf8mb4”,字符集校对(COLLATION)推荐“utf8mb4_bin”。 > 通过sql导入旧数据库数据时请一定确保旧数据库和新建数据库的字符集校对一致,例如必须同时为“utf8mb4_bin”,或者同时为“utf8mb4_general_ci”。 因为表主键id是字符串型,后续新建表外键字符集校对会跟随新数据库,如果通过sql导入的旧表和新表字符集校对不一致,创建外键约束会失败。 ### 5 运行服务 如果使用python虚拟环境,先激活python虚拟环境 ``` source .venv/bin/activate # 激活python虚拟环境 deactivate # 退出python虚拟环境 ``` 数据库迁移,在项目根目录下运行如下命令完成数据库迁移。 ``` python3 manage.py migrate ``` 运行web服务 ``` python3 manage.py runserver 0:80 ``` 如果一切正常,打开浏览器输入url(主机IP, 如:127.0.0.1)即可查看站点; ### 站点参数配置 一些站点服务的配置项需要在admin后台(全局配置 > 站点参数)完成配置,包括服务名称、AAI认证等相关配置。 * AAI登录认证 > 需要先去AAI认证服务提交接人申请,然后完成AAI登录相关的参数配置。 > AII JWT认证公钥配置,支持AAI jwt认证。 ### 生产环境部署 部署方式不是唯一的,下面推荐一种方式,Python3.11、Nginx、uwsgi。 * 项目代码必须放在路径/home/uwsgi/下,项目根目录下00_script目录中有uwsgi的配置文件和几个sh脚本可以方便控制uwsgi启动关闭; * 也可以使用systemctl管理服务,执行一下脚本00_script/config_systemctl.sh,aipaper.service服务; ``` systemctl start/stop/reload aipaper.service ``` * 有些接口可能需要获取客户端的ip地址,所以nginx需要配置标头X-Forwarded-For ``` X-Forwarded-For 可能伪造,需要在服务一级代理防范处理 比如nginx: uwsgi_param X-Forwarded-For $remote_addr; 不能使用 $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $remote_addr; 不能使用 $proxy_add_x_forwarded_for; ```