datbkpro commited on
Commit
c912bbd
·
verified ·
1 Parent(s): b8822dd

Update core/multilingual_manager.py

Browse files
Files changed (1) hide show
  1. core/multilingual_manager.py +0 -144
core/multilingual_manager.py CHANGED
@@ -1,148 +1,4 @@
1
- # import re
2
- # from typing import Dict, Tuple, Optional
3
- # from sentence_transformers import SentenceTransformer
4
- # from config.settings import settings
5
 
6
- # class MultilingualManager:
7
- # def __init__(self):
8
- # self.vietnamese_model = None
9
- # self.multilingual_model = None
10
- # self.current_language = 'vi'
11
-
12
- # # Phát hiện thuộc ngôn ngữ dựa trên các mẫu ký tự và từ phổ biến
13
- # self.language_patterns = {
14
- # 'vi': {
15
- # 'chars': set('àáâãèéêìíòóôõùúýăđĩũơưạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹ'),
16
- # 'common_words': ['của', 'và', 'là', 'có', 'được', 'trong', 'cho', 'với', 'như', 'tôi']
17
- # },
18
- # 'en': {
19
- # 'chars': set('abcdefghijklmnopqrstuvwxyz'),
20
- # 'common_words': ['the', 'and', 'is', 'are', 'for', 'with', 'this', 'that', 'you', 'they']
21
- # },
22
- # 'fr': {
23
- # 'chars': set('àâæçèéêëîïôœùûüÿ'),
24
- # 'common_words': ['le', 'la', 'et', 'est', 'dans', 'pour', 'avec', 'vous', 'nous', 'ils']
25
- # },
26
- # 'es': {
27
- # 'chars': set('áéíóúñü'),
28
- # 'common_words': ['el', 'la', 'y', 'es', 'en', 'por', 'con', 'los', 'las', 'del']
29
- # },
30
- # 'de': {
31
- # 'chars': set('äöüß'),
32
- # 'common_words': ['der', 'die', 'das', 'und', 'ist', 'in', 'für', 'mit', 'sich', 'nicht']
33
- # },
34
- # 'ja': {
35
- # 'chars': set('ぁ-んァ-ン一-龯'),
36
- # 'common_words': ['の', 'に', 'は', 'を', 'た', 'で', 'し', 'が', 'ます', 'です']
37
- # },
38
- # 'ko': {
39
- # 'chars': set('가-힣'),
40
- # 'common_words': ['이', '그', '에', '를', '의', '에', '에서', '으로', '하다', '이다']
41
- # },
42
- # 'zh': {
43
- # 'chars': set('一-鿌'),
44
- # 'common_words': ['的', '是', '在', '有', '和', '了', '人', '我', '他', '这']
45
- # }
46
- # }
47
- # self._initialize_models()
48
- # def _initialize_models(self):
49
- # """Khởi tạo các mô hình đa ngôn ngữ"""
50
- # try:
51
- # print("🔄 Đang tải mô hình embedding tiếng Việt...")
52
- # self.vietnamese_model = SentenceTransformer(settings.VIETNAMESE_EMBEDDING_MODEL)
53
- # print("✅ Đã tải mô hình embedding tiếng Việt")
54
- # except Exception as e:
55
- # print(f"❌ Lỗi tải mô hình embedding tiếng Việt: {e}")
56
- # self.vietnamese_model = None
57
-
58
- # try:
59
- # print("🔄 Đang tải mô hình embedding đa ngôn ngữ...")
60
- # self.multilingual_model = SentenceTransformer(settings.MULTILINGUAL_EMBEDDING_MODEL,trust_remote_code=True )
61
- # print("✅ Đã tải mô hình embedding đa ngôn ngữ")
62
- # except Exception as e:
63
- # print(f"❌ Lỗi tải mô hình embedding đa ngôn ngữ: {e}")
64
- # self.multilingual_model = None
65
-
66
- # def detect_language(self, text: str) -> str:
67
- # """Phát hiện ngôn ngữ với độ chính xác cao"""
68
- # if not text or len(text.strip()) == 0:
69
- # return 'vi' # Default to Vietnamese
70
-
71
- # text_lower = text.lower()
72
- # scores = {}
73
-
74
- # for lang, patterns in self.language_patterns.items():
75
- # score = 0
76
-
77
- # # Score based on special characters
78
- # char_score = sum(1 for char in text if char in patterns['chars'])
79
- # score += char_score * 2
80
-
81
- # # Score based on common words
82
- # word_score = sum(1 for word in patterns['common_words'] if word in text_lower)
83
- # score += word_score
84
-
85
- # scores[lang] = score
86
-
87
- # # Return language with highest score
88
- # detected_lang = max(scores.items(), key=lambda x: x[1])[0]
89
-
90
- # # If no strong detection, use character-based fallback
91
- # if max(scores.values()) < 3:
92
- # vietnamese_chars = set('àáâãèéêìíòóôõùúýăđĩũơưạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹ')
93
- # if any(char in vietnamese_chars for char in text):
94
- # return 'vi'
95
- # elif any(char in text for char in 'あいうえおぁ-んァ-ン'):
96
- # return 'ja'
97
- # elif any(char in text for char in '你好'):
98
- # return 'zh'
99
- # elif any(char in text for char in '안녕'):
100
- # return 'ko'
101
- # else:
102
- # return 'en' # Default to English for other cases
103
-
104
- # return detected_lang
105
- # def get_embedding_model(self, language: str = None) -> Optional[SentenceTransformer]:
106
- # """Lấy mô hình embedding dựa trên ngôn ngữ đã phát hiện"""
107
- # lang = language if language in settings.SUPPORTED_LANGUAGES else self.current_language
108
-
109
- # if lang == 'vi':
110
- # return self.vietnamese_model
111
- # else:
112
- # return self.multilingual_model
113
-
114
- # def get_llm_model(self, language: str = None) -> str:
115
- # """Lấy tên mô hình LLM dựa trên ngôn ngữ đã phát hiện"""
116
- # lang = language if language in settings.SUPPORTED_LANGUAGES else self.current_language
117
-
118
- # if lang == 'vi':
119
- # return settings.VIETNAMESE_LLM_MODEL
120
- # else:
121
- # return settings.MULTILINGUAL_LLM_MODEL
122
-
123
- # def get_language_info(self, language: str = None) -> Dict:
124
- # """Lấy thông tin ngôn ngữ bao gồm mã và tên đầy đủ"""
125
- # lang = language if language in settings.SUPPORTED_LANGUAGES else self.current_language
126
-
127
- # model_info = {
128
- # 'vi': {
129
- # 'name': 'Tiếng Việt',
130
- # 'embedding_model': settings.VIETNAMESE_EMBEDDING_MODEL,
131
- # 'llm_model': settings.VIETNAMESE_LLM_MODEL,
132
- # 'status': 'active' if self.vietnamese_model else 'inactive'
133
- # },
134
- # 'other': {
135
- # 'name': 'Multilingual',
136
- # 'embedding_model': settings.MULTILINGUAL_EMBEDDING_MODEL,
137
- # 'llm_model': settings.MULTILINGUAL_LLM_MODEL,
138
- # 'status': 'active' if self.multilingual_model else 'inactive'
139
- # }
140
- # }
141
-
142
- # if lang == 'vi':
143
- # return model_info['vi']
144
- # else:
145
- # return model_info['other']
146
  import re
147
  from typing import Dict, Tuple, Optional
148
  from sentence_transformers import SentenceTransformer
 
 
 
 
 
1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  import re
3
  from typing import Dict, Tuple, Optional
4
  from sentence_transformers import SentenceTransformer