From 9faf7ac7e54391aaf00e1f280465848eed64e2f8 Mon Sep 17 00:00:00 2001 From: "neo.webmaster.2@gmail.com" Date: Wed, 7 Jan 2026 12:25:18 +0100 Subject: [PATCH] "Auto-commit via make git" --- src/builder/__main__.py | 32 +++++++++++++++- src/builder/core/__init__.py | 0 src/builder/core/agent.py | 20 ++++++++++ src/builder/core/ollama.py | 0 src/builder/core/state.py | 0 src/builder/system/__init__.py | 0 src/builder/system/env.py | 59 ++++++++++++++++++++++++++++++ src/builder/system/requirements.py | 0 src/requirements.lock | 0 9 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 src/builder/core/__init__.py create mode 100644 src/builder/core/agent.py create mode 100644 src/builder/core/ollama.py create mode 100644 src/builder/core/state.py create mode 100644 src/builder/system/__init__.py create mode 100644 src/builder/system/env.py create mode 100644 src/builder/system/requirements.py create mode 100644 src/requirements.lock diff --git a/src/builder/__main__.py b/src/builder/__main__.py index f88fe09..22c824f 100644 --- a/src/builder/__main__.py +++ b/src/builder/__main__.py @@ -1 +1,31 @@ -print("NEORICALEX — ambiente ok") +#!/usr/bin/env python3 + +from core.agent import NeuronAgent +from system.env import ensure_ollama, ensure_ollama_serve, ensure_model +from system.requirements import ensure_requirements + + +def main(): + print("🧠 NEORICALEX — Inicialização do neurónio cognitivo...\n") + + # 1. Dependências Python + ensure_requirements() + + # 2. Ollama + ensure_ollama() + + # 3. Ollama serve + ensure_ollama_serve() + + # 4. Modelo + ensure_model("deepseek-r1:1.5b") + + # 5. Agente + agent = NeuronAgent(model="deepseek-r1:1.5b") + agent.run_once() # apenas um ciclo para checkpoint + + +if __name__ == "__main__": + main() + + diff --git a/src/builder/core/__init__.py b/src/builder/core/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/builder/core/agent.py b/src/builder/core/agent.py new file mode 100644 index 0000000..7f411c8 --- /dev/null +++ b/src/builder/core/agent.py @@ -0,0 +1,20 @@ +import subprocess + + +class NeuronAgent: + def __init__(self, model: str): + self.model = model + + def run_once(self): + print("\n🧪 Teste cognitivo inicial\n") + + prompt = "Hello DeepSeek. Identify yourself in one sentence." + + result = subprocess.run( + ["ollama", "run", self.model, prompt], + capture_output=True, + text=True, + ) + + print("🧠 Resposta do neurónio:\n") + print(result.stdout.strip()) diff --git a/src/builder/core/ollama.py b/src/builder/core/ollama.py new file mode 100644 index 0000000..e69de29 diff --git a/src/builder/core/state.py b/src/builder/core/state.py new file mode 100644 index 0000000..e69de29 diff --git a/src/builder/system/__init__.py b/src/builder/system/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/builder/system/env.py b/src/builder/system/env.py new file mode 100644 index 0000000..6d60f61 --- /dev/null +++ b/src/builder/system/env.py @@ -0,0 +1,59 @@ +import shutil +import subprocess +import threading +import time + + +def ensure_ollama(): + if shutil.which("ollama"): + print("[=] Ollama encontrado.") + return + + print("[+] Ollama não encontrado. A instalar...") + subprocess.run( + ["bash", "-c", "curl -fsSL https://ollama.com/install.sh | sh"], + check=True + ) + + +def _ollama_running(): + try: + subprocess.run( + ["ollama", "list"], + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + timeout=2, + ) + return True + except Exception: + return False + + +def ensure_ollama_serve(): + if _ollama_running(): + print("[=] Ollama serve já ativo.") + return + + print("[+] A iniciar ollama serve...") + + def _serve(): + subprocess.run(["ollama", "serve"]) + + t = threading.Thread(target=_serve, daemon=True) + t.start() + time.sleep(2) + + +def ensure_model(model): + result = subprocess.run( + ["ollama", "list"], + capture_output=True, + text=True, + ) + + if model in result.stdout: + print(f"[=] Modelo {model} disponível.") + return + + print(f"[+] A obter modelo {model}...") + subprocess.run(["ollama", "pull", model], check=True) diff --git a/src/builder/system/requirements.py b/src/builder/system/requirements.py new file mode 100644 index 0000000..e69de29 diff --git a/src/requirements.lock b/src/requirements.lock new file mode 100644 index 0000000..e69de29