lingala / app.py
Ronaldodev's picture
first commit
0ce1e48
from fastapi import FastAPI, HTTPException
import requests
from pydantic import BaseModel
from typing import Optional
app = FastAPI()
# Fonction de traduction du français vers le Lingala en utilisant l'API MyMemory
def translate_fr_to_ln(text: str) -> str:
url = "https://api.mymemory.translated.net/get"
params = {
'q': text,
'langpair': 'fr|ln' # Traduction du français vers le Lingala
}
response = requests.get(url, params=params)
if response.status_code == 200:
result = response.json()
return result['responseData']['translatedText']
else:
raise Exception(f"Erreur: {response.status_code}, {response.text}")
# Fonction de traduction du Lingala vers le français en utilisant l'API MyMemory
def translate_ln_to_fr(text: str) -> str:
url = "https://api.mymemory.translated.net/get"
params = {
'q': text,
'langpair': 'ln|fr' # Traduction du Lingala vers le français
}
response = requests.get(url, params=params)
if response.status_code == 200:
result = response.json()
return result['responseData']['translatedText']
else:
raise Exception(f"Erreur: {response.status_code}, {response.text}")
# Classe pour la réponse de traduction
class TranslationResponse(BaseModel):
translated_text: str
@app.get("/translate_fr_to_ln", response_model=TranslationResponse)
def translate_fr_to_ln_api(text: Optional[str] = None):
if text:
try:
# Appel de la fonction de traduction français -> Lingala
translated_text = translate_fr_to_ln(text)
return TranslationResponse(translated_text=translated_text)
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
else:
raise HTTPException(status_code=400, detail="Le texte est requis pour la traduction.")
@app.get("/translate_ln_to_fr", response_model=TranslationResponse)
def translate_ln_to_fr_api(text: Optional[str] = None):
if text:
try:
# Appel de la fonction de traduction Lingala -> français
translated_text = translate_ln_to_fr(text)
return TranslationResponse(translated_text=translated_text)
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
else:
raise HTTPException(status_code=400, detail="Le texte est requis pour la traduction.")
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=7860)