use_bumble (#1)
Adapt the project to use the bumble auracaster Reviewed-on: https://gitea.pstruebi.xyz/auracaster/multilang-translator-local/pulls/1
This commit was merged in pull request #1.
This commit is contained in:
@@ -1,10 +1,18 @@
|
||||
import time
|
||||
import requests
|
||||
import json
|
||||
import logging as log
|
||||
import time
|
||||
import ollama
|
||||
|
||||
from . import credentials
|
||||
from . import syspromts
|
||||
from multilang_translator.translator import credentials
|
||||
from multilang_translator.translator import syspromts
|
||||
from multilang_translator.translator import test_content
|
||||
|
||||
# ollama.create( # TODO: create models on startup
|
||||
# model='example',
|
||||
# from_='llama3.2', system="You are Mario from Super Mario Bros."
|
||||
# )
|
||||
|
||||
def query_model(model, query):
|
||||
url = f'{credentials.BASE_URL}/api/chat/completions'
|
||||
@@ -21,42 +29,33 @@ def query_model(model, query):
|
||||
return response.json()
|
||||
|
||||
|
||||
def translate_de_to_x(target_language: str, text:str, model ='llama3.2:3b-instruct-q4_0'):
|
||||
def translate_de_to_x(text:str, target_language: str, model='llama3.2:3b-instruct-q4_0'): # remember to use instruct models
|
||||
start=time.time()
|
||||
s = getattr(syspromts, f"TRANSLATOR_DE_{target_language.upper()}")
|
||||
return query_model(model, s + text)['choices'][0]['message']['content']
|
||||
|
||||
|
||||
def translator_de_en(query):
|
||||
MODEL = 'llama3.2:3b-instruct-q4_0'
|
||||
#MODEL = 'llama3.1:8b-instruct-q4_0'
|
||||
return query_model(MODEL, syspromts.TRANSLATOR_DE_EN + query)['choices'][0]['message']['content']
|
||||
|
||||
def translator_de_fr(query):
|
||||
MODEL = 'llama3.2:3b-instruct-q4_0'
|
||||
return query_model(MODEL, syspromts.TRANSLATOR_DE_FR + query)['choices'][0]['message']['content']
|
||||
|
||||
def translator_de_es(query):
|
||||
MODEL = 'llama3.2:3b-instruct-q4_0'
|
||||
return query_model(MODEL, syspromts.TRANSLATOR_DE_ES + query)['choices'][0]['message']['content']
|
||||
|
||||
def translator_de_it(query):
|
||||
MODEL = 'llama3.2:3b-instruct-q4_0'
|
||||
return query_model(MODEL, syspromts.TRANSLATOR_DE_IT + query)['choices'][0]['message']['content']
|
||||
|
||||
response = ollama.chat(
|
||||
model = model,
|
||||
messages = [
|
||||
{'role': 'system', 'content': s},
|
||||
{'role': 'user', 'content': text}
|
||||
],
|
||||
)
|
||||
log.info('Running the translator to %s took %s s', target_language, round(time.time() - start, 3))
|
||||
return response['message']['content']
|
||||
|
||||
if __name__ == "__main__":
|
||||
import time
|
||||
|
||||
TESTSENTENCE_DE_BROKER = 'Ein Broker (oder Makler) ist eine Person oder ein Unternehmen, das sich zwischen dem Kauf- und Verkaufsberechtigten einer Wirtschaftsgüter (z.B. Aktien, Optionen, Derivate, Währungen, Rohstoffe usw.) stellt und als Vermittler fungiert. Sein Hauptziel ist es, Transaktionen zu erleichtern und Geld für sich selbst zu verdienen.'
|
||||
|
||||
start=time.time()
|
||||
response = translator_de_en(TESTSENTENCE_DE_BROKER)
|
||||
print("First query took", start - time.time())
|
||||
print(json.dumps(response, indent=2))
|
||||
response = translate_de_to_x('Der Zug ist da.', target_language='en', model='llama3.2:1b-instruct-q4_0')
|
||||
print("Query took", time.time() - start)
|
||||
print(response)
|
||||
|
||||
start=time.time()
|
||||
response = translator_de_fr(TESTSENTENCE_DE_BROKER)
|
||||
print("Second query took", start - time.time())
|
||||
response = translate_de_to_x(test_content.TESTSENTENCE_DE_RAINBOW, target_language='en')
|
||||
print("query took", time.time() - start)
|
||||
print(response)
|
||||
|
||||
start=time.time()
|
||||
response = translate_de_to_x(test_content.TESTSENTENCE_DE_RAINBOW, target_language='fr')
|
||||
print("query took", time.time() - start)
|
||||
print(response)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
TRANSLATOR_DE_EN = 'You are a translator. Translate the following sentence from German to English. Only respond with the translated sentence:\n'
|
||||
TRANSLATOR_DE_FR = 'Vous êtes un traducteur. Traduisez la phrase suivante de l\'allemand vers le français. Répondez uniquement par la traduction :\n'
|
||||
TRANSLATOR_DE_ES = 'Estás un traductor. Traduce la siguiente frase del alemán al español. Responda solo con la traducción:\n'
|
||||
TRANSLATOR_DE_IT = 'Siete un traduttore. Traducete la seguente frase dal tedesco all \'inglese. Rispondete solo con la traduzione della frase:\n'
|
||||
TRANSLATOR_DE_EN = 'Du bist ein Übersetzer. Übersetze die folgende Satz aus dem Deutschen ins Englische. Antworte nur mit der übersetzten Satz.\n'
|
||||
TRANSLATOR_DE_FR = 'Du bist ein Übersetzer. Übersetze die folgende Satz aus dem Deutschen ins Französische. Antworte nur mit der übersetzten Satz.\n'
|
||||
TRANSLATOR_DE_ES = 'Du bist ein Übersetzer. Übersetze die folgende Satz aus dem Deutschen ins Spanische. Antworte nur mit der übersetzten Satz.\n'
|
||||
TRANSLATOR_DE_IT = 'Du bist ein Übersetzer. Übersetze die folgende Satz aus dem Deutschen ins Italienische. Antworte nur mit der übersetzten Satz.\n'
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
TESTSENTENCE_DE_HELLO = 'Hallo Welt.'
|
||||
TESTSENTENCE_DE_WAVE_PARTICLE = 'Der Wellen-Teilchen-Dualismus beschreibt die Eigenschaft von Teilchen, sowohl als Wellen auf der Mikroebene zu verhalten und gleichzeitig bestimmte Eigenschaften wie Impuls und Energietrang zu besitzen.'
|
||||
TESTSENTENCE_DE_BROKER = 'Ein Broker (oder Makler) ist eine Person oder ein Unternehmen, das sich zwischen dem Kauf- und Verkaufsberechtigten einer Wirtschaftsgüter (z.B. Aktien, Optionen, Derivate, Währungen, Rohstoffe usw.) stellt und als Vermittler fungiert. Sein Hauptziel ist es, Transaktionen zu erleichtern und Geld für sich selbst zu verdienen.'
|
||||
TESTSENTENCE_DE_RAINBOW = 'Der Regenbogen ist ein atmosphärisch-optisches Phänomen, das als kreisbogenförmiges farbiges Lichtband in einer von der Sonne beschienenen Regenwand oder wolke wahrgenommen wird.'
|
||||
TESTSENTENCE_DE_RAINBOW = 'Der Regenbogen ist ein atmosphärisch-optisches Phänomen, das als kreisbogenförmiges farbiges Lichtband in einer von der Sonne beschienenen Regenwand oder wolke wahrgenommen wird.'
|
||||
TESTSENTENCE_DE_GATE_OPENED = "Please be advised that Gate 23 has opened for boarding."
|
||||
TESTSENTENCE_DE_TRAIN_DELAYS = "Please note that delays have been reported on the InterCity train route. We apologize for any inconvenience this may cause."
|
||||
TESTSENTENCE_DE_LOST_LUGGAGE = "Attention passengers! Lost luggage has been reported at Track 4. If you have not yet received your bag, please report to our lost luggage desk for assistance."
|
||||
TESTSENTENCE_DE_PLANE_TAKEOFF_DELAYED = "This departing flight's departure time has changed due to weather conditions. The new boarding time will be advised shortly."
|
||||
TESTSENTENCE_DE_SECURITY_CHECKPOINT_OPENING = "Security Checkpoint 5 is now open. Please proceed through the checkpoint to minimize your wait time during security screening."
|
||||
|
||||
Reference in New Issue
Block a user