Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,16 +1,29 @@
|
|
1 |
import gradio as gr
|
2 |
import logging, langdetect
|
3 |
from huggingface_hub import InferenceClient
|
4 |
-
from
|
5 |
|
6 |
# Khởi tạo client HF và translator
|
7 |
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
|
8 |
|
9 |
# Gọi API public
|
10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
12 |
logging.basicConfig(level=logging.INFO)
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
def respond(
|
15 |
message,
|
16 |
history: list[tuple[str, str]],
|
@@ -27,7 +40,7 @@ def respond(
|
|
27 |
messages = [{"role": "system", "content": system_message}]
|
28 |
|
29 |
# Dịch câu hỏi của người dùng từ tiếng Việt sang tiếng Anh
|
30 |
-
message_en =
|
31 |
|
32 |
# Thêm các tin nhắn lịch sử vào messages
|
33 |
for val in history:
|
@@ -58,7 +71,7 @@ def respond(
|
|
58 |
return f"Error: {str(e)}"
|
59 |
|
60 |
logging.info(f"Successfully generated text: {response}")
|
61 |
-
response_vi =
|
62 |
|
63 |
return response if langdetect.detect(response) == 'vi' else response_vi
|
64 |
|
|
|
1 |
import gradio as gr
|
2 |
import logging, langdetect
|
3 |
from huggingface_hub import InferenceClient
|
4 |
+
from transformers import MarianTokenizer, MarianMTModel, pipeline
|
5 |
|
6 |
# Khởi tạo client HF và translator
|
7 |
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
|
8 |
|
9 |
# Gọi API public
|
10 |
+
vi2en_tokenizer = MarianTokenizer.from_pretrained("Helsinki-NLP/opus-mt-vi-en", local_files_only=True)
|
11 |
+
vi2en_model = MarianMTModel.from_pretrained("Helsinki-NLP/opus-mt-vi-en", local_files_only=True)
|
12 |
+
en2vi_tokenizer = MarianTokenizer.from_pretrained("Helsinki-NLP/opus-mt-en-vi", local_files_only=True)
|
13 |
+
en2vi_model = MarianMTModel.from_pretrained("Helsinki-NLP/opus-mt-en-vi", local_files_only=True)
|
14 |
+
|
15 |
+
translator_vi2en = pipeline("translation", model=vi2en_model, tokenizer=vi2en_tokenizer)
|
16 |
+
translator_en2vi = pipeline("translation", model=en2vi_model, tokenizer=en2vi_tokenizer)
|
17 |
+
|
18 |
|
19 |
logging.basicConfig(level=logging.INFO)
|
20 |
|
21 |
+
def translate_vi2en_fn(text: str) -> str:
|
22 |
+
return translator_vi2en(text, max_length=512)[0]["translation_text"]
|
23 |
+
|
24 |
+
def translate_en2vi_fn(text: str) -> str:
|
25 |
+
return translator_en2vi(text, max_length=512)[0]["translation_text"]
|
26 |
+
|
27 |
def respond(
|
28 |
message,
|
29 |
history: list[tuple[str, str]],
|
|
|
40 |
messages = [{"role": "system", "content": system_message}]
|
41 |
|
42 |
# Dịch câu hỏi của người dùng từ tiếng Việt sang tiếng Anh
|
43 |
+
message_en = translate_vi2en_fn(message)
|
44 |
|
45 |
# Thêm các tin nhắn lịch sử vào messages
|
46 |
for val in history:
|
|
|
71 |
return f"Error: {str(e)}"
|
72 |
|
73 |
logging.info(f"Successfully generated text: {response}")
|
74 |
+
response_vi = translate_en2vi_fn(response)
|
75 |
|
76 |
return response if langdetect.detect(response) == 'vi' else response_vi
|
77 |
|