Windowsに、RAM消費量1GB未満の軽量翻訳AI「FuguMT」を導入し、ローカルAPIサーバーとして使用する方法を画像付きでまとめました。
コードをコピペして実行するだけで簡単にローカル翻訳鯖を立てることができます。
あわせて、APIサーバーを使用する際のコード例も載せておきました。
1. FuguMTをWindowsへ導入
導入記事を参考に、動作確認の章まで手順通りにしてWindows環境で翻訳AIを使えるようにしておきます。
その後、APIサーバー用に以下のモジュールも追加でインストールします。
pip install requests
pip install flask
2. コピペで動く翻訳APIサーバー
翻訳をわざわざAPIサーバーにする利点は、APIサーバーを立てて使用すればコードをいちいち追記して翻訳対応をする必要がない点ですね。
別の翻訳AI(Facebook製の多言語翻訳AINLLB200など)を使いたくなっても多々あるスクリプトをいちいち修正せず、このコピペ用ローカルAPI鯖コードだけを変えれば良いので楽々です☆
コピペ用:翻訳APIサーバー
import string
from flask import Flask, request, jsonify
from transformers import pipeline
app = Flask(__name__)
ej_translator = pipeline("translation", model="staka/fugumt-en-ja")
je_translator = pipeline("translation", model="staka/fugumt-ja-en")
@app.route("/translate", methods=["POST"])
def translate_endpoint():
data = request.get_json()
input_text = data["input_text"]
if is_halfwidth(input_text) == True:
result = ej_translator(input_text)
elif is_halfwidth(input_text) == False:
result = je_translator(input_text)
result = str(result).replace("[{'translation_text': '", "").replace("'}]", "")
return jsonify({"translation": result})
def is_halfwidth(s): # 半角のみならTrue
return all(
c in string.ascii_letters + string.digits + string.punctuation + " " for c in s
)
if __name__ == "__main__":
app.run(debug=True)
上記コードをコピペして.py拡張子で保存し実行するだけで、ローカル翻訳APIサーバーが立ち上がります。
このように表示されるハズです。
翻訳を行いたい場合はずっとこの画面を開いたままにしてください。
ウィンドウを最小化するのはOKですが、ウィンドウの右上のバツマークで閉じるとAPIサーバーが終了してしまいます。
APIサーバーの使用方法についても、一応載せておきました。↓
APIサーバー使用例 ローカル鯖を用いるコード
import requests
import json
# APIサーバーのURL
url = "http://localhost:5000/translate"
# POSTリクエストのデータ
while True:
inputdata = input("日英双方翻訳:")
data = {"input_text": inputdata}
# APIサーバーにPOSTリクエストを送信
response = requests.post(url, json=data)
# レスポンスを取得
if response.status_code == 200:
result = json.loads(response.content)["translation"]
print(result)
else:
print("Translation failed")
上記コードをコピペしてAPIサーバーのコード同様に実行すると、入力文章を翻訳するスクリプトが使えます。
翻訳の流れはこんな具合です。
- 入力文章をエンターを押して確定する
- ローカル上のAPIサーバーに入力文章が送られる
- APIサーバーで入力文章を翻訳
- 翻訳された文章をAPIサーバーが送信
- 送信された文章を受け取る
- APIサーバーとの通信が
- 成功なら:翻訳された文章をprintで表示
- 失敗なら:Translation failedとprintする
ちなみに、翻訳後の文章を送信するたびに、APIサーバー側の「黒い画面」ではこのように表示されています。
FuguMT関連でこちらもご覧ください。
他にも色々とAI関連の記事を書いています。合わせてご覧ください。
規制も倫理も無いFreedomGPTをグラボ不使用でWindowsにて動かす方法
画像生成AI「Stable Diffusion」を動かす方法
コード生成AI「santacoder」をWindowsローカル環境で動かす方法