# EnToZhAPI **Repository Path**: diycp2015/EnToZhAPI ## Basic Information - **Project Name**: EnToZhAPI - **Description**: 一个基于django-ninja、opus-mt-en-zh 、torch、transformers提供的英文翻译本地服务。 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-03-02 - **Last Updated**: 2025-03-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目概述 ## 项目背景 提供本地化的英文翻译服务API。支持单句翻译请求或者批量翻译请求。支持建立查询词汇表。 ## 项目架构 前端:使用原生js,使用MDB作为CSS框架。django模板引擎渲染可视化界面。 后端:使用waitress作为后端服务器。django作为web应用框架。 API:使用django-ninjaAPI实现RESTFUL API服务以及API文档。 数据库:默认使用sqlite。 缓存:使用redis进行缓存数据管理。 异步任务队列:使用celery进行异步任务处理。 反向代理:使用Nginx处理用户请求并完成分发。 项目构建:使用docker进行项目开发部署以及项目生产部署。 # 项目展示 ## 可视化在线翻译界面 docker启动在80端口,服务启动后,通过http://locahost访问即可。 ![1727344247210](image/README/1727344247210.png) ## API文档 项目启动后访问http://localhost/api/docs访问API文档 ![1727344456039](image/README/1727344456039.png) # 手动部署项目 这是一个基于 Django 的 Web 应用程序。以下是项目的安装和启动步骤。 ## 克隆项目 `git clone https://gitee.com/chaofanat/EnToZhAPI.git` ## 安装依赖 确保您已经安装了 Python 和 pip。然后运行以下命令来安装项目所需的依赖: ```sh pip install -r requirements.txt ``` ## 数据库迁移 运行以下命令来应用数据库迁移: `python manage.py migrate ` ## 创建超级用户 运行以下命令来创建一个超级用户: `python manage.py createsuperuser` 按照提示输入用户名、邮箱和密码。 ## 启动 Celery 工作进程 启动 Celery 工作进程(多线程模式兼容Windows): `celery -A MainConfig worker -l info -P threads` ## 启动 Redis 服务器 启动 Redis 服务器(注意切换redis文件夹): `redis-server` ## 运行项目 最后,运行项目在8080端口: `python run.py` ## 运行说明 1. **数据库迁移** :确保数据库表结构同步。 2. **创建超级用户** :用于登录管理后台。 3. **Celery 工作进程** :用于异步任务处理。 4. **Redis 服务器** :作为 Celery 的消息队列。 5. **运行项目** :启动 Django 开发服务器。 # 使用docker快速开发部署 ``` git clone https://gitee.com/chaofanat/EnToZhAPI.git cd EnToZhAPI docker-compose build builddocker-compose up -d ``` # 使用docker快速启动服务 ``` git clone https://gitee.com/chaofanat/EnToZhAPI.git cd EnToZhAPI docker-compose -f docker-compose-finish.yml up -d ``` # 注意事项(部署前必看) 模型不在仓库中需要去[huggingface](https://hf-mirror.com/Helsinki-NLP/opus-mt-en-zh/tree/main)下载后放入项目目录。 或者通过百度网盘下载模型 链接: https://pan.baidu.com/s/1T0FMKELADUKI8uf6K3QfyQ?pwd=8svm 下载解压后放入项目文件夹下modelscope/hub文件夹下即可。放到其他位置请修改设置文件,并使用开发部署。 【注意】翻译模型路径配置在MainConfig/settings.py中。 ![1727333037807](image/README/1727333037807.png) # Linux部署命令参考 前提已经安装好docker 、docker-compose ``` # 下载 Hugging Face 的下载脚本 wget https://hf-mirror.com/hfd/hfd.sh # 使下载的脚本具有可执行权限 chmod a+x hfd.sh # 设置 Hugging Face 的镜像端点 export HF_ENDPOINT=https://hf-mirror.com # 使用 Snap 包管理器安装 aria2c sudo snap install aria2c # 使用 APT 包管理器安装 Git LFS (Large File Storage) sudo apt install git-lfs # 使用 Hugging Face 的下载脚本下载模型 # 指定使用 aria2c 作为下载工具,并设置最大并发数为 4 ./hfd.sh Helsinki-NLP/opus-mt-en-zh --tool aria2c -x 4 # 克隆 Gitee 仓库 git clone https://gitee.com/chaofanat/EnToZhAPI.git # 切换到克隆的仓库目录 cd EnToZhAPI # 创建目录 modelscope/hub/opus-mt-en-zh mkdir -p modelscope/hub/opus-mt-en-zh # 复制 opus-mt-en-zh 模型到 modelscope/hub/opus-mt-en-zh 目录 cp -r ../opus-mt-en-zh modelscope/hub/opus-mt-en-zh # 启动 Docker Compose 服务 # 使用指定的 docker-compose 文件启动服务 sudo docker-compose -f docker-compose-finish.yml up -d # 将 staticfiles 目录及其子目录的所有者设置为 nobody:nogroup sudo chown -R nobody:nogroup ./staticfiles # 设置 staticfiles 目录及其子目录的权限为 755(所有者可读写执行,其他人可读执行) sudo chmod -R 755 ./staticfiles # 将 media 目录及其子目录的所有者设置为 nobody:nogroup sudo chown -R nobody:nogroup ./media # 设置 media 目录及其子目录的权限为 755(所有者可读写执行,其他人可读执行) sudo chmod -R 755 ./media ``` ## 联系方式 如有任何问题或建议,请联系 [chaofanat@qq.com] 或 [chaofanat@gmail.com]。 --- 感谢使用本项目!