Skip to content

Commit 6ab26c6

Browse files
refactoring
1 parent 0b185af commit 6ab26c6

File tree

1 file changed

+35
-25
lines changed

1 file changed

+35
-25
lines changed

core/CAIAssistant.py

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -44,39 +44,49 @@ def _extractParts(self, text):
4444
tmp = [x for x in tmp if (len(x) == 2) and (len(x[0]) > 0) and (len(x[1]) > 0)]
4545
return {k: v for k, v in tmp}
4646

47-
def translate(self, text, fastTranslation, language):
48-
# run shallow translation
49-
res = self._translateShallow.run({
50-
'UserInput': text,
51-
'FastTranslation': fastTranslation,
52-
'Language': language
53-
})
47+
def _executePrompt(self, prompt, variables):
48+
res = prompt.run(variables)
5449
logging.info(res)
55-
# extract translation
56-
translation = self._extractParts(res)
57-
logging.info(json.dumps(translation, indent=2))
50+
res = self._extractParts(res)
51+
logging.info(json.dumps(res, indent=2))
5852
flags = {
5953
k: v.lower() == 'yes'
60-
for k, v in translation.items()
54+
for k, v in res.items()
6155
if v.lower() in ['yes', 'no']
6256
}
57+
# remove flags from result
58+
res = {k: v for k, v in res.items() if k not in flags}
59+
# add flags as separate variable
60+
res['Flags'] = flags
61+
return res
62+
63+
def translate(self, text, fastTranslation, language):
64+
# run shallow translation
65+
res = self._executePrompt(
66+
self._translateShallow,
67+
{
68+
'UserInput': text,
69+
'FastTranslation': fastTranslation,
70+
'Language': language
71+
}
72+
)
73+
flags = res['Flags']
6374
totalIssues = sum([int(v) for k, v in flags.items()])
6475
if totalIssues < 2:
65-
yield translation['Translation']
76+
yield res['Translation']
6677
return # all ok, no need to run deep translation
67-
yield translation['Translation'] + '\n\n\n' + translation.get('Notification', '')
78+
yield res['Translation'] + '\n\n\n' + res.get('Notification', '')
6879

6980
# run deep translation
70-
res = self._translateDeep.run({
71-
'UserInput': text,
72-
'FastTranslation': translation['Translation'], # use shallow translation as reference
73-
'Language': language,
74-
'InputLanguage': translation.get('Input language', 'unknown'),
75-
'Flags': ', '.join([k for k, v in flags.items() if v])
76-
})
77-
logging.info(res)
78-
# extract final translation
79-
translation = self._extractParts(res)
80-
logging.info(json.dumps(translation, indent=2))
81-
yield translation['Translation']
81+
res = self._executePrompt(
82+
self._translateDeep,
83+
{
84+
'UserInput': text,
85+
'FastTranslation': res['Translation'], # use shallow translation as reference
86+
'Language': language,
87+
'InputLanguage': res.get('Input language', 'unknown'),
88+
'Flags': ', '.join([k for k, v in flags.items() if v])
89+
}
90+
)
91+
yield res['Translation']
8292
return

0 commit comments

Comments
 (0)