2024-05-08 23:36:04 +02:00
|
|
|
from convlab.base_models.t5.nlu import T5NLU
|
|
|
|
import requests
|
2024-04-23 13:04:36 +02:00
|
|
|
|
|
|
|
|
2024-05-08 23:36:04 +02:00
|
|
|
def translate_text(text, target_language='en'):
|
|
|
|
url = 'https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl={}&dt=t&q={}'.format(
|
|
|
|
target_language, text)
|
|
|
|
response = requests.get(url)
|
|
|
|
if response.status_code == 200:
|
|
|
|
translated_text = response.json()[0][0][0]
|
|
|
|
return translated_text
|
|
|
|
else:
|
|
|
|
return None
|
2024-04-23 13:04:36 +02:00
|
|
|
|
|
|
|
|
2024-05-08 23:36:04 +02:00
|
|
|
class NaturalLanguageAnalyzer:
|
2024-06-07 00:38:21 +02:00
|
|
|
info_dict = None
|
2024-05-27 21:50:25 +02:00
|
|
|
def predict(self, text, context=None):
|
2024-05-08 23:36:04 +02:00
|
|
|
# Inicjalizacja modelu NLU
|
|
|
|
model_name = "ConvLab/t5-small-nlu-multiwoz21"
|
|
|
|
nlu_model = T5NLU(speaker='user', context_window_size=0, model_name_or_path=model_name)
|
2024-04-23 13:04:36 +02:00
|
|
|
|
2024-05-08 23:36:04 +02:00
|
|
|
# Automatyczne tłumaczenie na język angielski
|
|
|
|
translated_input = translate_text(text)
|
2024-04-23 13:04:36 +02:00
|
|
|
|
2024-05-08 23:36:04 +02:00
|
|
|
# Wygenerowanie odpowiedzi z modelu NLU
|
|
|
|
nlu_output = nlu_model.predict(translated_input)
|
2024-04-23 13:04:36 +02:00
|
|
|
|
2024-05-08 23:36:04 +02:00
|
|
|
return nlu_output
|
2024-05-27 21:50:25 +02:00
|
|
|
|
|
|
|
def init_session(self):
|
|
|
|
# Inicjalizacja sesji (jeśli konieczne)
|
|
|
|
pass
|