File size: 5,111 Bytes
e7dad75 6a7328c e7dad75 6a7328c e7dad75 8ba69d1 e7dad75 8ba69d1 e7dad75 8ba69d1 e7dad75 6a7328c e7dad75 6a7328c e7dad75 6a7328c e7dad75 8ba69d1 e7dad75 8ba69d1 e7dad75 8ba69d1 e7dad75 8ba69d1 e7dad75 8ba69d1 e7dad75 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
from flask import Flask, render_template, request, jsonify
import os
import google.generativeai as genai
import time
app = Flask(__name__)
# Configuration
token = os.environ.get("TOKEN")
if not token:
raise ValueError("La variable d'environnement TOKEN n'est pas définie.")
genai.configure(api_key=token)
generation_config = {
"temperature": 1,
"max_output_tokens": 8192,
}
safety_settings = [
{"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_NONE"},
{"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE"},
{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_NONE"},
{"category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_NONE"},
]
model = genai.GenerativeModel(
model_name="gemini-1.5-flash-002",
generation_config=generation_config,
safety_settings=safety_settings
)
source_languages = ["Francais", "English", "Spanish"]
target_languages = ['nzebi', 'Fang(ntumu)','Fang(complet)','dikota', 'yipunu', 'omyene_nkomi']
lang_files = {
'nzebi': 'Inzèbi.txt',
'gisir': 'Gisir.txt',
'dikota': 'dd.txt',
'yipunu': 'yipunu.pdf',
'Fang(complet)':'document_modifie.pdf',
'akele': 'Akélé.txt',
'Ghétsogo': 'Ghétsogo.txt',
'Shimo': 'Shimo.txt',
'omyene_nkomi': 'Omyènè_Nkomi.txt',
'isangu': 'Isangu.txt',
'Liwanzi': 'Liwanzi.txt',
'Fang(ntumu)': 'Fang(ntumu).txt'
}
def main_fang(query):
return "En maintenance"
async def translate(input_text, source, target):
if target == 'yipunu':
try:
pdf_path = lang_files[target]
d = time.time()
if not os.path.exists(pdf_path):
return f"Erreur: Le fichier {pdf_path} n'existe pas."
sample_file = genai.upload_file(path=pdf_path, display_name="yipunu-reference")
s = time.time()
print(s-d)
prompt = f"""
Using the provided Yipunu language reference PDF, translate the following text:
Input text: {input_text}
Please provide only the translation without any additional explanation.
"""
print(input_text)
content = [sample_file, prompt]
response = model.generate_content(content, request_options={"timeout": 600})
genai.delete_file(sample_file.name)
print(response.text)
return response.text
except Exception as e:
return f"Erreur lors de la traduction: {str(e)}"
elif target == 'Fang(complet)':
try:
pdf_path = lang_files[target]
d = time.time()
if not os.path.exists(pdf_path):
return f"Erreur: Le fichier {pdf_path} n'existe pas."
sample_file = genai.upload_file(path=pdf_path, display_name="yipunu-reference")
s = time.time()
print(s-d)
prompt = f"""
Using the provided Fang language reference PDF, translate the following text:
Input text: {input_text}
Please provide only the translation without any additional explanation.
"""
print(input_text)
content = [sample_file, prompt]
response = model.generate_content(content, request_options={"timeout": 600})
genai.delete_file(sample_file.name)
print(response.text)
return response.text
except Exception as e:
return f"Erreur lors de la traduction: {str(e)}"
else:
chemin_fichier = lang_files[target]
with open(chemin_fichier, 'r', encoding='utf-8') as fichier:
contenu_langue_arrivee = fichier.read()
tt = f"""
contexte: {contenu_langue_arrivee}
Utillisez les éléments de contexte suivants pour répondre à la question à la fin.
Si vous ne connaissez pas la réponse, traduisez ce que vous pouvez et reecriver
les autre comme ca, n'essayez pas d'inventer une réponse. Je veux que tu agisses
comme un traducteur {target}. Je parle en français et tu traduis en {target} en
te basant sur le contexte. Je ne veux aucune explication. Juste la réponse.
Traduit ca < {input_text} >
"""
print(input_text)
response = model.generate_content(tt)
print(response.text)
return response.text
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
input_text = request.form['input_text']
source_language = request.form['source_language']
target_language = request.form['target_language']
translated_text = translate(input_text, source_language, target_language)
return jsonify({'translated_text': translated_text})
return render_template('index.html', source_languages=source_languages, target_languages=target_languages)
if __name__ == '__main__':
app.run(debug=True) |