ThongCoding commited on
Commit
635adca
·
verified ·
1 Parent(s): f18fb38

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -4
app.py CHANGED
@@ -1,16 +1,29 @@
1
  import gradio as gr
2
  import logging, langdetect
3
  from huggingface_hub import InferenceClient
4
- from libretranslatepy import LibreTranslateAPI
5
 
6
  # Khởi tạo client HF và translator
7
  client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
8
 
9
  # Gọi API public
10
- lt = LibreTranslateAPI("https://libretranslate.de/") # Hoặc server tự host
 
 
 
 
 
 
 
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 = lt.translate(message, "vi", "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 = lt.translate(response, "en", "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