import urllib.request
import json
def call_ollama(prompt, model='llama3:latest', format_json=False):
    url = 'http://localhost:11434/api/generate'
    data = {'model': model, 'prompt': prompt, 'stream': False, 'options': {'temperature': 0.0}}
    if format_json: data['format'] = 'json'
    req = urllib.request.Request(url, data=json.dumps(data).encode('utf-8'), headers={'Content-Type': 'application/json'})
    with urllib.request.urlopen(req, timeout=45) as response:
        return json.loads(response.read().decode('utf-8')).get('response', '').strip()

clean_query = 'ps5'
title = 'Fifa 23 PS5'
price_val = 20.0

prompt_1 = (
    f"Utente cerca la CONSOLE o il DISPOSITIVO: '{clean_query}'. Titolo annuncio: '{title}'. Prezzo: {price_val} EUR.\n"
    f"Rispondi SOLO con un JSON valido con chiave 'is_real': 'SI' se l'annuncio vende PROPRIO la console/dispositivo principale, "
    f"'NO' se vende un GIOCO (es. Fifa, Spiderman), un ACCESSORIO (es. joystick, cuffie), una SCATOLA VUOTA o pezzi di ricambio."
)

print('TEST PROMPT 1 (Gioco):', call_ollama(prompt_1, format_json=True))

title2 = 'Playstation 5 con lettore disco usata pochissimo'
price_val2 = 350.0
prompt_2 = (
    f"Utente cerca la CONSOLE o il DISPOSITIVO: '{clean_query}'. Titolo annuncio: '{title2}'. Prezzo: {price_val2} EUR.\n"
    f"Rispondi SOLO con un JSON valido con chiave 'is_real': 'SI' se l'annuncio vende PROPRIO la console/dispositivo principale, "
    f"'NO' se vende un GIOCO (es. Fifa, Spiderman), un ACCESSORIO (es. joystick, cuffie), una SCATOLA VUOTA o pezzi di ricambio."
)
print('TEST PROMPT 2 (Console Vera):', call_ollama(prompt_2, format_json=True))

