first commit
This commit is contained in:
+115
@@ -0,0 +1,115 @@
|
||||
|
||||
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())
|
||||
|
||||
|
||||
Reference in New Issue
Block a user