Files
auracast-translator/multilang_translator/translator/llm_translator.py
2024-12-19 14:01:32 +01:00

63 lines
2.2 KiB
Python

import requests
import json
import logging as log
import time
from . import credentials
from . import syspromts
def query_model(model, query):
url = f'{credentials.BASE_URL}/api/chat/completions'
headers = {
'Authorization': f'Bearer {credentials.TOKEN}',
}
payload = {
'model': model,
'messages': [{'role': 'user', 'content': query}],
}
start = time.time()
response = requests.post(url, headers=headers, json=payload)
log.info("Translating the text took %s s", round(time.time() - start, 2))
return response.json()
def translate_de_to_x(target_language: str, text:str, model ='llama3.2:3b-instruct-q4_0'):
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']
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))
print(response)
start=time.time()
response = translator_de_fr(TESTSENTENCE_DE_BROKER)
print("Second query took", start - time.time())
print(response)