Spaces:
Runtime error
Runtime error
loggin added
Browse files
app.py
CHANGED
@@ -1,18 +1,20 @@
|
|
1 |
import os
|
2 |
import time
|
|
|
3 |
from flask import Flask, request, jsonify
|
4 |
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, pipeline
|
5 |
from flores200_codes import flores_codes
|
6 |
|
7 |
app = Flask(__name__)
|
8 |
|
|
|
9 |
|
10 |
def load_models():
|
11 |
model_name_dict = {"nllb-distilled-600M": "facebook/nllb-200-distilled-600M"}
|
12 |
model_dict = {}
|
13 |
|
14 |
for call_name, real_name in model_name_dict.items():
|
15 |
-
|
16 |
model = AutoModelForSeq2SeqLM.from_pretrained(real_name)
|
17 |
tokenizer = AutoTokenizer.from_pretrained(real_name)
|
18 |
model_dict[call_name + "_model"] = model
|
@@ -20,19 +22,19 @@ def load_models():
|
|
20 |
|
21 |
return model_dict
|
22 |
|
23 |
-
|
24 |
global model_dict
|
25 |
model_dict = load_models()
|
26 |
|
27 |
-
|
28 |
@app.route("/api/translate", methods=["POST"])
|
29 |
def translate_text():
|
30 |
data = request.json
|
|
|
31 |
source_lang = data.get("source")
|
32 |
target_lang = data.get("target")
|
33 |
input_text = data.get("text")
|
34 |
|
35 |
if not source_lang or not target_lang or not input_text:
|
|
|
36 |
return jsonify({"error": "source, target, and text fields are required"}), 400
|
37 |
|
38 |
model_name = "nllb-distilled-600M"
|
@@ -41,6 +43,7 @@ def translate_text():
|
|
41 |
target = flores_codes.get(target_lang)
|
42 |
|
43 |
if not source or not target:
|
|
|
44 |
return jsonify({"error": "Invalid source or target language code"}), 400
|
45 |
|
46 |
model = model_dict[model_name + "_model"]
|
@@ -64,8 +67,8 @@ def translate_text():
|
|
64 |
"target": target_lang,
|
65 |
"result": output_text,
|
66 |
}
|
|
|
67 |
return jsonify(result)
|
68 |
|
69 |
-
|
70 |
if __name__ == "__main__":
|
71 |
app.run(host="0.0.0.0", port=5000, debug=True)
|
|
|
1 |
import os
|
2 |
import time
|
3 |
+
import logging
|
4 |
from flask import Flask, request, jsonify
|
5 |
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, pipeline
|
6 |
from flores200_codes import flores_codes
|
7 |
|
8 |
app = Flask(__name__)
|
9 |
|
10 |
+
logging.basicConfig(level=logging.DEBUG)
|
11 |
|
12 |
def load_models():
|
13 |
model_name_dict = {"nllb-distilled-600M": "facebook/nllb-200-distilled-600M"}
|
14 |
model_dict = {}
|
15 |
|
16 |
for call_name, real_name in model_name_dict.items():
|
17 |
+
logging.info(f"\tLoading model: {call_name}")
|
18 |
model = AutoModelForSeq2SeqLM.from_pretrained(real_name)
|
19 |
tokenizer = AutoTokenizer.from_pretrained(real_name)
|
20 |
model_dict[call_name + "_model"] = model
|
|
|
22 |
|
23 |
return model_dict
|
24 |
|
|
|
25 |
global model_dict
|
26 |
model_dict = load_models()
|
27 |
|
|
|
28 |
@app.route("/api/translate", methods=["POST"])
|
29 |
def translate_text():
|
30 |
data = request.json
|
31 |
+
logging.debug(f"Received data: {data}")
|
32 |
source_lang = data.get("source")
|
33 |
target_lang = data.get("target")
|
34 |
input_text = data.get("text")
|
35 |
|
36 |
if not source_lang or not target_lang or not input_text:
|
37 |
+
logging.error("Missing fields in the request")
|
38 |
return jsonify({"error": "source, target, and text fields are required"}), 400
|
39 |
|
40 |
model_name = "nllb-distilled-600M"
|
|
|
43 |
target = flores_codes.get(target_lang)
|
44 |
|
45 |
if not source or not target:
|
46 |
+
logging.error("Invalid source or target language code")
|
47 |
return jsonify({"error": "Invalid source or target language code"}), 400
|
48 |
|
49 |
model = model_dict[model_name + "_model"]
|
|
|
67 |
"target": target_lang,
|
68 |
"result": output_text,
|
69 |
}
|
70 |
+
logging.debug(f"Translation result: {result}")
|
71 |
return jsonify(result)
|
72 |
|
|
|
73 |
if __name__ == "__main__":
|
74 |
app.run(host="0.0.0.0", port=5000, debug=True)
|