Closed iamfoolberg closed 1 year ago
Oh. I didn't know that someone was going to use this. :) I'll try a clean install, check everything works.
add a html page to issue the post action and show the result😁
Here is my index.html(in ./myhtml)
<!DOCTYPE html>
<html>
<head>
<title>NLLB Translator</title>
<meta charset="utf-8">
</head>
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<body>
<form name="myForm">
<input type="hidden" name="action" value="login">
<h1 align="center">NLLB Translation</h1>
<table align="center">
<tr>
<td>sourceLangCode_flores:</td>
<td>
<select name="sourceLangCode_flores" >
<option value="en" selected="selected">en</option>
<option value="es">es</option>
</select>
</td>
</tr>
<tr>
<td>targetLangCode_flores:</td>
<td>
<select name="targetLangCode_flores" >
<option value="en" selected="selected">en</option>
<option value="es">es</option>
</select>
</td>
</tr>
<tr>
<td>source:</td>
<td>
<textarea name="textArray" cols="30" rows="10">This is a test sentence.</textarea>
</td>
</tr>
<tr>
<td>result:</td>
<td>
<textarea name="resultArray" cols="30" rows="10">...</textarea>
</td>
</tr>
<tr>
<td>
<input type="reset" value="Reset" >
</td>
<td align="center">
<input type="button" onclick="mytranslate()" value="Translate" class="btn btn-primary">
</td>
</tr>
</table>
</form>
</body>
<script type="text/javascript">
function mytranslate() {
var slc = myForm.sourceLangCode_flores.value;
var tlc = myForm.targetLangCode_flores.value;
var content = myForm.textArray.value;
$.ajax({
type: "POST",
dataType: "json",
url: '/dt_translate_nllb',
contentType: "application/json",
data:JSON.stringify({
"sourceLangCode_flores": slc,
"targetLangCode_flores": tlc,
"textArray": [content]
}),
success: function (result) {
console.log("data is :" + result)
if (result.status == "success") {
myForm.resultArray.value=result.data.translationArray[0];
}else {
alert(result.message)
}
}
});
}
</script>
</html>
and you should add lines in app.py, like:
from fastapi.staticfiles import StaticFiles
# Define a FastAPI app
app = FastAPI()
#define static html
app.mount("/translate", StaticFiles(directory="./myhtml", html=True), name="html")
And all options:
<option value="af">afr_Latn</option>
<option value="sq">als_Latn</option>
<option value="am">amh_Ethi</option>
<option value="ar">arb_Arab</option>
<option value="hy">hye_Armn</option>
<option value="az">azj_Latn</option>
<option value="eu">eus_Latn</option>
<option value="be">bel_Cyrl</option>
<option value="bn">ben_Beng</option>
<option value="bs">bos_Latn</option>
<option value="bg">bul_Cyrl</option>
<option value="ca">cat_Latn</option>
<option value="ceb">ceb_Latn</option>
<option value="zh-CN">zho_Hans</option>
<option value="zh-TW">zho_Hant</option>
<option value="hr">hrv_Latn</option>
<option value="cs">ces_Latn</option>
<option value="da">dan_Latn</option>
<option value="nl">nld_Latn</option>
<option value="en">eng_Latn</option>
<option value="eo">epo_Latn</option>
<option value="et">est_Latn</option>
<option value="fi">fin_Latn</option>
<option value="fr">fra_Latn</option>
<option value="gl">glg_Latn</option>
<option value="ka">kat_Geor</option>
<option value="de">deu_Latn</option>
<option value="el">ell_Grek</option>
<option value="gu">guj_Gujr</option>
<option value="ht">hat_Latn</option>
<option value="ha">hau_Latn</option>
<option value="iw">heb_Hebr</option>
<option value="hi">hin_Deva</option>
<option value="hu">hun_Latn</option>
<option value="is">isl_Latn</option>
<option value="ig">ibo_Latn</option>
<option value="id">ind_Latn</option>
<option value="ga">gle_Latn</option>
<option value="it">ita_Latn</option>
<option value="ja">jpn_Jpan</option>
<option value="jv">jav_Latn</option>
<option value="kn">kan_Knda</option>
<option value="kk">kaz_Cyrl</option>
<option value="km">khm_Khmr</option>
<option value="ko">kor_Hang</option>
<option value="ku">kmr_Latn</option>
<option value="ky">kir_Cyrl</option>
<option value="lo">lao_Laoo</option>
<option value="lv">lvs_Latn</option>
<option value="lt">lit_Latn</option>
<option value="lb">ltz_Latn</option>
<option value="mk">mkd_Cyrl</option>
<option value="mg">plt_Latn</option>
<option value="ms">zsm_Latn</option>
<option value="ml">mal_Mlym</option>
<option value="mt">mlt_Latn</option>
<option value="mi">mri_Latn</option>
<option value="mr">mar_Deva</option>
<option value="mn">khk_Cyrl</option>
<option value="my">mya_Mymr</option>
<option value="ne">npi_Deva</option>
<option value="no">nob_Latn</option>
<option value="ny">nya_Latn</option>
<option value="ps">pbt_Arab</option>
<option value="fa">pes_Arab</option>
<option value="pl">pol_Latn</option>
<option value="pt">por_Latn</option>
<option value="ro">ron_Latn</option>
<option value="ru">rus_Cyrl</option>
<option value="sm">smo_Latn</option>
<option value="gd">gla_Latn</option>
<option value="sr">srp_Cyrl</option>
<option value="sn">sna_Latn</option>
<option value="sd">snd_Arab</option>
<option value="si">sin_Sinh</option>
<option value="sk">slk_Latn</option>
<option value="sl">slv_Latn</option>
<option value="so">som_Latn</option>
<option value="es">spa_Latn</option>
<option value="su">sun_Latn</option>
<option value="sw">swh_Latn</option>
<option value="sv">swe_Latn</option>
<option value="tl">Ttgl_Latn</option>
<option value="tg">tgk_Cyrl</option>
<option value="ta">tam_Taml</option>
<option value="te">tel_Telu</option>
<option value="th">tha_Thai</option>
<option value="tr">tur_Latn</option>
<option value="uk">ukr_Cyrl</option>
<option value="ur">urd_Arab</option>
<option value="uz">uzn_Latn</option>
<option value="vi">vie_Latn</option>
<option value="cy">cym_Latn</option>
<option value="xh">xho_Latn</option>
<option value="yi">ydd_Hebr</option>
<option value="yo">yor_Latn</option>
<option value="zu">zul_Latn</option>
<option value="rw">kin_Latn</option>
<option value="or">ory_Orya</option>
<option value="tt">tat_Cyrl</option>
<option value="tk">tuk_Latn</option>
<option value="ug">uig_Arab</option>
root@aiserver:/aidata/nllb-docker-rest# docker run -it --rm --gpus '"device=0,1"' -p 8000:8000 -v $(pwd):/app nllb None of PyTorch, TensorFlow >= 2.0, or Flax have been found. Models won't be available and only tokenizers, configuration and file/data utilities can be used. INFO: Started server process [1] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: 192.168.2.183:14520 - "GET /dt_translate_nllb HTTP/1.1" 405 Method Not Allowed INFO: 192.168.2.183:14520 - "GET / HTTP/1.1" 404 Not Found INFO: 192.168.2.183:14523 - "GET / HTTP/1.1" 404 Not Found