testing
This commit is contained in:
85
app/iacorrector.py
Normal file
85
app/iacorrector.py
Normal file
@ -0,0 +1,85 @@
|
||||
import requests
|
||||
import json
|
||||
import os
|
||||
import logging
|
||||
|
||||
# Configuración del logging
|
||||
LOG_FILE = "app.log"
|
||||
logging.basicConfig(
|
||||
filename=LOG_FILE, # Archivo de logs
|
||||
level=logging.INFO, # Nivel de logging (DEBUG, INFO, WARNING, ERROR, CRITICAL)
|
||||
format="%(asctime)s - %(levelname)s - %(message)s", # Formato de los logs
|
||||
)
|
||||
|
||||
# Obtener variables de entorno
|
||||
OLLAMA_URL = os.environ.get("OLLAMA_URL", "http://host.docker.internal:11434/api/generate")
|
||||
OLLAMA_MODEL = os.environ.get("OLLAMA_MODEL", "llama3")
|
||||
|
||||
def is_security_related(prompt):
|
||||
data = {
|
||||
"model": OLLAMA_MODEL,
|
||||
"prompt": f"Does the following topic relate to national defense, armed forces, police, espionage, or intelligence? Answer only with 'true' or 'false'. Topic: {prompt}",
|
||||
}
|
||||
|
||||
try:
|
||||
response = requests.post(OLLAMA_URL, json=data)
|
||||
response.raise_for_status() # Lanza una excepción si la solicitud falla
|
||||
|
||||
for line in response.text.strip().split("\n"):
|
||||
json_data = json.loads(line)
|
||||
if "response" in json_data and json_data["response"].strip():
|
||||
result = json_data["response"].strip().lower() == "true"
|
||||
return result
|
||||
|
||||
except requests.RequestException as e:
|
||||
logging.error(f"Request error: {e}")
|
||||
except json.JSONDecodeError as e:
|
||||
logging.error(f"JSON Decode Error: {e}")
|
||||
|
||||
return False
|
||||
|
||||
def is_critico(prompt):
|
||||
data = {
|
||||
"model": OLLAMA_MODEL,
|
||||
"prompt": f"Does the following text criticizes the armed forces, security forces as Guardia Civil or Police, intelligence agencies such as CNI? Answer only with 'true' or 'false'. Topic: {prompt}",
|
||||
}
|
||||
|
||||
try:
|
||||
response = requests.post(OLLAMA_URL, json=data)
|
||||
response.raise_for_status()
|
||||
|
||||
for line in response.text.strip().split("\n"):
|
||||
json_data = json.loads(line)
|
||||
if "response" in json_data and json_data["response"].strip():
|
||||
result = json_data["response"].strip().lower() == "true"
|
||||
return result
|
||||
|
||||
except requests.RequestException as e:
|
||||
logging.error(f"Request error: {e}")
|
||||
except json.JSONDecodeError as e:
|
||||
logging.error(f"JSON Decode Error: {e}")
|
||||
|
||||
return False
|
||||
|
||||
def is_favorable(prompt):
|
||||
data = {
|
||||
"model": OLLAMA_MODEL,
|
||||
"prompt": f"Does the following text favor the armed forces, security forces as Guardia Civil or Police, intelligence agencies such as CNI? Answer only with 'true' or 'false'. Topic: {prompt}",
|
||||
}
|
||||
|
||||
try:
|
||||
response = requests.post(OLLAMA_URL, json=data)
|
||||
response.raise_for_status()
|
||||
|
||||
for line in response.text.strip().split("\n"):
|
||||
json_data = json.loads(line)
|
||||
if "response" in json_data and json_data["response"].strip():
|
||||
result = json_data["response"].strip().lower() == "true"
|
||||
return result
|
||||
|
||||
except requests.RequestException as e:
|
||||
logging.error(f"Request error: {e}")
|
||||
except json.JSONDecodeError as e:
|
||||
logging.error(f"JSON Decode Error: {e}")
|
||||
|
||||
return False
|
Reference in New Issue
Block a user