Skip to main content

Add your description here

Project description

textra-api-wrapper

本APIラッパーは、みんなの自動翻訳@TexTra®を利用してテキスト翻訳を行うためのPythonラッパーです。

特徴

  • 簡単にAPIを利用して翻訳を実行できます。
  • Wikipediaやオープンソースソフトウェアのドキュメントの翻訳に適しています。

注意事項

  • 本APIラッパーは「みんなの自動翻訳@TexTra®」の利用規約に基づき、商用目的での利用を禁止しています。
  • 不適切な利用が発見された場合、APIの利用が制限されることがあります。
  • 利用回数に上限が設けられる場合があります。
  • サービス提供期間は保証されていません。
  • 入力されたテキストや用語はNICTのサーバーに記録されることがあります。個人情報や機密情報を入力しないようお願いします。

インストール

pip install textra-api-wrapper

Usage

環境変数の設定

利用の前に以下の環境変数を設定してください。

  • TEXTRA_LOGIN_ID: ログインID
  • TEXTRA_API_KEY: API_KEY
  • TEXTRA_API_SECRET: API_SECRET

ターミナルから設定する例を示します。

export TEXTRA_LOGIN_ID='your_login_id'
export TEXTRA_API_KEY='your_api_key'
export TEXTRA_API_SECRET='your_api_secret'

利用中のOSやシェルによって設定方法は異なりますのでご注意ください。

使用例

テストコードをご参照ください。

from textra_api_wrapper import APIClient


def test_client():
    client = APIClient()
    text = "Hello everyone. My name is ⦅John.⦆"
    res = client.translate(text)

    expected = "皆さんこんにちは、John.と申します。"
    assert res.text == expected
    assert res.original_text == text
    assert res.information["text-s"] == text
    assert res.information["text-t"] == expected
    assert (
        res.request_url
        == "https://mt-auto-minhon-mlt.ucri.jgn-x.jp/"
    )
  • APIClient()により生成されるインスタンスは、英語から日本語への翻訳となります。
  • 翻訳不要記号で囲むことで原文をそのまま出力します。例: ⦅John.⦆
  • 言語の指定はAPIClient(source_lang="ja", target_lang="en")などとします。
def test_ja_to_en():
    client = APIClient(source_lang="ja", target_lang="en")
    text = "こんにちは、皆さん。私の名前は⦅タロー⦆です"
    res = client.translate(text)

    expected = "Hi everyone. My name is タロー."
    assert res.text == expected
    assert res.original_text == text
    assert (
        res.request_url
        == "https://mt-auto-minhon-mlt.ucri.jgn-x.jp/api/mt/generalNT_ja_en/"
    )

ファイル翻訳

ファイル翻訳APIは3つのエンドポイントがあります。登録 (set)、確認 (status)、取得 (get) です。set を行うと API サーバで翻訳が実行されますが、ファイル単位なのである程度の時間がかかります。そのため、登録時には PID のみが返ります。status は翻訳状況の確認、get でファイルを取得できます。

set_file(path)

path で翻訳元のファイルパスを指定します。実行時点では処理が完了していない可能性があります。 APIResponseParserのインスタンスが返ります。

APIの仕様により、ファイルの拡張子は限定されています。サポート外の拡張子は内部で.txtに変換されます。

client = APIClient()
original_filepath = "tests/example_file.cfg"
sample = client.set_file(original_filepath)

sample.get("pid") # 12345
sample.request["title"] # "example_file"

titleはファイル名から拡張子を除いたものになります。

file_status()

ファイル翻訳の状況を確認できます。state は状態を表します。

  • -2: 失敗
  • 0: 待機中
  • 1: 処理中
  • 2: 完了
client = APIClient()
sample = client.file_status()
sample.get('list')
# Example
# [
#     {
#         'id': 71204,
#         'register': '2024-07-15 09:49:24',
#         'state': 2,
#         'title': 'test_file',
#     },
#     {
#         'id': 71181,
#         'register': '2024-07-14 15:19:50',
#         'state': 2,
#         'title': 'README_en_t',
#     },
# ]

sample.get_status({"id": 71204})
# {
#     'id': 71204,
#     'register': '2024-07-15 09:49:24',
#     'state': 2,
#     'title': 'test_file',
# }

get_file(pid, encoding="utf-8", path=None)

API サーバから翻訳済みのファイルを取得して内容を返します。path を指定すると保存します。

  • pid: ファイル翻訳ID
  • encoding (オプション): デフォルトでは utf-8
  • path (オプション): 翻訳後のファイルを保存する場所
def test_get_file():
    client = APIClient()
    path = "tests/test_file_result.txt"
    res = client.get_file(pid=71204, path=path)

# Example:
# "ハイテク大手、革新的なAIツールを発表"

License

本APIラッパーはMITライセンスにより提供されますが、利用にはみんなの自動翻訳@TexTra®の利用規約に従う必要がありますのでご注意ください。

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

textra_api_wrapper-0.3.0.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

textra_api_wrapper-0.3.0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file textra_api_wrapper-0.3.0.tar.gz.

File metadata

  • Download URL: textra_api_wrapper-0.3.0.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for textra_api_wrapper-0.3.0.tar.gz
Algorithm Hash digest
SHA256 4a775f4db3bfdf174d9fb95f0fa24faa4f91e6a15140cee082a81f8c2d7945ef
MD5 67caaa4a31bdcb1e6d06784849a59de0
BLAKE2b-256 9fbdfc09a895acf7c83d7f6f130bc94845ef17de33ba3ff7c78e17ceb5c30944

See more details on using hashes here.

File details

Details for the file textra_api_wrapper-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for textra_api_wrapper-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b3feddfe405f658fc9ac33d55c4da8e36bf09c03ed67b3f1765418774bfc1848
MD5 06f55d1a76ac92296b4d6cc5ca4f96bb
BLAKE2b-256 68ac76520261f54909f2f7304b0855ef449f5bdafab97cb0f0f13887ea76172b

See more details on using hashes here.

Supported by

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