Skip to main content

A powerful AI-driven translation library

Project description

AITrans

AITrans 是一个强大的 AI 驱动的翻译库,支持多种语言之间的高质量翻译。

特点

  • 支持多种语言之间的翻译
  • 异步和同步 API
  • 支持批量翻译
  • 上下文感知翻译
  • 自定义翻译风格
  • 术语表支持
  • 流式翻译
  • 性能优化和缓存

安装

pip install aitrans

快速开始

注册和配置

  1. 获取 API 密钥:

  2. 设置 API 密钥:

方式一:通过环境变量设置

import os
os.environ["ARK_API_KEY"] = "your-api-key"
os.environ["ARK_BASE_URL"] = "https://api.deepseek.com/v1"  # 或其他模型的 URL
os.environ["ARK_MODEL"] = "deepseek-chat"  # 或其他模型名称

方式二:创建实例时传入

translator = AITranslatorSync(
    api_key="your-api-key",
    base_url="https://api.deepseek.com/v1",
    model_name="deepseek-chat"
)

方式三:使用 .env 文件(推荐)

  1. 找到 aitrans 安装目录(通常在 site-packages/aitrans)
  2. 创建 .env 文件并添加以下内容:
ARK_API_KEY=你的API KEY
ARK_BASE_URL=https://api.deepseek.com/v1
ARK_MODEL=deepseek-chat

同步用法 (AITranslatorSync)

同步翻译是一部反映异步翻译的同步封装版本,不会阻塞线程,但会阻塞异步翻译

1. 基础翻译

from aitrans import AITranslatorSync

translator = AITranslatorSync()

# 单个文本翻译
result = translator.translate("你好,世界!", dest="en")
print(result.text)  # Hello, world!

# 检测语言
detected = translator.detect_language("Hello")
print(f"语言: {detected.lang}, 置信度: {detected.confidence}")

2. 批量翻译

texts = ["你好", "世界", "人工智能"]
results = translator.translate_batch(texts, dest="en")
for result in results:
    print(f"{result.origin} -> {result.text}")

3. 上下文感知翻译

context = "这是一篇关于机器学习的文章。"
result = translator.translate_with_context(
    text="模型的准确率达到了95%。",
    context=context,
    dest="en"
)
print(result.text)

4. 风格化翻译

# 使用预定义风格
styles = ["formal", "casual", "creative"]
text = "这个产品非常好用。"

for style in styles:
    result = translator.translate_with_style(
        text=text,
        dest="en",
        style=style
    )
    print(f"{style}: {result.text}")

5. 流式翻译

text = "让我们测试一下流式翻译功能。"
for partial_result in translator.translate(text, dest="en", stream=True):
    print(partial_result.text, end="", flush=True)

异步用法 (AITranslator)

异步翻译提供了高性能的翻译接口,适合处理大量并发请求和流式翻译场景。

1. 基础异步翻译

import asyncio
from aitrans import AITranslator

async def translate_example():
    async with AITranslator() as translator:
        # 基础翻译
        result = await translator.translate("你好,世界!", dest="en")
        print(result.text)
        
        # 语言检测
        detected = await translator.detect("Hello")
        print(f"语言: {detected}, 置信度: 高")

asyncio.run(translate_example())

2. 批量异步翻译

async def batch_example():
    async with AITranslator() as translator:
        texts = ["你好", "世界", "人工智能", "机器学习", "深度学习"]
        results = await translator.translate_batch(
            texts,
            dest="en",
            batch_size=2  # 控制并发数
        )
        for result in results:
            print(f"{result.origin} -> {result.text}")

asyncio.run(batch_example())

3. 异步上下文翻译

async def context_example():
    async with AITranslator() as translator:
        context = "这是一篇关于机器学习的论文。"
        text = "模型在测试集上的准确率达到了98%。"
        
        result = await translator.translate_with_context(
            text=text,
            context=context,
            dest="en"
        )
        print(f"上下文: {context}")
        print(f"原文: {text}")
        print(f"译文: {result.text}")

asyncio.run(context_example())

4. 异步风格化翻译

async def style_example():
    async with AITranslator() as translator:
        text = "这个产品非常好用。"
        styles = ["formal", "casual", "creative"]
        
        for style in styles:
            result = await translator.translate_with_style(
                text=text,
                dest="en",
                style=style
            )
            print(f"{style}风格: {result.text}")

