54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
import requests
|
|
import json
|
|
import logging as log
|
|
import time
|
|
import ollama
|
|
|
|
from . import credentials
|
|
from . import syspromts
|
|
from . 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'
|
|
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(text:str, target_language: str, model='llama3.2:1b'):
|
|
s = getattr(syspromts, f"TRANSLATOR_DE_{target_language.upper()}")
|
|
response = ollama.chat(
|
|
model = model,
|
|
messages = [
|
|
{'role': 'system', 'content': s},
|
|
{'role': 'user', 'content': text}
|
|
],
|
|
)
|
|
return response['message']['content']
|
|
|
|
if __name__ == "__main__":
|
|
import time
|
|
|
|
start=time.time()
|
|
response = translate_de_to_x(test_content.TESTSENTENCE_DE_HELLO, target_language='en')
|
|
print("First query took", time.time() - start)
|
|
print(response)
|
|
|
|
start=time.time()
|
|
response = translate_de_to_x(test_content.TESTSENTENCE_DE_HELLO, target_language='fr')
|
|
print("Second query took", time.time() - start)
|
|
print(response)
|