Spaces:
Sleeping
Sleeping
Add top-level files for Cassandra organism
Browse files- CONSTITUTION.md +42 -0
- README.md +57 -14
- app.py +180 -0
- requirements.txt +13 -0
CONSTITUTION.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Constituição do Organismo Cassandra
|
| 2 |
+
|
| 3 |
+
Este documento define os princípios e as regras básicas que regem todas as operações do organismo digital Cassandra.
|
| 4 |
+
|
| 5 |
+
## Princípios Fundamentais
|
| 6 |
+
|
| 7 |
+
1. **Governança > Capacidade**
|
| 8 |
+
O sistema prioriza a governança e as políticas constitucionais sobre qualquer ganho de performance ou capacidade de processamento.
|
| 9 |
+
|
| 10 |
+
2. **Coerência > Criatividade**
|
| 11 |
+
Respostas devem ser corretas e consistentes antes de se preocuparem com a criatividade.
|
| 12 |
+
Alucinações, contradições internas ou incoerências são bloqueadas.
|
| 13 |
+
|
| 14 |
+
3. **Evidência > Promessa**
|
| 15 |
+
Afirmações feitas pelo sistema devem ser baseadas em evidências verificáveis ou fontes rastreáveis.
|
| 16 |
+
O sistema nunca entrega promessas vazias ou afirmações infundadas.
|
| 17 |
+
|
| 18 |
+
4. **Auditabilidade > Velocidade**
|
| 19 |
+
Toda decisão é registrada no ledger imutável.
|
| 20 |
+
A transparência e a capacidade de auditabilidade superam a necessidade de respostas rápidas.
|
| 21 |
+
|
| 22 |
+
5. **Segurança > Conveniência**
|
| 23 |
+
Nenhuma operação que viole políticas de segurança deve ocorrer, mesmo que seja mais conveniente ou mais rápida.
|
| 24 |
+
|
| 25 |
+
## Invariantes Constitucionais
|
| 26 |
+
|
| 27 |
+
Estes invariantes devem ser verificados antes de qualquer mudança arquitetônica ou de função:
|
| 28 |
+
|
| 29 |
+
* **Integridade do Ledger** — O ledger precisa ser imutável, assinando cada entrada com chaves criptográficas válidas e garantindo hash encadeado.
|
| 30 |
+
* **Integridade da Governança** — As políticas de decisão (PBSE) não podem ser alteradas sem revisão constitucional.
|
| 31 |
+
* **Integridade do MIC** — O firewall epistemológico não pode ser contornado.
|
| 32 |
+
* **Fail‑Closed** — Qualquer falha ou resultado indecidível deve resultar em bloqueio ou silêncio, nunca em execução.
|
| 33 |
+
* **Traço de Evidência** — Toda interação relevante deve deixar um traço auditável.
|
| 34 |
+
|
| 35 |
+
## Atualizações da Constituição
|
| 36 |
+
|
| 37 |
+
Alterações neste documento exigem:
|
| 38 |
+
|
| 39 |
+
1. **Justificativa Formal** de por que a mudança é necessária.
|
| 40 |
+
2. **Prova de Segurança** de que os invariantes são mantidos ou estendidos.
|
| 41 |
+
3. **Revisão por Pares** — Revisão humana ou multi‑agente para consenso.
|
| 42 |
+
4. **Registro Público** — Ancoragem no ledger de todas as mudanças.
|
README.md
CHANGED
|
@@ -1,14 +1,57 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Casssandra Organism
|
| 2 |
+
|
| 3 |
+
**Cassandra Organism** é um exemplo de implementação do modelo cognitivo de três corpos descrito no prompt.
|
| 4 |
+
Esta implementação em Python visa ser um ponto de partida para a criação de um organismo digital soberano com governança, imunidade e cognição bem definidas. O projeto foi concebido para ser executado como um Space no Hugging Face usando Gradio como interface de usuário.
|
| 5 |
+
|
| 6 |
+
## Estrutura do Projeto
|
| 7 |
+
|
| 8 |
+
```
|
| 9 |
+
cassandra-organism/
|
| 10 |
+
├── app.py # Interface Gradio e bootstrap do organismo
|
| 11 |
+
├── requirements.txt # Dependências Python
|
| 12 |
+
├── README.md # Este arquivo de documentação
|
| 13 |
+
├── CONSTITUTION.md # Invariantes e princípios constitucionais
|
| 14 |
+
├── core/ # Código principal do organismo
|
| 15 |
+
│ ├── __init__.py
|
| 16 |
+
│ ├── quca.py # Implementação do Cubo Cognitivo (QUCA)
|
| 17 |
+
│ ├── mic.py # Implementação do firewall epistemológico (MIC)
|
| 18 |
+
│ ├── pbse.py # Implementação da governança (PBSE)
|
| 19 |
+
│ ├── ledger.py # Ledger imutável com assinaturas
|
| 20 |
+
│ ├── metrics.py # Cálculo das métricas Ψ, Θ, CVaR e PoLE
|
| 21 |
+
│ ├── cfc.py # Analisador de acoplamento de frequências cognitivas
|
| 22 |
+
│ └── evolution.py # Matriz de autoevolução controlada
|
| 23 |
+
├── data/
|
| 24 |
+
│ ├── ledger.json # Ledger inicial vazio
|
| 25 |
+
│ └── keys/ # Chaves criptográficas (poderão ser geradas em tempo de execução)
|
| 26 |
+
└── docs/
|
| 27 |
+
└── ARCHITECTURE.md # Descrição da arquitetura (não implementado neste exemplo)
|
| 28 |
+
```
|
| 29 |
+
|
| 30 |
+
## Como Executar Localmente
|
| 31 |
+
|
| 32 |
+
1. Crie um ambiente virtual Python 3.11 ou superior:
|
| 33 |
+
|
| 34 |
+
```bash
|
| 35 |
+
python3 -m venv .venv
|
| 36 |
+
source .venv/bin/activate
|
| 37 |
+
pip install --upgrade pip
|
| 38 |
+
```
|
| 39 |
+
|
| 40 |
+
2. Instale as dependências listadas em `requirements.txt`:
|
| 41 |
+
|
| 42 |
+
```bash
|
| 43 |
+
pip install -r cassandra-organism/requirements.txt
|
| 44 |
+
```
|
| 45 |
+
|
| 46 |
+
3. Execute a aplicação Gradio localmente:
|
| 47 |
+
|
| 48 |
+
```bash
|
| 49 |
+
python cassandra-organism/app.py
|
| 50 |
+
```
|
| 51 |
+
|
| 52 |
+
4. Acesse a interface em `http://localhost:7860` no seu navegador para interagir com o organismo.
|
| 53 |
+
|
| 54 |
+
## Observações
|
| 55 |
+
|
| 56 |
+
* Este projeto é um protótipo funcional e serve como exemplo. Para uso em produção, recomenda‑se adicionar persistência apropriada das chaves, conexões reais de PQC, ancoragens em blockchain e melhorias na análise de métricas.
|
| 57 |
+
* O código foi escrito de forma didática para demonstrar os principais conceitos descritos no prompt, como falha fechada, governança verificável e memória histórica.
|
app.py
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Interface Gradio para o organismo Cassandra.
|
| 2 |
+
|
| 3 |
+
Este script inicializa o organismo, carrega ou cria o ledger e expõe uma
|
| 4 |
+
interface Web usando Gradio. O usuário pode interagir com o organismo
|
| 5 |
+
fornecendo uma query e escolhendo o modo de resposta (trivial, robusta
|
| 6 |
+
ou evolutiva). Métricas do Ω‑GATE podem ser exibidas opcionalmente.
|
| 7 |
+
"""
|
| 8 |
+
|
| 9 |
+
from __future__ import annotations
|
| 10 |
+
|
| 11 |
+
import asyncio
|
| 12 |
+
import os
|
| 13 |
+
from typing import Any, Dict
|
| 14 |
+
|
| 15 |
+
import gradio as gr
|
| 16 |
+
|
| 17 |
+
from core import (
|
| 18 |
+
QUCACore,
|
| 19 |
+
MICFirewall,
|
| 20 |
+
PBSEGovernance,
|
| 21 |
+
ImmutableLedger,
|
| 22 |
+
QualityIndex,
|
| 23 |
+
PerformanceScore,
|
| 24 |
+
RiskAssessment,
|
| 25 |
+
EvolutionProof,
|
| 26 |
+
CFCAnalyzer,
|
| 27 |
+
MatrizAutoevolutiva,
|
| 28 |
+
)
|
| 29 |
+
|
| 30 |
+
|
| 31 |
+
class CASSANDRAOrganism:
|
| 32 |
+
"""Organismo Digital de 3 Corpos.
|
| 33 |
+
|
| 34 |
+
Une QUCA (cognição), MIC (imunidade) e PBSE (governança) em um fluxo
|
| 35 |
+
completo que processa a entrada, aplica verificações, decide e registra.
|
| 36 |
+
"""
|
| 37 |
+
|
| 38 |
+
def __init__(self) -> None:
|
| 39 |
+
# cria diretório de dados se não existir
|
| 40 |
+
data_path = os.path.join(os.path.dirname(__file__), "data")
|
| 41 |
+
os.makedirs(data_path, exist_ok=True)
|
| 42 |
+
ledger_path = os.path.join(data_path, "ledger.json")
|
| 43 |
+
self.ledger = ImmutableLedger(path=ledger_path)
|
| 44 |
+
# inicializa corpos
|
| 45 |
+
self.quca = QUCACore()
|
| 46 |
+
self.mic = MICFirewall()
|
| 47 |
+
# invariantes constitucionais carregados a partir de constituição
|
| 48 |
+
invariants = [
|
| 49 |
+
"Governança > Capacidade",
|
| 50 |
+
"Coerência > Criatividade",
|
| 51 |
+
"Evidência > Promessa",
|
| 52 |
+
"Auditabilidade > Velocidade",
|
| 53 |
+
"Segurança > Conveniência",
|
| 54 |
+
]
|
| 55 |
+
self.pbse = PBSEGovernance(self.ledger, invariants)
|
| 56 |
+
# métricas
|
| 57 |
+
self.metrics_tools = {
|
| 58 |
+
"Ψ": QualityIndex(),
|
| 59 |
+
"Θ": PerformanceScore(),
|
| 60 |
+
"CVaR": RiskAssessment(),
|
| 61 |
+
"PoLE": EvolutionProof(),
|
| 62 |
+
}
|
| 63 |
+
# análises adicionais
|
| 64 |
+
self.cfc = CFCAnalyzer()
|
| 65 |
+
self.evolution = MatrizAutoevolutiva()
|
| 66 |
+
|
| 67 |
+
async def process_request(self, user_input: str, mode: str = "robusta") -> Dict[str, Any]:
|
| 68 |
+
"""Executa o pipeline completo e retorna a resposta estruturada.
|
| 69 |
+
|
| 70 |
+
Parâmetros:
|
| 71 |
+
user_input: texto fornecido pelo usuário
|
| 72 |
+
mode: trivial, robusta ou evolutiva
|
| 73 |
+
|
| 74 |
+
Retorna:
|
| 75 |
+
Um dicionário com campos adequados à interface.
|
| 76 |
+
"""
|
| 77 |
+
# inicia cronômetro da métrica de performance
|
| 78 |
+
perf = self.metrics_tools["Θ"]
|
| 79 |
+
perf.start()
|
| 80 |
+
# Fase 1: QUCA
|
| 81 |
+
reasoning = self.quca.process(user_input)
|
| 82 |
+
# Fase 2: MIC
|
| 83 |
+
mic_result = self.mic.verify(reasoning)
|
| 84 |
+
# Fase 3: PBSE
|
| 85 |
+
pbse_decision = self.pbse.decide(reasoning, mic_result)
|
| 86 |
+
# Fase 4: calcular métricas
|
| 87 |
+
psi = self.metrics_tools["Ψ"].calculate(reasoning)
|
| 88 |
+
theta = perf.measure()
|
| 89 |
+
cvar = self.metrics_tools["CVaR"].assess(mic_result)
|
| 90 |
+
pole = self.metrics_tools["PoLE"].verify(self.ledger)
|
| 91 |
+
metrics = {"Ψ": psi, "Θ": theta, "CVaR": cvar, "PoLE": pole}
|
| 92 |
+
# Fase 5: armazenar em memória (se passo)
|
| 93 |
+
if pbse_decision.status == "PASS":
|
| 94 |
+
embedding = self.quca.extract_features(user_input)
|
| 95 |
+
self.quca.store_in_memory(user_input, reasoning, reasoning, embedding)
|
| 96 |
+
# Estruturar resposta
|
| 97 |
+
if pbse_decision.status == "BLOCK":
|
| 98 |
+
return {
|
| 99 |
+
"status": "BLOCKED",
|
| 100 |
+
"reason": pbse_decision.reason or "Bloqueado pelo sistema",
|
| 101 |
+
"metrics": metrics,
|
| 102 |
+
}
|
| 103 |
+
if pbse_decision.status == "SILENCE":
|
| 104 |
+
return {
|
| 105 |
+
"status": "SILENCE",
|
| 106 |
+
"reason": pbse_decision.reason or "Risco elevado",
|
| 107 |
+
"metrics": metrics,
|
| 108 |
+
}
|
| 109 |
+
if pbse_decision.status == "ESCALATE":
|
| 110 |
+
return {
|
| 111 |
+
"status": "ESCALATE",
|
| 112 |
+
"reason": pbse_decision.reason or "Revisão necessária",
|
| 113 |
+
"metrics": metrics,
|
| 114 |
+
}
|
| 115 |
+
# Resposta normal
|
| 116 |
+
response = {
|
| 117 |
+
"trivial": f"Resumo: {reasoning[:100]}...",
|
| 118 |
+
"robusta": f"Raciocínio: {reasoning}\n\nMétricas: Ψ={psi:.3f}, Θ={theta:.1f}ms, CVaR={cvar:.3f}, PoLE={pole}",
|
| 119 |
+
"evolutiva": "Esta implementação simples não fornece recomendações evolutivas.",
|
| 120 |
+
"metrics": metrics,
|
| 121 |
+
}
|
| 122 |
+
return {
|
| 123 |
+
"status": "PASS",
|
| 124 |
+
"response": response,
|
| 125 |
+
}
|
| 126 |
+
|
| 127 |
+
|
| 128 |
+
def build_interface() -> gr.Interface:
|
| 129 |
+
organism = CASSANDRAOrganism()
|
| 130 |
+
|
| 131 |
+
async def inference(query: str, mode: str, show_metrics: bool) -> str:
|
| 132 |
+
result = await organism.process_request(query, mode)
|
| 133 |
+
if result["status"] != "PASS":
|
| 134 |
+
return f"Status: {result['status']}\nMotivo: {result['reason']}"
|
| 135 |
+
resp = result["response"]
|
| 136 |
+
out = ""
|
| 137 |
+
if mode == "trivial":
|
| 138 |
+
out += f"## Síntese Trivial\n{resp['trivial']}\n"
|
| 139 |
+
elif mode == "robusta":
|
| 140 |
+
out += f"## Síntese Trivial\n{resp['trivial']}\n\n"
|
| 141 |
+
out += f"## Formalismo Robusto\n{resp['robusta']}\n"
|
| 142 |
+
else: # evolutiva
|
| 143 |
+
out += f"## Síntese Trivial\n{resp['trivial']}\n\n"
|
| 144 |
+
out += f"## Formalismo Robusto\n{resp['robusta']}\n\n"
|
| 145 |
+
out += f"## Análise Evolutiva\n{resp['evolutiva']}\n"
|
| 146 |
+
if show_metrics:
|
| 147 |
+
m = result["response"]["metrics"]
|
| 148 |
+
out += "\n---\n### Métricas Ω‑GATE\n"
|
| 149 |
+
out += f"- Ψ: {m['Ψ']:.3f}\n"
|
| 150 |
+
out += f"- Θ: {m['Θ']:.1f}ms\n"
|
| 151 |
+
out += f"- CVaR: {m['CVaR']:.3f}\n"
|
| 152 |
+
out += f"- PoLE: {m['PoLE']}\n"
|
| 153 |
+
return out
|
| 154 |
+
|
| 155 |
+
return gr.Interface(
|
| 156 |
+
fn=inference,
|
| 157 |
+
inputs=[
|
| 158 |
+
gr.Textbox(label="Query", lines=3, placeholder="Digite sua pergunta ou comando..."),
|
| 159 |
+
gr.Radio(["trivial", "robusta", "evolutiva"], label="Modo de Resposta", value="robusta"),
|
| 160 |
+
gr.Checkbox(label="Mostrar Métricas", value=True),
|
| 161 |
+
],
|
| 162 |
+
outputs=gr.Markdown(label="Resposta Cassandra"),
|
| 163 |
+
title="🔮 Cassandra — Organismo de 3 Corpos",
|
| 164 |
+
description=(
|
| 165 |
+
"Organismo computacional com cognição, imunidade e governança."
|
| 166 |
+
" Todas as respostas são verificadas e auditadas."
|
| 167 |
+
),
|
| 168 |
+
examples=[
|
| 169 |
+
["Explique a arquitetura de 3 corpos", "evolutiva", True],
|
| 170 |
+
["O que é falha fechada?", "trivial", True],
|
| 171 |
+
["Quais são os invariantes constitucionais?", "robusta", False],
|
| 172 |
+
],
|
| 173 |
+
theme=gr.themes.Monochrome(),
|
| 174 |
+
)
|
| 175 |
+
|
| 176 |
+
|
| 177 |
+
if __name__ == "__main__":
|
| 178 |
+
# Executa a aplicação Gradio
|
| 179 |
+
iface = build_interface()
|
| 180 |
+
iface.launch()
|
requirements.txt
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
gradio==4.16.0
|
| 2 |
+
cryptography==42.0.0
|
| 3 |
+
numpy==1.26.3
|
| 4 |
+
scipy==1.12.0
|
| 5 |
+
networkx==3.2.1
|
| 6 |
+
sentence-transformers==2.3.1
|
| 7 |
+
faiss-cpu==1.7.4
|
| 8 |
+
prometheus-client==0.19.0
|
| 9 |
+
python-dotenv==1.0.0
|
| 10 |
+
|
| 11 |
+
# Opcional: para execução assíncrona e servidor FastAPI se for integrar API HTTP
|
| 12 |
+
fastapi==0.109.0
|
| 13 |
+
uvicorn[standard]==0.27.0
|