asyncio.run(style_example())

5. 异步流式翻译

async def stream_example():
    async with AITranslator() as translator:
        text = "这是一个很长的文本,用来测试流式翻译功能。"
        print(f"原文: {text}")
        print("流式翻译过程:")
        
        async for partial_result in await translator.translate(
            text,
            dest="en",
            stream=True
        ):
            print(partial_result.text, end="", flush=True)
        print()  # 换行

asyncio.run(stream_example())

6. 异步文档翻译

async def document_example():
    async with AITranslator() as translator:
        paragraphs = [
            "第一段:人工智能简介。",
            "第二段:机器学习基础。",
            "第三段:深度学习应用。"
        ]
        
        results = await translator.translate_batch(
            paragraphs,
            dest="en",
            batch_size=2
        )
        
        print("文档翻译结果:")
        for i, result in enumerate(results, 1):
            print(f"第{i}段: {result.text}")

asyncio.run(document_example())

7. 异步性能优化

async def optimized_example():
    async with AITranslator() as translator:
        # 预热连接
        await translator.preconnect()
        
        # 设置性能配置
        translator.set_performance_config(
            max_workers=5,
            cache_ttl=3600,
            min_request_interval=0.1,
            max_retries=3,
            timeout=30,
            temperature=0.3,
            max_tokens=1024
        )
        
        # 批量处理
        texts = ["文本1", "文本2", "文本3"]
        results = await translator.translate_batch(
            texts,
            dest="en",
            batch_size=2
        )
        
        for result in results:
            print(result.text)

asyncio.run(optimized_example())

性能优化

  1. 使用预连接提高性能
translator = AITranslatorSync()
translator.preconnect()  # 预热连接
  1. 选择性能模式
translator = AITranslatorSync(performance_mode="fast")  # 可选: fast, balanced, accurate
  1. 自定义性能配置
translator.set_performance_config(
    max_workers=5,
    cache_ttl=3600,
    min_request_interval=0.1,
    max_retries=3,
    timeout=30,
    temperature=0.3,
    max_tokens=1024
)

错误处理

from aitrans import AIError, AIAuthenticationError, AIConnectionError

try:
    translator = AITranslatorSync()
    result = translator.translate("你好")
except AIAuthenticationError:
    print("API 密钥无效")
except AIConnectionError:
    print("网络连接错误")
except AIError as e:
    print(f"翻译错误: {str(e)}")

支持的语言

  • 中文 (zh)
  • 英语 (en)
  • 日语 (ja)
  • 韩语 (ko)
  • 法语 (fr)
  • 德语 (de)
  • 俄语 (ru)
  • 西班牙语 (es)
  • 意大利语 (it)
  • 葡萄牙语 (pt)
  • 越南语 (vi)
  • 泰语 (th)
  • 阿拉伯语 (ar)
  • 其他语言 (auto)

许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。

贡献

欢迎提交 Issue 和 Pull Request!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aitrans-1.2.3.1.tar.gz (24.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aitrans-1.2.3.1-py3-none-any.whl (21.7 kB view details)

Uploaded Python 3

File details

Details for the file aitrans-1.2.3.1.tar.gz.

File metadata

  • Download URL: aitrans-1.2.3.1.tar.gz
  • Upload date:
  • Size: 24.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.1

File hashes

Hashes for aitrans-1.2.3.1.tar.gz
Algorithm Hash digest
SHA256 f77c60341cdaa9874679058d504917cede35e4a0a81d49228dd2cf91dd4564aa
MD5 1198aea34d3476c532c243ae980e928a
BLAKE2b-256 21ccc1133975be119490fbeeb1a090976e241f8e0220f819a2c7ad94297396a9

See more details on using hashes here.

File details

Details for the file aitrans-1.2.3.1-py3-none-any.whl.

File metadata

  • Download URL: aitrans-1.2.3.1-py3-none-any.whl
  • Upload date:
  • Size: 21.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.1

File hashes

Hashes for aitrans-1.2.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 32a0ed75736a74abed78d86be0d0184824f676ccb9e0316098432d2bfbfd4e0b
MD5 2c0577db720fb4e4207c4375bae7df4c
BLAKE2b-256 040870a568aba5b029d3a24e4e1a53cb3993d3c88baa1faee2e7edc9c9156252

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page