一个开源可本地部署的英文翻译服务----EnToZhAPI

EnToZhAPI项目简介

项目背景

提供本地化的英文翻译服务API。支持单句翻译请求或者批量翻译请求。支持建立查询词汇表。

项目架构

前端:使用原生js,使用MDB作为CSS框架。django模板引擎渲染可视化界面。

后端:使用waitress作为后端服务器。django作为web应用框架。

翻译模型:Helsinki-NLP/opus-mt-en-zh

ps: 有效果更好的模型欢迎留言。

API:使用django-ninjaAPI实现RESTFUL API服务以及API文档。

数据库:默认使用sqlite。

缓存:使用redis进行缓存数据管理。

异步任务队列:使用celery进行异步任务处理。

反向代理:使用Nginx处理用户请求并完成分发。

项目构建:使用docker进行项目开发部署以及项目生产部署。

项目开源地址

https://gitee.com/chaofanat/EnToZhAPI

在线测试地址http://api.chaofan.online/

轻量服务器计算性能有限,翻译速度较慢。翻译效果取决于翻译的模型。

python调用API示例

python 复制代码
import httpx, json, time

translate_api = "http://api.chaofan.online/api/translate"

def batchtranslate(texts : list[str]):
    
    payload = {"text": texts}
    payload = json.dumps(payload)
    r = httpx.post(url = "http://api.chaofan.online/api/translate/batch/", data = payload).json()
    task_ids = r["task_ids"]
    print("已经获取任务ID:")
    print(task_ids)
    print("可以通过url:"+translate_api+"/{task_id} 获取任务执行结果。")
    print("任务执行中,等待获取结果(默认等待1分钟后获取任务结果)。。。")
    time.sleep(1*60)
    
    translate_res = []
    for task_id in task_ids: 
        res = httpx.get(url = f"{translate_api}/{task_id}").json()
        translate_res = translate_res+res["result"]

    print("获取任务结果成功:")
    print("##################")
    for res in translate_res:
        print(res)
    return translate_res


sentences = [
    "The quick brown fox jumps over the lazy dog.",
    "Every moment is a fresh beginning.",
    "Life is what happens when you're busy making other plans.",
    "Stars can't shine without darkness.",
    "Believe in yourself and all that you are.",
    "Success is not final, failure is not fatal: it is the courage to continue that counts.",
    "The best way to predict your future is to create it.",
    "Smile, because it confuses people.",
    "Dream big and dare to fail.",
    "Happiness is a direction, not a destination.",
    "You miss 100% of the shots you don't take.",
    "The only way to do great work is to love what you do.",
    "The future belongs to those who believe in the beauty of their dreams.",
    "Be the change you wish to see in the world.",
    "If you want to go fast, go alone. If you want to go far, go together.",
    "The only limit to our realization of tomorrow will be our doubts of today.",
    "The greatest glory in living lies not in never falling, but in rising every time we fall.",
    "Opportunity is missed by most people because it is dressed in overalls and looks like work.",
    "Life is 10% what happens to us and 90% how we react to it.",
    "The best time to plant a tree was 20 years ago. The second best time is now."
]

translate_res = batchtranslate(sentences)


for i in translate_res:
    print(i)
相关推荐
计算机魔术师6 小时前
【AI面试八股文 Vol.1.3:ReAct】ReAct 不是一种算法,是一种工程契约:从问题域到面试追问的完整映射
开源
Vane16 小时前
五一假期无聊?我用 Rust 手搓了一个并发下载器
开源
该昵称用户已存在8 小时前
从边缘计量到碳足迹追踪:MyEMS 开源一体化架构的全栈拆解
架构·开源
Muyuan19988 小时前
27.RAG 系统中的上下文充分性判断:从 Chunk 数量、FAISS 距离到 LLM Relevance Gate
python·django·pdf·fastapi·faiss
xmdy58669 小时前
Flutter+开源鸿蒙实战|智安盾电商溯源平台Day1 项目搭建与整体方案拆解
flutter·开源·harmonyos
该昵称用户已存在9 小时前
以开源筑基,架构先行——深度拆解 MyEMS 微服务能源管理系统的技术内核
微服务·架构·开源
Hommy8810 小时前
【开源剪映小助手】字幕接口
开源·github·aigc·剪映小助手·视频剪辑自动化
程序媛徐师姐13 小时前
Python基于Django的小区果蔬预定系统【附源码、文档说明】
python·django·小区果蔬预定系统·果蔬预定·python小区果蔬预定系统·小区果蔬预定·python果蔬预定系统
乱世刀疤13 小时前
cc-witch-web,已开源!实现OpenClaw、Claude Code等Agent的大模型便捷快速切换
人工智能·开源
Python私教14 小时前
Pure-Admin-Thin 深度解析:完整版和精简版到底怎么选?
vue.js·人工智能·开源