116 lines
2.4 KiB
Python
116 lines
2.4 KiB
Python
|
|
import requests
|
|
import json
|
|
from datetime import datetime
|
|
|
|
# ---------------------------
|
|
# CONFIG
|
|
# ---------------------------
|
|
OLLAMA_URL = "http://136.115.239.38:11434/api/generate"
|
|
MODEL = "qwen:14b"
|
|
|
|
pg_config = PGConfig()
|
|
database = DatabaseManager(pg_config.database, pg_config.databaseID)
|
|
|
|
# ---------------------------
|
|
# 1. TU QUERY (ya la tienes)
|
|
# ---------------------------
|
|
query = f"""
|
|
SELECT TOP (100)-- [ID]
|
|
-- ,[FieldID]
|
|
[ExecutionID]
|
|
,[ProcedureID]
|
|
,[ProcedureName]
|
|
,[ProcedureType]
|
|
,[TargetDate]
|
|
,[Status]
|
|
,[ExecutedBy]
|
|
,[MessageDescription]
|
|
,[Source]
|
|
,[ExtraInfo]
|
|
,[ExecutionDate]
|
|
FROM [glm_pg].[dbo].[ExecutionLog]
|
|
|
|
|
|
where [Status]='FAILED' AND [TargetDate]>'2026-04-01'
|
|
|
|
ORDER BY [ExecutionDate] DESC
|
|
"""
|
|
|
|
print("Query ejecutada:")
|
|
print(query)
|
|
|
|
# ---------------------------
|
|
# 2. EJECUTAR QUERY
|
|
# ---------------------------
|
|
data_sql_report = database.get_execute_query(query)
|
|
|
|
# ---------------------------
|
|
# 3. FORMATEAR DATOS
|
|
# ---------------------------
|
|
def format_data(data):
|
|
try:
|
|
return json.dumps(data, indent=2, default=str)
|
|
except:
|
|
return str(data)
|
|
|
|
data_formatted = format_data(data_sql_report)
|
|
|
|
# ---------------------------
|
|
# 4. CREAR PROMPT
|
|
# ---------------------------
|
|
prompt = f"""
|
|
Eres un analista de datos experto.
|
|
|
|
Tengo los siguientes datos obtenidos desde SQL:
|
|
|
|
QUERY:
|
|
{query}
|
|
|
|
RESULTADO:
|
|
{data_formatted}
|
|
|
|
TAREA:
|
|
1. Analiza los datos
|
|
2. Identifica patrones importantes
|
|
3. Detecta posibles errores o anomalías
|
|
4. Da recomendaciones claras
|
|
|
|
Responde de forma clara y estructurada.
|
|
"""
|
|
|
|
# ---------------------------
|
|
# 5. GUARDAR PROMPT EN TXT
|
|
# ---------------------------
|
|
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
file_name = f"prompt_{timestamp}.txt"
|
|
|
|
with open(file_name, "w", encoding="utf-8") as f:
|
|
f.write(prompt)
|
|
|
|
print(f"\nPrompt guardado en: {file_name}")
|
|
|
|
# ---------------------------
|
|
# 6. (OPCIONAL) ENVIAR A IA
|
|
# ---------------------------
|
|
send_to_ai = True # cambia a False si solo quieres el TXT
|
|
print(datetime.now())
|
|
if send_to_ai:
|
|
response = requests.post(
|
|
OLLAMA_URL,
|
|
json={
|
|
"model": MODEL,
|
|
"prompt": prompt,
|
|
"stream": False
|
|
}
|
|
)
|
|
|
|
result = response.json()
|
|
|
|
print("\nRespuesta IA:\n")
|
|
print(result["response"])
|
|
print(datetime.now())
|
|
print(datetime.now())
|
|
|
|
|