Implementa un agente financiero que consulta información sobre la inflación en Argentina utilizando OpenAI y herramientas de Wikipedia y Yahoo Finance. Se define un flujo de trabajo en Prefect para gestionar la ejecución y el registro de mensajes enviados al modelo.
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
import marimo
|
||||
|
||||
__generated_with = "0.14.17"
|
||||
app = marimo.App(width="medium")
|
||||
|
||||
|
||||
@app.cell
|
||||
def _():
|
||||
import marimo as mo
|
||||
return (mo,)
|
||||
|
||||
|
||||
@app.cell(hide_code=True)
|
||||
def _(mo):
|
||||
mo.md(r"""# Grafana: Inicialización automática 🚀""")
|
||||
return
|
||||
|
||||
|
||||
@app.cell
|
||||
def _():
|
||||
import os
|
||||
import yaml
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
# ==== Parámetros ====
|
||||
PUERTO_GRAFANA = 33000 # puerto host -> 3000 del contenedor
|
||||
SERVICIO = "grafana_srv"
|
||||
ADMIN_USER = "admin"
|
||||
ADMIN_PASSWORD = "admin123"
|
||||
RUTA_PROYECTO = Path(".").resolve()
|
||||
|
||||
return (
|
||||
ADMIN_PASSWORD,
|
||||
ADMIN_USER,
|
||||
Path,
|
||||
PUERTO_GRAFANA,
|
||||
RUTA_PROYECTO,
|
||||
SERVICIO,
|
||||
subprocess,
|
||||
yaml,
|
||||
)
|
||||
|
||||
|
||||
@app.cell
|
||||
def _(Path, yaml):
|
||||
def crear_docker_compose(ruta: Path, servicio: str, puerto_host: int, admin_user: str, admin_password: str):
|
||||
compose = {
|
||||
"version": "3.8",
|
||||
"services": {
|
||||
servicio: {
|
||||
"image": "grafana/grafana:latest",
|
||||
"container_name": servicio,
|
||||
"restart": "always",
|
||||
"ports": [f"{puerto_host}:3000"],
|
||||
"environment": {
|
||||
"GF_SECURITY_ADMIN_USER": admin_user,
|
||||
"GF_SECURITY_ADMIN_PASSWORD": admin_password,
|
||||
"GF_USERS_ALLOW_SIGN_UP": "false",
|
||||
"GF_INSTALL_PLUGINS": "grafana-piechart-panel,grafana-worldmap-panel",
|
||||
},
|
||||
"volumes": [
|
||||
"grafana_data:/var/lib/grafana",
|
||||
],
|
||||
}
|
||||
},
|
||||
"volumes": {"grafana_data": {}}
|
||||
}
|
||||
|
||||
(ruta / "docker-compose.yml").write_text(yaml.dump(compose, sort_keys=False), encoding="utf-8")
|
||||
|
||||
return (crear_docker_compose,)
|
||||
|
||||
|
||||
@app.cell
|
||||
def _(Path, subprocess):
|
||||
def construir_y_levantar(ruta: Path):
|
||||
def _run(cmd):
|
||||
subprocess.run(cmd, cwd=ruta, check=True)
|
||||
|
||||
try:
|
||||
_run(["docker", "compose", "build"])
|
||||
_run(["docker", "compose", "up", "-d"])
|
||||
except Exception:
|
||||
_run(["docker-compose", "build"])
|
||||
_run(["docker-compose", "up", "-d"])
|
||||
|
||||
return (construir_y_levantar,)
|
||||
|
||||
|
||||
@app.cell
|
||||
def _(ADMIN_PASSWORD, ADMIN_USER, PUERTO_GRAFANA, RUTA_PROYECTO, SERVICIO, construir_y_levantar, crear_docker_compose):
|
||||
if __name__ == "__main__":
|
||||
RUTA_PROYECTO.mkdir(parents=True, exist_ok=True)
|
||||
crear_docker_compose(RUTA_PROYECTO, SERVICIO, PUERTO_GRAFANA, ADMIN_USER, ADMIN_PASSWORD)
|
||||
construir_y_levantar(RUTA_PROYECTO)
|
||||
print(f"✅ Grafana inicializado en http://localhost:{PUERTO_GRAFANA} (usuario: {ADMIN_USER}, contraseña: {ADMIN_PASSWORD})")
|
||||
return
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.run()
|
||||
Reference in New Issue
Block a user