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
: ログインIDTEXTRA_API_KEY
: API_KEYTEXTRA_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
: ファイル翻訳IDencoding
(オプション): デフォルトでは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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a775f4db3bfdf174d9fb95f0fa24faa4f91e6a15140cee082a81f8c2d7945ef |
|
MD5 | 67caaa4a31bdcb1e6d06784849a59de0 |
|
BLAKE2b-256 | 9fbdfc09a895acf7c83d7f6f130bc94845ef17de33ba3ff7c78e17ceb5c30944 |
File details
Details for the file textra_api_wrapper-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: textra_api_wrapper-0.3.0-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3feddfe405f658fc9ac33d55c4da8e36bf09c03ed67b3f1765418774bfc1848 |
|
MD5 | 06f55d1a76ac92296b4d6cc5ca4f96bb |
|
BLAKE2b-256 | 68ac76520261f54909f2f7304b0855ef449f5bdafab97cb0f0f13887ea76172b |