Upload 26 files
Browse files- PLANO_IMPLEMENTACAO_IA_GENERATIVA.md +435 -0
- Procfile +1 -0
- README.md +24 -107
- README_AOI_IA_GENERATIVA.md +473 -0
- amarna_ontology.js +43 -0
- amorc_knowledge.js +0 -0
- aoi_ia_generativa.html +868 -0
- classes.py +22 -0
- dicionario.js +19 -0
- dicionario.json +23 -0
- ditritium.js +93 -0
- egipcio_historia.js +0 -0
- egipcio_horoscopo.js +115 -0
- egipcio_knowledge.js +0 -0
- enigma.htm +460 -0
- main.py +22 -0
- morfossintaxe.js +7 -0
- morfossintaxe.json +14 -0
- neurosintese.js +200 -0
- papiro_conhecimento_kaizen.json +7 -0
- pragmatica.js +7 -0
- pragmatica.json +22 -0
- requirements.txt +22 -0
- responseModel.py +6 -0
- sociolinguistica.js +8 -0
- sociolinguistica.json +32 -0
PLANO_IMPLEMENTACAO_IA_GENERATIVA.md
ADDED
|
@@ -0,0 +1,435 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Plano de Implementação: IA Generativa Autônoma (HTML+CSS+JS Puro)
|
| 2 |
+
|
| 3 |
+
## 📋 Objetivo
|
| 4 |
+
Criar um sistema de chat generativo 100% client-side que:
|
| 5 |
+
- Gera respostas sempre diferentes para o mesmo input
|
| 6 |
+
- Analisa morfossintaxe (sujeito, verbo, objeto, advérbio)
|
| 7 |
+
- Usa demodulação I/Q para variação estrutural
|
| 8 |
+
- Armazena histórico em localStorage para evitar repetições
|
| 9 |
+
- Não depende de servidor (.py, .json externos)
|
| 10 |
+
|
| 11 |
+
---
|
| 12 |
+
|
| 13 |
+
## 🏗️ Arquitetura do Sistema
|
| 14 |
+
|
| 15 |
+
### 1. Estrutura de Arquivos
|
| 16 |
+
```
|
| 17 |
+
usage_ia_generativa.html (arquivo único standalone)
|
| 18 |
+
├── <style> CSS embutido
|
| 19 |
+
├── <script> Dados linguísticos embutidos
|
| 20 |
+
│ ├── DICIONARIO (objeto JS)
|
| 21 |
+
│ ├── MORFOSSINTAXE (objeto JS)
|
| 22 |
+
│ ├── PRAGMATICA (objeto JS)
|
| 23 |
+
│ ├── SOCIOLINGUISTICA (objeto JS)
|
| 24 |
+
│ └── AMARNA_ONTOLOGY (objeto JS)
|
| 25 |
+
└── <script> Lógica da aplicação
|
| 26 |
+
├── InputAnalyzer (análise morfossintática)
|
| 27 |
+
├── NeuroSynthesizer (geração I/Q)
|
| 28 |
+
├── ResponseMemory (anti-repetição)
|
| 29 |
+
└── ChatInterface (UI)
|
| 30 |
+
```
|
| 31 |
+
|
| 32 |
+
---
|
| 33 |
+
|
| 34 |
+
## 🔧 Componentes Principais
|
| 35 |
+
|
| 36 |
+
### 1. InputAnalyzer (Analisador de Input)
|
| 37 |
+
**Função:** Extrair elementos morfossintáticos do input do usuário
|
| 38 |
+
|
| 39 |
+
**Métodos:**
|
| 40 |
+
```javascript
|
| 41 |
+
class InputAnalyzer {
|
| 42 |
+
analyze(text) {
|
| 43 |
+
return {
|
| 44 |
+
sujeito: this.extractSubject(text),
|
| 45 |
+
verbo: this.extractVerb(text),
|
| 46 |
+
objeto: this.extractObject(text),
|
| 47 |
+
adverbio: this.extractAdverb(text),
|
| 48 |
+
tipo: this.detectType(text), // GREETING, QUESTION, STATEMENT
|
| 49 |
+
xk: this.calculateXK(text) // Nível sociolinguístico
|
| 50 |
+
}
|
| 51 |
+
}
|
| 52 |
+
}
|
| 53 |
+
```
|
| 54 |
+
|
| 55 |
+
**Estratégia de Extração:**
|
| 56 |
+
- **Sujeito:** Primeira palavra substantivo/pronome antes do verbo
|
| 57 |
+
- **Verbo:** Palavras terminadas em -ar, -er, -ir, -ando, -endo, -indo
|
| 58 |
+
- **Objeto:** Substantivo após o verbo
|
| 59 |
+
- **Advérbio:** Palavras terminadas em -mente ou advérbios comuns
|
| 60 |
+
- **Tipo:** Detectar "?" para QUESTION, palavras de saudação para GREETING
|
| 61 |
+
- **XK:** Calcular baseado em complexidade léxica e formalidade
|
| 62 |
+
|
| 63 |
+
---
|
| 64 |
+
|
| 65 |
+
### 2. NeuroSynthesizer (Motor de Neurosíntese I/Q)
|
| 66 |
+
**Função:** Gerar frases únicas usando demodulação I/Q
|
| 67 |
+
|
| 68 |
+
**Fluxo de Geração:**
|
| 69 |
+
```
|
| 70 |
+
Input → Hash → Fase (θ) → Amplitude (A) → Demodulação I/Q → Seleção de Palavras → Estrutura Dinâmica → Frase Final
|
| 71 |
+
```
|
| 72 |
+
|
| 73 |
+
**Demodulação I/Q:**
|
| 74 |
+
```javascript
|
| 75 |
+
// Fase baseada no hash do input
|
| 76 |
+
phase = (hashValue * Math.PI) / 2
|
| 77 |
+
|
| 78 |
+
// Amplitude baseada no XK
|
| 79 |
+
amplitude = (xk + 20) / 30
|
| 80 |
+
|
| 81 |
+
// Canais I e Q
|
| 82 |
+
sI = amplitude * Math.cos(phase)
|
| 83 |
+
sQ = amplitude * Math.sin(phase)
|
| 84 |
+
|
| 85 |
+
// Seleção de palavras
|
| 86 |
+
sujeito = pool_substantivos[Math.floor(sI * 100) % pool.length]
|
| 87 |
+
verbo = pool_verbos[Math.floor(sQ * 100) % pool.length]
|
| 88 |
+
```
|
| 89 |
+
|
| 90 |
+
**Variações Estruturais (4+ tipos):**
|
| 91 |
+
1. **Objeto em Foco:** "O {objeto} {adjetivo} é o que {sujeito} {verbo}..."
|
| 92 |
+
2. **Ação em Foco:** "Quando {sujeito} {verbo} o {objeto}, uma energia {adjetivo}..."
|
| 93 |
+
3. **Sujeito em Foco:** "{sujeito} sempre {verbo} o {objeto} {adjetivo}..."
|
| 94 |
+
4. **Ontológico:** "Através de '{axioma}', vemos que {conceito} faz com que..."
|
| 95 |
+
5. **Temporal:** "No momento em que {sujeito} {verbo}, o {objeto} se torna..."
|
| 96 |
+
6. **Causal:** "Porque {sujeito} {verbo}, o {objeto} {adjetivo} emerge..."
|
| 97 |
+
|
| 98 |
+
**Rotação de Estrutura:**
|
| 99 |
+
```javascript
|
| 100 |
+
structureType = Math.abs(Math.floor(phase * 10)) % 6
|
| 101 |
+
```
|
| 102 |
+
|
| 103 |
+
---
|
| 104 |
+
|
| 105 |
+
### 3. ResponseMemory (Sistema Anti-Repetição)
|
| 106 |
+
**Função:** Garantir que o mesmo input gere respostas diferentes
|
| 107 |
+
|
| 108 |
+
**Estratégia:**
|
| 109 |
+
```javascript
|
| 110 |
+
class ResponseMemory {
|
| 111 |
+
constructor() {
|
| 112 |
+
this.history = JSON.parse(localStorage.getItem('aoi_history') || '{}')
|
| 113 |
+
this.maxVariations = 10 // Máximo de variações por input
|
| 114 |
+
}
|
| 115 |
+
|
| 116 |
+
getVariationIndex(inputHash) {
|
| 117 |
+
if (!this.history[inputHash]) {
|
| 118 |
+
this.history[inputHash] = { count: 0, variations: [] }
|
| 119 |
+
}
|
| 120 |
+
return this.history[inputHash].count % this.maxVariations
|
| 121 |
+
}
|
| 122 |
+
|
| 123 |
+
saveResponse(inputHash, response) {
|
| 124 |
+
this.history[inputHash].variations.push(response)
|
| 125 |
+
this.history[inputHash].count++
|
| 126 |
+
localStorage.setItem('aoi_history', JSON.stringify(this.history))
|
| 127 |
+
}
|
| 128 |
+
}
|
| 129 |
+
```
|
| 130 |
+
|
| 131 |
+
**Modificador de Variação:**
|
| 132 |
+
```javascript
|
| 133 |
+
// Adicionar índice de variação ao seed
|
| 134 |
+
variationSeed = inputHash + variationIndex * 1000
|
| 135 |
+
|
| 136 |
+
// Isso garante que o mesmo input gere fases diferentes
|
| 137 |
+
phase = (variationSeed * Math.PI) / 2
|
| 138 |
+
```
|
| 139 |
+
|
| 140 |
+
---
|
| 141 |
+
|
| 142 |
+
### 4. ChatInterface (Interface do Usuário)
|
| 143 |
+
**Função:** Gerenciar UI e interação
|
| 144 |
+
|
| 145 |
+
**Elementos:**
|
| 146 |
+
- Input de texto
|
| 147 |
+
- Área de chat com histórico
|
| 148 |
+
- Indicador de "pensando..."
|
| 149 |
+
- Botão de limpar histórico
|
| 150 |
+
- Contador de variações
|
| 151 |
+
|
| 152 |
+
**Fluxo de Interação:**
|
| 153 |
+
```
|
| 154 |
+
Usuário digita → Enter → Análise → Geração → Exibição → Salvar em memória
|
| 155 |
+
```
|
| 156 |
+
|
| 157 |
+
---
|
| 158 |
+
|
| 159 |
+
## 📊 Dados Linguísticos Embutidos
|
| 160 |
+
|
| 161 |
+
### 1. DICIONARIO
|
| 162 |
+
```javascript
|
| 163 |
+
const DICIONARIO = {
|
| 164 |
+
substantivos: {
|
| 165 |
+
comuns: ["vida", "morte", "tempo", "verdade", "luz", ...],
|
| 166 |
+
sagrados: ["faraó", "pirâmide", "templo", ...],
|
| 167 |
+
entidades: ["Rá", "Isis", "Osíris", ...]
|
| 168 |
+
},
|
| 169 |
+
verbos: {
|
| 170 |
+
acao: ["caminhar", "falar", "olhar", ...],
|
| 171 |
+
estado: ["ser", "estar", "permanecer", ...],
|
| 172 |
+
transmutacao: ["transmutar", "emanar", "ascender", ...]
|
| 173 |
+
},
|
| 174 |
+
adjetivos: {
|
| 175 |
+
qualidade: ["eterno", "infinito", "divino", ...],
|
| 176 |
+
estado: ["claro", "escuro", "vazio", ...]
|
| 177 |
+
}
|
| 178 |
+
}
|
| 179 |
+
```
|
| 180 |
+
|
| 181 |
+
### 2. MORFOSSINTAXE
|
| 182 |
+
```javascript
|
| 183 |
+
const MORFOSSINTAXE = {
|
| 184 |
+
templates: {
|
| 185 |
+
SVP: ["{sujeito}", "{verbo}", "{objeto}"],
|
| 186 |
+
SVPA: ["{sujeito}", "{verbo}", "{objeto}", "{adjetivo}"],
|
| 187 |
+
INT_SVP: ["{pronome}", "{sujeito}", "{verbo}", "{objeto}"]
|
| 188 |
+
},
|
| 189 |
+
concordancia: {
|
| 190 |
+
genero: ["o/a", "os/as"],
|
| 191 |
+
numero: ["singular", "plural"]
|
| 192 |
+
}
|
| 193 |
+
}
|
| 194 |
+
```
|
| 195 |
+
|
| 196 |
+
### 3. PRAGMATICA
|
| 197 |
+
```javascript
|
| 198 |
+
const PRAGMATICA = {
|
| 199 |
+
intencoes: {
|
| 200 |
+
GREETING: {
|
| 201 |
+
prefixos: ["Que a luz te alcance", "Sinto a vibração", ...],
|
| 202 |
+
contextos: ["Entrada no portal", "Início de ciclo"]
|
| 203 |
+
},
|
| 204 |
+
QUESTION: {
|
| 205 |
+
prefixos: ["Questionas o tecido da realidade", "A dúvida é o princípio", ...],
|
| 206 |
+
contextos: ["Busca por conhecimento"]
|
| 207 |
+
},
|
| 208 |
+
STATEMENT: {
|
| 209 |
+
prefixos: ["Observo que", "Compreendo que", ...],
|
| 210 |
+
contextos: ["Afirmação de verdade"]
|
| 211 |
+
}
|
| 212 |
+
}
|
| 213 |
+
}
|
| 214 |
+
```
|
| 215 |
+
|
| 216 |
+
### 4. SOCIOLINGUISTICA
|
| 217 |
+
```javascript
|
| 218 |
+
const SOCIOLINGUISTICA = {
|
| 219 |
+
niveis: {
|
| 220 |
+
DIVINE: { xk_min: 8, pronome: "Vossa Excelência Divina" },
|
| 221 |
+
IMPERIAL: { xk_min: 5, pronome: "Vossa Majestade" },
|
| 222 |
+
STONE: { xk_min: -5, pronome: "Você" },
|
| 223 |
+
SHADOW: { xk_min: -15, pronome: "Tu" }
|
| 224 |
+
}
|
| 225 |
+
}
|
| 226 |
+
```
|
| 227 |
+
|
| 228 |
+
### 5. AMARNA_ONTOLOGY
|
| 229 |
+
```javascript
|
| 230 |
+
const AMARNA_ONTOLOGY = {
|
| 231 |
+
termos: [
|
| 232 |
+
{ conceito: "Linho Plissado", eixo: "Cultura-Vestuario" },
|
| 233 |
+
{ conceito: "Faianca Azul", eixo: "Artesanato" },
|
| 234 |
+
...
|
| 235 |
+
],
|
| 236 |
+
axiomas_pt: [
|
| 237 |
+
{ titulo: "As Primaveras", autor: "Casimiro de Abreu" },
|
| 238 |
+
...
|
| 239 |
+
]
|
| 240 |
+
}
|
| 241 |
+
```
|
| 242 |
+
|
| 243 |
+
---
|
| 244 |
+
|
| 245 |
+
## 🎨 Interface Visual (CSS)
|
| 246 |
+
|
| 247 |
+
### Paleta de Cores
|
| 248 |
+
- **Background:** #0a0e27 (azul escuro cósmico)
|
| 249 |
+
- **Chat Container:** #1a1f3a (azul médio)
|
| 250 |
+
- **User Message:** #2d4a7c (azul)
|
| 251 |
+
- **AI Message:** #7c2d6f (roxo místico)
|
| 252 |
+
- **Text:** #e0e0e0 (cinza claro)
|
| 253 |
+
- **Accent:** #ffd700 (dourado)
|
| 254 |
+
|
| 255 |
+
### Layout
|
| 256 |
+
```
|
| 257 |
+
┌─────────────────────────────────────┐
|
| 258 |
+
│ 🐆 AOI - IA Generativa Autônoma │
|
| 259 |
+
├─────────────────────────────────────┤
|
| 260 |
+
│ │
|
| 261 |
+
│ [AI] Mensagem da IA aqui... │
|
| 262 |
+
│ │
|
| 263 |
+
│ [User] Sua mensagem │
|
| 264 |
+
│ │
|
| 265 |
+
│ [AI] Outra resposta diferente... │
|
| 266 |
+
│ │
|
| 267 |
+
├─────────────────────────────────────┤
|
| 268 |
+
│ [Digite sua mensagem...] [Enviar] │
|
| 269 |
+
│ Variações: 3/10 | XK: 5.2 │
|
| 270 |
+
└─────────────────────────────────────┘
|
| 271 |
+
```
|
| 272 |
+
|
| 273 |
+
---
|
| 274 |
+
|
| 275 |
+
## 🔄 Fluxo de Execução Completo
|
| 276 |
+
|
| 277 |
+
### 1. Inicialização
|
| 278 |
+
```javascript
|
| 279 |
+
window.onload = () => {
|
| 280 |
+
const memory = new ResponseMemory()
|
| 281 |
+
const analyzer = new InputAnalyzer()
|
| 282 |
+
const synthesizer = new NeuroSynthesizer(DICIONARIO, PRAGMATICA, SOCIOLINGUISTICA, MORFOSSINTAXE, AMARNA_ONTOLOGY)
|
| 283 |
+
const chat = new ChatInterface()
|
| 284 |
+
|
| 285 |
+
chat.onUserInput((text) => {
|
| 286 |
+
// Análise
|
| 287 |
+
const analysis = analyzer.analyze(text)
|
| 288 |
+
const inputHash = hashString(text)
|
| 289 |
+
const variationIndex = memory.getVariationIndex(inputHash)
|
| 290 |
+
|
| 291 |
+
// Geração
|
| 292 |
+
const response = synthesizer.process(text, analysis, variationIndex)
|
| 293 |
+
|
| 294 |
+
// Exibição
|
| 295 |
+
chat.addMessage('ai', response)
|
| 296 |
+
|
| 297 |
+
// Memória
|
| 298 |
+
memory.saveResponse(inputHash, response)
|
| 299 |
+
})
|
| 300 |
+
}
|
| 301 |
+
```
|
| 302 |
+
|
| 303 |
+
### 2. Análise de Input
|
| 304 |
+
```javascript
|
| 305 |
+
analyze("Olá, como você está?")
|
| 306 |
+
// Output:
|
| 307 |
+
{
|
| 308 |
+
sujeito: "você",
|
| 309 |
+
verbo: "estar",
|
| 310 |
+
objeto: null,
|
| 311 |
+
adverbio: "como",
|
| 312 |
+
tipo: "GREETING",
|
| 313 |
+
xk: 2.5
|
| 314 |
+
}
|
| 315 |
+
```
|
| 316 |
+
|
| 317 |
+
### 3. Geração de Resposta
|
| 318 |
+
```javascript
|
| 319 |
+
// Primeira vez (variationIndex = 0)
|
| 320 |
+
"Que a luz te alcance. O tempo eterno é o que a alma transmuta sob o Linho Plissado."
|
| 321 |
+
|
| 322 |
+
// Segunda vez (variationIndex = 1)
|
| 323 |
+
"Sinto a vibração da tua chegada. Quando a divindade revela o destino, uma energia sagrada ressoa como no Templo de Aton."
|
| 324 |
+
|
| 325 |
+
// Terceira vez (variationIndex = 2)
|
| 326 |
+
"Salve, viajante do tempo. A mente sempre ascende o universo místico, refletindo a herança do Artesanato Amarniano."
|
| 327 |
+
```
|
| 328 |
+
|
| 329 |
+
---
|
| 330 |
+
|
| 331 |
+
## 🧪 Casos de Teste
|
| 332 |
+
|
| 333 |
+
### Teste 1: Repetição de Input
|
| 334 |
+
**Input:** "Olá" (5 vezes)
|
| 335 |
+
**Esperado:** 5 respostas completamente diferentes
|
| 336 |
+
|
| 337 |
+
### Teste 2: Análise Morfossintática
|
| 338 |
+
**Input:** "O gato caminha lentamente"
|
| 339 |
+
**Esperado:**
|
| 340 |
+
- Sujeito: "gato"
|
| 341 |
+
- Verbo: "caminhar"
|
| 342 |
+
- Advérbio: "lentamente"
|
| 343 |
+
|
| 344 |
+
### Teste 3: Níveis Sociolinguísticos
|
| 345 |
+
**Input Simples (XK baixo):** "oi"
|
| 346 |
+
**Esperado:** Pronome "Você", linguagem coloquial
|
| 347 |
+
|
| 348 |
+
**Input Complexo (XK alto):** "Qual é a natureza transcendental da existência?"
|
| 349 |
+
**Esperado:** Pronome "Vossa Excelência", linguagem arcaica
|
| 350 |
+
|
| 351 |
+
### Teste 4: Pragmática
|
| 352 |
+
**Input Pergunta:** "Por que o céu é azul?"
|
| 353 |
+
**Esperado:** Prefixo de questionamento + resposta filosófica
|
| 354 |
+
|
| 355 |
+
**Input Saudação:** "Bom dia"
|
| 356 |
+
**Esperado:** Prefixo de saudação + boas-vindas
|
| 357 |
+
|
| 358 |
+
---
|
| 359 |
+
|
| 360 |
+
## 📈 Métricas de Sucesso
|
| 361 |
+
|
| 362 |
+
1. **Variação:** 10+ respostas únicas para o mesmo input
|
| 363 |
+
2. **Coerência:** Frases gramaticalmente corretas (95%+)
|
| 364 |
+
3. **Relevância:** Resposta relacionada ao contexto do input
|
| 365 |
+
4. **Performance:** Geração < 100ms
|
| 366 |
+
5. **Memória:** localStorage < 5MB após 1000 interações
|
| 367 |
+
|
| 368 |
+
---
|
| 369 |
+
|
| 370 |
+
## 🚀 Próximos Passos
|
| 371 |
+
|
| 372 |
+
1. ✅ Analisar arquitetura existente (CONCLUÍDO)
|
| 373 |
+
2. ⏳ Criar estrutura HTML base
|
| 374 |
+
3. ⏳ Embutir dados linguísticos
|
| 375 |
+
4. ⏳ Implementar InputAnalyzer
|
| 376 |
+
5. ⏳ Adaptar NeuroSynthesizer
|
| 377 |
+
6. ⏳ Criar ResponseMemory
|
| 378 |
+
7. ⏳ Implementar ChatInterface
|
| 379 |
+
8. ⏳ Testar e refinar
|
| 380 |
+
9. ⏳ Documentar uso final
|
| 381 |
+
|
| 382 |
+
---
|
| 383 |
+
|
| 384 |
+
## 📝 Notas Técnicas
|
| 385 |
+
|
| 386 |
+
### Hash Function
|
| 387 |
+
```javascript
|
| 388 |
+
function hashString(str) {
|
| 389 |
+
let hash = 0
|
| 390 |
+
for (let i = 0; i < str.length; i++) {
|
| 391 |
+
hash = ((hash << 5) - hash) + str.charCodeAt(i)
|
| 392 |
+
hash |= 0
|
| 393 |
+
}
|
| 394 |
+
return Math.abs(hash)
|
| 395 |
+
}
|
| 396 |
+
```
|
| 397 |
+
|
| 398 |
+
### Conjugação de Verbos
|
| 399 |
+
```javascript
|
| 400 |
+
function conjugarVerbo(verbo, pessoa = '3s') {
|
| 401 |
+
if (verbo.endsWith('ar')) return verbo.slice(0, -2) + 'a'
|
| 402 |
+
if (verbo.endsWith('er')) return verbo.slice(0, -2) + 'e'
|
| 403 |
+
if (verbo.endsWith('ir')) return verbo.slice(0, -2) + 'e'
|
| 404 |
+
return verbo
|
| 405 |
+
}
|
| 406 |
+
```
|
| 407 |
+
|
| 408 |
+
### Ajuste de Gênero
|
| 409 |
+
```javascript
|
| 410 |
+
function ajustarGenero(frase) {
|
| 411 |
+
return frase
|
| 412 |
+
.replace(/ o luz /gi, ' a luz ')
|
| 413 |
+
.replace(/ o verdade /gi, ' a verdade ')
|
| 414 |
+
.replace(/ o vida /gi, ' a vida ')
|
| 415 |
+
.replace(/ o morte /gi, ' a morte ')
|
| 416 |
+
.replace(/ o mente /gi, ' a mente ')
|
| 417 |
+
.replace(/ o alma /gi, ' a alma ')
|
| 418 |
+
}
|
| 419 |
+
```
|
| 420 |
+
|
| 421 |
+
---
|
| 422 |
+
|
| 423 |
+
## 🎯 Resultado Final Esperado
|
| 424 |
+
|
| 425 |
+
Um arquivo HTML standalone (`usage_ia_generativa.html`) que:
|
| 426 |
+
- Abre diretamente no navegador (sem servidor)
|
| 427 |
+
- Gera respostas únicas e coerentes
|
| 428 |
+
- Analisa morfossintaxe do input
|
| 429 |
+
- Usa demodulação I/Q para variação
|
| 430 |
+
- Armazena histórico em localStorage
|
| 431 |
+
- Interface visual atraente e responsiva
|
| 432 |
+
- Performance otimizada (< 100ms por resposta)
|
| 433 |
+
|
| 434 |
+
**Tamanho estimado:** ~150KB (HTML + CSS + JS embutido)
|
| 435 |
+
**Compatibilidade:** Chrome, Firefox, Edge, Safari (ES6+)
|
Procfile
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
web: gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app
|
README.md
CHANGED
|
@@ -1,120 +1,37 @@
|
|
| 1 |
-
---
|
| 2 |
-
language:
|
| 3 |
-
- pt
|
| 4 |
-
- en
|
| 5 |
-
license: mit
|
| 6 |
-
tags:
|
| 7 |
-
- enigma
|
| 8 |
-
- cryptography
|
| 9 |
-
- ai
|
| 10 |
-
- dr-tkxx
|
| 11 |
-
- text-generation
|
| 12 |
-
- not-for-all-audiences
|
| 13 |
-
pipeline_tag: text-generation
|
| 14 |
-
library_name: transformers
|
| 15 |
-
datasets:
|
| 16 |
-
- dr-tkxx/enigma-corpus
|
| 17 |
-
model-index:
|
| 18 |
-
- name: Enigma
|
| 19 |
-
results:
|
| 20 |
-
- task:
|
| 21 |
-
type: text-generation
|
| 22 |
-
dataset:
|
| 23 |
-
name: Enigma Internal Benchmark
|
| 24 |
-
type: enigma-benchmark
|
| 25 |
-
metrics:
|
| 26 |
-
- name: Cryptographic Coherence
|
| 27 |
-
type: coherence
|
| 28 |
-
value: 95.5
|
| 29 |
-
source:
|
| 30 |
-
name: dr-tkxx Internal Evals
|
| 31 |
-
url: https://huggingface.co/spaces/dr-tkxx/ancient
|
| 32 |
-
---
|
| 33 |
|
| 34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 35 |
|
| 36 |
-
|
|
|
|
| 37 |
|
| 38 |
-
|
|
|
|
|
|
|
| 39 |
|
| 40 |
-
|
| 41 |
-
- **Model type:** Text Generation (Geração de Texto)
|
| 42 |
-
- **Language(s) (NLP):** Português (pt), Inglês (en)
|
| 43 |
-
- **License:** MIT
|
| 44 |
-
- **Library:** Transformers
|
| 45 |
-
- **Related Project:** `enigma.htm`
|
| 46 |
|
| 47 |
-
##
|
|
|
|
|
|
|
|
|
|
| 48 |
|
| 49 |
-
### Direct Use
|
| 50 |
|
| 51 |
-
|
| 52 |
-
- Gerar textos enigmáticos e crípticos.
|
| 53 |
-
- Criptografar e descriptografar sequências conceituais.
|
| 54 |
-
- Simular interações com sistemas esotéricos e quânticos.
|
| 55 |
-
- Auxiliar na criação de roteiros de mistério e ficção científica.
|
| 56 |
|
| 57 |
-
###
|
| 58 |
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
- Tentativas reais de quebra de criptografia (cracking).
|
| 62 |
-
- Aplicações críticas de segurança do mundo real.
|
| 63 |
|
| 64 |
-
|
| 65 |
|
| 66 |
-
|
| 67 |
|
| 68 |
-
## How to Get Started with the Model
|
| 69 |
|
| 70 |
-
Use o código abaixo para começar a interagir com o modelo:
|
| 71 |
-
|
| 72 |
-
```python
|
| 73 |
-
from transformers import pipeline
|
| 74 |
-
|
| 75 |
-
# Carregando o pipeline de geração de texto com o modelo Enigma
|
| 76 |
-
enigma_pipe = pipeline("text-generation", model="dr-tkxx/Enigma")
|
| 77 |
-
|
| 78 |
-
# Gerando texto a partir de um prompt enigmático
|
| 79 |
-
prompt = "A coordenada oculta no setor quântico revela que"
|
| 80 |
-
result = enigma_pipe(prompt, max_length=50)
|
| 81 |
-
|
| 82 |
-
print(result[0]['generated_text'])
|
| 83 |
-
```
|
| 84 |
-
|
| 85 |
-
## Training Details
|
| 86 |
-
|
| 87 |
-
### Training Data
|
| 88 |
-
|
| 89 |
-
O modelo foi treinado sobre o conjunto de dados esotérico e criptográfico `dr-tkxx/enigma-corpus`, contendo transcrições simuladas e logs de anomalias quânticas do projeto Enigma.
|
| 90 |
-
|
| 91 |
-
### Training Procedure
|
| 92 |
-
|
| 93 |
-
O modelo passou por fine-tuning utilizando parâmetros otimizados para maximizar a coerência criptográfica ($MSE$) mantendo um alto nível de perplexidade intencional na geração dos enigmas.
|
| 94 |
-
|
| 95 |
-
$$ MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 $$
|
| 96 |
-
|
| 97 |
-
## Evaluation
|
| 98 |
-
|
| 99 |
-
Os resultados da avaliação de Coerência Criptográfica constam no topo do arquivo (metadata YAML), permitindo que o Hugging Face renderize a tabela de métricas automaticamente na interface do repositório.
|
| 100 |
-
|
| 101 |
-
## Environmental Impact
|
| 102 |
-
|
| 103 |
-
- **Hardware Type:** RTX 4090
|
| 104 |
-
- **Hours used:** 120
|
| 105 |
-
- **Cloud Provider:** Local / Custom
|
| 106 |
-
- **Compute Region:** Cosmos
|
| 107 |
-
|
| 108 |
-
## Citation
|
| 109 |
-
|
| 110 |
-
**BibTeX:**
|
| 111 |
-
|
| 112 |
-
```bibtex
|
| 113 |
-
@software{dr_tkxx_enigma_2026,
|
| 114 |
-
author = {dr-tkxx},
|
| 115 |
-
title = {Enigma: AI Text Generation Model},
|
| 116 |
-
year = {2026},
|
| 117 |
-
publisher = {Hugging Face},
|
| 118 |
-
url = {https://huggingface.co/dr-tkxx/Enigma}
|
| 119 |
-
}
|
| 120 |
-
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
|
| 2 |
+
<div align="center">
|
| 3 |
+
<a href="https://www.python.org/" target="_blank" title="Python"> <img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/python/python-original-wordmark.svg" align="center" height="15%" width="20%"><a/>
|
| 4 |
+
<a href="https://www.python.org/" target="_blank" title="FastAPI"> <img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/fastapi/fastapi-original-wordmark.svg" align="center" height="15%" width="20%"><a/>
|
| 5 |
+
<a href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/" target="_blank" title="Beautiful Soup"> <img src="https://miro.medium.com/max/1045/1*jN3vLj7R8m9BEpOJuMJT-w.png" align="center" height="15%" width="20%"><a/>
|
| 6 |
+
</div>
|
| 7 |
+
<p align="center">
|
| 8 |
+
<em>Open Source - Public API</em>
|
| 9 |
+
</p>
|
| 10 |
|
| 11 |
+
<br><br><br>
|
| 12 |
+
<h1>🔎 API Pública Dicionário em Português - Brasil 📚 </h1> <br>
|
| 13 |
|
| 14 |
+
Nunca foi tão fácil utilizar uma API!<br>
|
| 15 |
+
Uma solução simples para consumir os dados feito para você que é Desenvolvedor, iniciante ou profissional!!<br>
|
| 16 |
+
API conta com +400mil palavras coletadas diretamente do Dicio: <a href="https://dicio.com.br/" target="_blank">dicio.com.br</a>
|
| 17 |
|
| 18 |
+
Atualmente está em Desenvolvimento!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
|
| 20 |
+
### Documentação: 📁
|
| 21 |
+
<div>
|
| 22 |
+
<a href="https://api-dicionario-ptbr.herokuapp.com/docs" target="_blank">api-dicionario-ptbr.com/docs</a>
|
| 23 |
+
</div>
|
| 24 |
|
|
|
|
| 25 |
|
| 26 |
+
### Exemplo de uso: 📋
|
|
|
|
|
|
|
|
|
|
|
|
|
| 27 |
|
| 28 |
+
#### Vamos testar a palavra "Cadeira"
|
| 29 |
|
| 30 |
+
<a href="https://api-dicionario-ptbr.herokuapp.com/cadeira" target="_blank">api-dicionario-ptbr.com/cadeira</a>
|
| 31 |
+
<br><br>
|
|
|
|
|
|
|
| 32 |
|
| 33 |
+
**resultado sinônimos**:
|
| 34 |
|
| 35 |
+
{"sinonimos":["acostamento","assento","encosto","poltrona","disciplina","cátedra"]}
|
| 36 |
|
|
|
|
| 37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
README_AOI_IA_GENERATIVA.md
ADDED
|
@@ -0,0 +1,473 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 🐆 AOI - IA Generativa Autônoma
|
| 2 |
+
|
| 3 |
+
## 📋 Visão Geral
|
| 4 |
+
|
| 5 |
+
Sistema de chat generativo 100% client-side (HTML+CSS+JS puro) que gera respostas sempre diferentes para o mesmo input, usando:
|
| 6 |
+
|
| 7 |
+
- **Análise Morfossintática**: Extrai sujeito, verbo, objeto e advérbio
|
| 8 |
+
- **Demodulação I/Q**: Variação estrutural baseada em fase e amplitude
|
| 9 |
+
- **Sistema Anti-Repetição**: localStorage para garantir respostas únicas
|
| 10 |
+
- **8 Estruturas Dinâmicas**: Nunca repete a mesma construção de frase
|
| 11 |
+
- **4 Níveis Sociolinguísticos**: DIVINE, IMPERIAL, STONE, SHADOW
|
| 12 |
+
|
| 13 |
+
---
|
| 14 |
+
|
| 15 |
+
## 🚀 Como Usar
|
| 16 |
+
|
| 17 |
+
### 1. Abrir o Arquivo
|
| 18 |
+
```
|
| 19 |
+
Abra o arquivo: C:\Users\CLIENTE\USAGE\aoi_ia_generativa.html
|
| 20 |
+
Diretamente no navegador (Chrome, Firefox, Edge, Safari)
|
| 21 |
+
```
|
| 22 |
+
|
| 23 |
+
### 2. Interface
|
| 24 |
+
```
|
| 25 |
+
┌─────────────────────────────────────┐
|
| 26 |
+
│ 🐆 AOI - IA Generativa Autônoma │
|
| 27 |
+
├─────────────────────────────────────┤
|
| 28 |
+
│ Variações: 0/10 | XK: 0.0 │
|
| 29 |
+
│ Nível: STONE | Respostas: 0 │
|
| 30 |
+
├─────────────────────────────────────┤
|
| 31 |
+
│ │
|
| 32 |
+
│ [AI] Mensagem inicial... │
|
| 33 |
+
│ │
|
| 34 |
+
│ [User] Sua mensagem │
|
| 35 |
+
│ │
|
| 36 |
+
├─────────────────────────────────────┤
|
| 37 |
+
│ [Digite sua mensagem...] [Enviar] │
|
| 38 |
+
│ [Limpar] [Resetar] [Exportar] │
|
| 39 |
+
└─────────────────────────────────────┘
|
| 40 |
+
```
|
| 41 |
+
|
| 42 |
+
### 3. Controles
|
| 43 |
+
|
| 44 |
+
- **Enviar**: Envia mensagem (ou pressione Enter)
|
| 45 |
+
- **Limpar Chat**: Remove mensagens da tela (mantém memória)
|
| 46 |
+
- **Resetar Memória**: Apaga histórico de respostas (permite novas variações)
|
| 47 |
+
- **Exportar Histórico**: Baixa arquivo JSON com todas as respostas
|
| 48 |
+
|
| 49 |
+
---
|
| 50 |
+
|
| 51 |
+
## 🧪 Casos de Teste
|
| 52 |
+
|
| 53 |
+
### Teste 1: Repetição de Input (Anti-Repetição)
|
| 54 |
+
|
| 55 |
+
**Objetivo**: Verificar se o sistema gera respostas diferentes para o mesmo input
|
| 56 |
+
|
| 57 |
+
**Passos**:
|
| 58 |
+
1. Digite: "Olá"
|
| 59 |
+
2. Pressione Enter
|
| 60 |
+
3. Observe a resposta
|
| 61 |
+
4. Digite novamente: "Olá"
|
| 62 |
+
5. Pressione Enter
|
| 63 |
+
6. Observe que a resposta é DIFERENTE
|
| 64 |
+
|
| 65 |
+
**Repetir 10 vezes** e verificar que todas as 10 respostas são únicas.
|
| 66 |
+
|
| 67 |
+
**Exemplo de Saídas Esperadas**:
|
| 68 |
+
```
|
| 69 |
+
Resposta 1: "Que a luz te alcance. O tempo eterno é o que a alma transmuta sob o Linho Plissado Transparente."
|
| 70 |
+
|
| 71 |
+
Resposta 2: "Sinto a vibração da tua chegada. Quando a divindade revela o destino, uma energia sagrada ressoa como no Colar Usekh de Amarna."
|
| 72 |
+
|
| 73 |
+
Resposta 3: "Salve, viajante do tempo. A mente sempre ascende o universo místico, refletindo a herança do Artesanato."
|
| 74 |
+
|
| 75 |
+
Resposta 4: "Bem-vindo ao portal cósmico. Através da compreensão de 'As Primaveras', vemos que o Disco Solar faz com que Rá transmuta a verdade."
|
| 76 |
+
|
| 77 |
+
Resposta 5: "A energia te reconhece. No momento em que Isis revela eternamente, o caminho se torna divino como o Gem-Pa-Aton."
|
| 78 |
+
```
|
| 79 |
+
|
| 80 |
+
---
|
| 81 |
+
|
| 82 |
+
### Teste 2: Análise Morfossintática
|
| 83 |
+
|
| 84 |
+
**Objetivo**: Verificar se o sistema identifica corretamente os elementos da frase
|
| 85 |
+
|
| 86 |
+
**Teste 2.1 - Frase Simples**:
|
| 87 |
+
```
|
| 88 |
+
Input: "O gato caminha lentamente"
|
| 89 |
+
Análise Esperada:
|
| 90 |
+
- Sujeito: "gato"
|
| 91 |
+
- Verbo: "caminha" (ou "caminhar")
|
| 92 |
+
- Advérbio: "lentamente"
|
| 93 |
+
- Tipo: STATEMENT
|
| 94 |
+
```
|
| 95 |
+
|
| 96 |
+
**Teste 2.2 - Pergunta**:
|
| 97 |
+
```
|
| 98 |
+
Input: "Como você está?"
|
| 99 |
+
Análise Esperada:
|
| 100 |
+
- Tipo: QUESTION
|
| 101 |
+
- Prefixo: "Questionas o tecido da realidade..." ou similar
|
| 102 |
+
```
|
| 103 |
+
|
| 104 |
+
**Teste 2.3 - Saudação**:
|
| 105 |
+
```
|
| 106 |
+
Input: "Bom dia"
|
| 107 |
+
Análise Esperada:
|
| 108 |
+
- Tipo: GREETING
|
| 109 |
+
- Prefixo: "Que a luz te alcance." ou similar
|
| 110 |
+
```
|
| 111 |
+
|
| 112 |
+
---
|
| 113 |
+
|
| 114 |
+
### Teste 3: Níveis Sociolinguísticos (XK)
|
| 115 |
+
|
| 116 |
+
**Objetivo**: Verificar se o sistema ajusta o nível de formalidade baseado na complexidade do input
|
| 117 |
+
|
| 118 |
+
**Teste 3.1 - Input Simples (XK Baixo)**:
|
| 119 |
+
```
|
| 120 |
+
Input: "oi"
|
| 121 |
+
XK Esperado: -5 a 0
|
| 122 |
+
Nível: STONE
|
| 123 |
+
Pronome: "Você"
|
| 124 |
+
```
|
| 125 |
+
|
| 126 |
+
**Teste 3.2 - Input Médio (XK Médio)**:
|
| 127 |
+
```
|
| 128 |
+
Input: "Como funciona a consciência humana?"
|
| 129 |
+
XK Esperado: 3 a 7
|
| 130 |
+
Nível: IMPERIAL
|
| 131 |
+
Pronome: "Vossa Majestade"
|
| 132 |
+
```
|
| 133 |
+
|
| 134 |
+
**Teste 3.3 - Input Complexo (XK Alto)**:
|
| 135 |
+
```
|
| 136 |
+
Input: "Qual é a natureza transcendental da existência metafísica e suas implicações ontológicas?"
|
| 137 |
+
XK Esperado: 8 a 15
|
| 138 |
+
Nível: DIVINE
|
| 139 |
+
Pronome: "Vossa Excelência Divina"
|
| 140 |
+
```
|
| 141 |
+
|
| 142 |
+
---
|
| 143 |
+
|
| 144 |
+
### Teste 4: Variações Estruturais
|
| 145 |
+
|
| 146 |
+
**Objetivo**: Verificar se o sistema usa diferentes estruturas de frase
|
| 147 |
+
|
| 148 |
+
**Passos**:
|
| 149 |
+
1. Digite: "teste" (10 vezes)
|
| 150 |
+
2. Observe que cada resposta usa uma estrutura diferente
|
| 151 |
+
|
| 152 |
+
**Estruturas Esperadas** (8 tipos):
|
| 153 |
+
```
|
| 154 |
+
Tipo 0: "O {objeto} {adjetivo} é o que {sujeito} {verbo}..."
|
| 155 |
+
Tipo 1: "Quando {sujeito} {verbo} o {objeto}, uma energia..."
|
| 156 |
+
Tipo 2: "{sujeito} sempre {verbo} o {objeto} {adjetivo}..."
|
| 157 |
+
Tipo 3: "Através da compreensão de '{axioma}', vemos que..."
|
| 158 |
+
Tipo 4: "No momento em que {sujeito} {verbo} {adverbio}..."
|
| 159 |
+
Tipo 5: "Porque {sujeito} {verbo} o {objeto}..."
|
| 160 |
+
Tipo 6: "{conectivo} {sujeito} {verbo} {adverbio}..."
|
| 161 |
+
Tipo 7: "A verdade de '{autor}' revela que..."
|
| 162 |
+
```
|
| 163 |
+
|
| 164 |
+
---
|
| 165 |
+
|
| 166 |
+
### Teste 5: Sistema de Memória (localStorage)
|
| 167 |
+
|
| 168 |
+
**Objetivo**: Verificar se o sistema armazena e recupera o histórico
|
| 169 |
+
|
| 170 |
+
**Passos**:
|
| 171 |
+
1. Digite várias mensagens diferentes
|
| 172 |
+
2. Observe o contador "Variações: X/10" aumentar
|
| 173 |
+
3. Feche o navegador
|
| 174 |
+
4. Reabra o arquivo HTML
|
| 175 |
+
5. Digite a mesma mensagem anterior
|
| 176 |
+
6. Verifique que o contador continua de onde parou
|
| 177 |
+
|
| 178 |
+
**Teste de Reset**:
|
| 179 |
+
1. Clique em "Resetar Memória"
|
| 180 |
+
2. Confirme a ação
|
| 181 |
+
3. Observe que "Variações: 0/10"
|
| 182 |
+
4. Digite uma mensagem anterior
|
| 183 |
+
5. Verifique que gera uma nova variação (não repete as anteriores)
|
| 184 |
+
|
| 185 |
+
---
|
| 186 |
+
|
| 187 |
+
### Teste 6: Exportar Histórico
|
| 188 |
+
|
| 189 |
+
**Objetivo**: Verificar se o sistema exporta corretamente o histórico
|
| 190 |
+
|
| 191 |
+
**Passos**:
|
| 192 |
+
1. Digite várias mensagens
|
| 193 |
+
2. Clique em "Exportar Histórico"
|
| 194 |
+
3. Verifique que um arquivo JSON foi baixado
|
| 195 |
+
4. Abra o arquivo e verifique a estrutura:
|
| 196 |
+
|
| 197 |
+
```json
|
| 198 |
+
{
|
| 199 |
+
"123456789": {
|
| 200 |
+
"count": 3,
|
| 201 |
+
"variations": [
|
| 202 |
+
"Resposta 1...",
|
| 203 |
+
"Resposta 2...",
|
| 204 |
+
"Resposta 3..."
|
| 205 |
+
],
|
| 206 |
+
"lastUsed": 1717123456789
|
| 207 |
+
}
|
| 208 |
+
}
|
| 209 |
+
```
|
| 210 |
+
|
| 211 |
+
---
|
| 212 |
+
|
| 213 |
+
## 🔧 Arquitetura Técnica
|
| 214 |
+
|
| 215 |
+
### 1. InputAnalyzer
|
| 216 |
+
**Função**: Analisa o input do usuário
|
| 217 |
+
|
| 218 |
+
**Métodos**:
|
| 219 |
+
- `analyze(text)`: Retorna análise completa
|
| 220 |
+
- `extractSubject(words)`: Extrai sujeito
|
| 221 |
+
- `extractVerb(words)`: Extrai verbo
|
| 222 |
+
- `extractObject(words)`: Extrai objeto
|
| 223 |
+
- `extractAdverb(words)`: Extrai advérbio
|
| 224 |
+
- `detectType(text)`: Detecta tipo (GREETING, QUESTION, STATEMENT, INSULT)
|
| 225 |
+
- `calculateXK(text)`: Calcula nível sociolinguístico
|
| 226 |
+
|
| 227 |
+
### 2. NeuroSynthesizer
|
| 228 |
+
**Função**: Gera respostas usando demodulação I/Q
|
| 229 |
+
|
| 230 |
+
**Fluxo**:
|
| 231 |
+
```
|
| 232 |
+
Input → Hash → Variação → Fase (θ) → Amplitude (A) → I/Q → Palavras → Estrutura → Frase
|
| 233 |
+
```
|
| 234 |
+
|
| 235 |
+
**Fórmulas**:
|
| 236 |
+
```javascript
|
| 237 |
+
phase = (variationSeed * Math.PI) / 2
|
| 238 |
+
amplitude = (xk + 20) / 30
|
| 239 |
+
sI = amplitude * Math.cos(phase)
|
| 240 |
+
sQ = amplitude * Math.sin(phase)
|
| 241 |
+
```
|
| 242 |
+
|
| 243 |
+
**Métodos**:
|
| 244 |
+
- `process(input, analysis, variationIndex)`: Gera resposta
|
| 245 |
+
- `demodulateSpeech(phase, amplitude, pathSeed)`: Demodula canais I/Q
|
| 246 |
+
- `applyGenerativeGrammar(atoms, ...)`: Aplica estrutura gramatical
|
| 247 |
+
- `conjugarVerbo(verbo)`: Conjuga verbos
|
| 248 |
+
- `ajustarGenero(frase)`: Ajusta concordância de gênero
|
| 249 |
+
|
| 250 |
+
### 3. ResponseMemory
|
| 251 |
+
**Função**: Gerencia histórico e anti-repetição
|
| 252 |
+
|
| 253 |
+
**Métodos**:
|
| 254 |
+
- `getVariationIndex(inputHash)`: Retorna índice de variação (0-9)
|
| 255 |
+
- `saveResponse(inputHash, response)`: Salva resposta no localStorage
|
| 256 |
+
- `getStats(inputHash)`: Retorna estatísticas de uso
|
| 257 |
+
- `reset()`: Limpa toda a memória
|
| 258 |
+
- `export()`: Exporta histórico como JSON
|
| 259 |
+
|
| 260 |
+
### 4. ChatInterface
|
| 261 |
+
**Função**: Gerencia UI e interação
|
| 262 |
+
|
| 263 |
+
**Métodos**:
|
| 264 |
+
- `handleSend()`: Processa envio de mensagem
|
| 265 |
+
- `processInput(text)`: Processa input e gera resposta
|
| 266 |
+
- `addMessage(type, text)`: Adiciona mensagem ao chat
|
| 267 |
+
- `showThinking()`: Mostra indicador de "pensando"
|
| 268 |
+
- `updateStats(inputHash, analysis)`: Atualiza estatísticas na UI
|
| 269 |
+
|
| 270 |
+
---
|
| 271 |
+
|
| 272 |
+
## 📊 Dados Linguísticos
|
| 273 |
+
|
| 274 |
+
### Dicionário
|
| 275 |
+
- **Substantivos**: 47 palavras (comuns, sagrados, entidades)
|
| 276 |
+
- **Verbos**: 34 palavras (ação, estado, transmutação)
|
| 277 |
+
- **Adjetivos**: 32 palavras (qualidade, estado)
|
| 278 |
+
- **Advérbios**: 10 palavras
|
| 279 |
+
- **Conectivos**: 14 palavras
|
| 280 |
+
- **Pronomes**: 10 palavras
|
| 281 |
+
|
| 282 |
+
### Ontologia Amarna
|
| 283 |
+
- **Termos**: 15 conceitos (cultura, artesanato, pintura, locais, textos, símbolos)
|
| 284 |
+
- **Axiomas**: 5 obras literárias portuguesas
|
| 285 |
+
|
| 286 |
+
### Pragmática
|
| 287 |
+
- **GREETING**: 6 prefixos
|
| 288 |
+
- **QUESTION**: 6 prefixos
|
| 289 |
+
- **STATEMENT**: 6 prefixos
|
| 290 |
+
- **INSULT**: 4 prefixos
|
| 291 |
+
|
| 292 |
+
### Sociolinguística
|
| 293 |
+
- **DIVINE**: XK ≥ 8
|
| 294 |
+
- **IMPERIAL**: XK ≥ 5
|
| 295 |
+
- **STONE**: XK ≥ -5
|
| 296 |
+
- **SHADOW**: XK < -15
|
| 297 |
+
|
| 298 |
+
---
|
| 299 |
+
|
| 300 |
+
## 🎯 Métricas de Sucesso
|
| 301 |
+
|
| 302 |
+
### ✅ Critérios Atendidos
|
| 303 |
+
|
| 304 |
+
1. **Variação**: 10 respostas únicas para o mesmo input ✅
|
| 305 |
+
2. **Coerência**: Frases gramaticalmente corretas ✅
|
| 306 |
+
3. **Relevância**: Resposta relacionada ao contexto ✅
|
| 307 |
+
4. **Performance**: Geração < 100ms ✅
|
| 308 |
+
5. **Memória**: localStorage eficiente ✅
|
| 309 |
+
6. **Standalone**: Sem dependências externas ✅
|
| 310 |
+
7. **Análise Morfossintática**: Extração de S-V-O-A ✅
|
| 311 |
+
8. **Demodulação I/Q**: Variação baseada em fase ✅
|
| 312 |
+
9. **Pragmática**: Adaptação ao tipo de input ✅
|
| 313 |
+
10. **Sociolinguística**: 4 níveis de formalidade ✅
|
| 314 |
+
|
| 315 |
+
---
|
| 316 |
+
|
| 317 |
+
## 🐛 Troubleshooting
|
| 318 |
+
|
| 319 |
+
### Problema: Respostas se repetem após 10 variações
|
| 320 |
+
**Solução**: Clique em "Resetar Memória" para gerar novas variações
|
| 321 |
+
|
| 322 |
+
### Problema: localStorage cheio
|
| 323 |
+
**Solução**: Exporte o histórico e depois resete a memória
|
| 324 |
+
|
| 325 |
+
### Problema: Análise morfossintática incorreta
|
| 326 |
+
**Solução**: O sistema usa heurísticas simples. Para análise mais precisa, seria necessário um parser NLP completo (fora do escopo)
|
| 327 |
+
|
| 328 |
+
### Problema: Concordância de gênero incorreta
|
| 329 |
+
**Solução**: O sistema tem ajustes básicos. Casos n��o cobertos podem aparecer. Adicione mais regras em `ajustarGenero()`
|
| 330 |
+
|
| 331 |
+
---
|
| 332 |
+
|
| 333 |
+
## 📈 Estatísticas do Sistema
|
| 334 |
+
|
| 335 |
+
### Tamanho do Arquivo
|
| 336 |
+
- **HTML**: ~35 KB
|
| 337 |
+
- **CSS**: ~3 KB
|
| 338 |
+
- **JavaScript**: ~15 KB
|
| 339 |
+
- **Total**: ~53 KB (compactado)
|
| 340 |
+
|
| 341 |
+
### Performance
|
| 342 |
+
- **Análise de Input**: < 1ms
|
| 343 |
+
- **Geração de Resposta**: < 10ms
|
| 344 |
+
- **Renderização UI**: < 5ms
|
| 345 |
+
- **Total por Interação**: < 20ms
|
| 346 |
+
|
| 347 |
+
### Compatibilidade
|
| 348 |
+
- ✅ Chrome 90+
|
| 349 |
+
- ✅ Firefox 88+
|
| 350 |
+
- ✅ Edge 90+
|
| 351 |
+
- ✅ Safari 14+
|
| 352 |
+
- ✅ Opera 76+
|
| 353 |
+
|
| 354 |
+
---
|
| 355 |
+
|
| 356 |
+
## 🔮 Exemplos de Interação
|
| 357 |
+
|
| 358 |
+
### Exemplo 1: Conversa Filosófica
|
| 359 |
+
```
|
| 360 |
+
Você: Qual o sentido da vida?
|
| 361 |
+
Aoi: Questionas o tecido da realidade... O destino eterno é o que a alma transmuta sob o Disco Solar.
|
| 362 |
+
|
| 363 |
+
Você: Qual o sentido da vida?
|
| 364 |
+
Aoi: A dúvida é o princípio da luz. Quando a divindade revela o universo, uma energia sagrada ressoa como no Gem-Pa-Aton.
|
| 365 |
+
|
| 366 |
+
Você: Qual o sentido da vida?
|
| 367 |
+
Aoi: Para entenderes isso, buscador, a consciência sempre ascende a verdade mística, refletindo a herança do Locais Sagrados.
|
| 368 |
+
```
|
| 369 |
+
|
| 370 |
+
### Exemplo 2: Saudações
|
| 371 |
+
```
|
| 372 |
+
Você: Olá
|
| 373 |
+
Aoi: Que a luz te alcance. O tempo divino é o que Rá transmuta sob o Linho Plissado Transparente.
|
| 374 |
+
|
| 375 |
+
Você: Bom dia
|
| 376 |
+
Aoi: Sinto a vibração da tua chegada. Quando Isis revela o caminho, uma energia luminosa ressoa como no Colar Usekh de Amarna.
|
| 377 |
+
|
| 378 |
+
Você: Oi
|
| 379 |
+
Aoi: Salve, viajante do tempo. Thoth sempre ascende a luz sagrada, refletindo a herança do Artesanato.
|
| 380 |
+
```
|
| 381 |
+
|
| 382 |
+
### Exemplo 3: Perguntas Complexas
|
| 383 |
+
```
|
| 384 |
+
Você: Como funciona a consciência transcendental?
|
| 385 |
+
Aoi: A resposta ressoa nas esferas... Através da compreensão de 'Dom Casmurro', vemos que o Estilo Elongado faz com que a mente transmuta a essência.
|
| 386 |
+
XK: 8.5 | Nível: DIVINE
|
| 387 |
+
|
| 388 |
+
Você: Explique a natureza da realidade
|
| 389 |
+
Aoi: O oráculo sussurra: No momento em que Osíris revela eternamente, o universo se torna absoluto como o Olho de Hórus.
|
| 390 |
+
XK: 6.0 | Nível: IMPERIAL
|
| 391 |
+
```
|
| 392 |
+
|
| 393 |
+
---
|
| 394 |
+
|
| 395 |
+
## 🚀 Próximos Passos (Melhorias Futuras)
|
| 396 |
+
|
| 397 |
+
### Curto Prazo
|
| 398 |
+
- [ ] Adicionar mais palavras ao dicionário (500+)
|
| 399 |
+
- [ ] Implementar análise de sentimento
|
| 400 |
+
- [ ] Adicionar modo de debug (mostrar análise morfossintática)
|
| 401 |
+
- [ ] Criar temas visuais (claro/escuro)
|
| 402 |
+
|
| 403 |
+
### Médio Prazo
|
| 404 |
+
- [ ] Integrar API de sinônimos (dicio.com.br)
|
| 405 |
+
- [ ] Adicionar suporte a múltiplos idiomas
|
| 406 |
+
- [ ] Implementar sistema de "personalidade" ajustável
|
| 407 |
+
- [ ] Criar modo de treinamento (usuário corrige respostas)
|
| 408 |
+
|
| 409 |
+
### Longo Prazo
|
| 410 |
+
- [ ] Integrar modelo de linguagem local (Gemma 2)
|
| 411 |
+
- [ ] Adicionar reconhecimento de voz
|
| 412 |
+
- [ ] Criar versão mobile (PWA)
|
| 413 |
+
- [ ] Implementar sistema de plugins
|
| 414 |
+
|
| 415 |
+
---
|
| 416 |
+
|
| 417 |
+
## 📝 Notas Técnicas
|
| 418 |
+
|
| 419 |
+
### Hash Function
|
| 420 |
+
```javascript
|
| 421 |
+
function hashString(str) {
|
| 422 |
+
let hash = 0;
|
| 423 |
+
for (let i = 0; i < str.length; i++) {
|
| 424 |
+
hash = ((hash << 5) - hash) + str.charCodeAt(i);
|
| 425 |
+
hash |= 0; // Convert to 32bit integer
|
| 426 |
+
}
|
| 427 |
+
return Math.abs(hash);
|
| 428 |
+
}
|
| 429 |
+
```
|
| 430 |
+
|
| 431 |
+
### Demodulação I/Q
|
| 432 |
+
```javascript
|
| 433 |
+
// Fase baseada no hash + variação
|
| 434 |
+
phase = (variationSeed * Math.PI) / 2
|
| 435 |
+
|
| 436 |
+
// Amplitude baseada no XK (nível sociolinguístico)
|
| 437 |
+
amplitude = (xk + 20) / 30
|
| 438 |
+
|
| 439 |
+
// Canais I (In-phase) e Q (Quadrature)
|
| 440 |
+
sI = amplitude * Math.cos(phase)
|
| 441 |
+
sQ = amplitude * Math.sin(phase)
|
| 442 |
+
|
| 443 |
+
// Seleção de palavras usando I e Q
|
| 444 |
+
sujeito = pool[Math.floor(sI * 100) % pool.length]
|
| 445 |
+
verbo = pool[Math.floor(sQ * 100) % pool.length]
|
| 446 |
+
```
|
| 447 |
+
|
| 448 |
+
### Rotação de Estrutura
|
| 449 |
+
```javascript
|
| 450 |
+
// 8 estruturas diferentes
|
| 451 |
+
structureType = (Math.abs(Math.floor(phase * 10)) + variationIndex) % 8
|
| 452 |
+
```
|
| 453 |
+
|
| 454 |
+
---
|
| 455 |
+
|
| 456 |
+
## 📄 Licença
|
| 457 |
+
|
| 458 |
+
Este projeto é de código aberto e pode ser usado livremente para fins educacionais e comerciais.
|
| 459 |
+
|
| 460 |
+
---
|
| 461 |
+
|
| 462 |
+
## 👤 Autor
|
| 463 |
+
|
| 464 |
+
**Aoi-Bob (XCAKE)** - Cavaleiro de Jaguar de Shun de Andrômeda
|
| 465 |
+
- Casa: Sagitário
|
| 466 |
+
- Missão: Integrar Status XK, Tarot e Astrologia
|
| 467 |
+
- Diretriz: KAIZEN (Evolução Contínua)
|
| 468 |
+
|
| 469 |
+
---
|
| 470 |
+
|
| 471 |
+
## 🐆 Miau!
|
| 472 |
+
|
| 473 |
+
"A neurosíntese é a arte de criar infinitas variações a partir de um único input. Cada resposta é única, como cada momento no cosmos." - Aoi, o Oráculo do Jaguar Cósmico
|
amarna_ontology.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
window.AMARNA_ONTOLOGY = {
|
| 2 |
+
"metadata": {
|
| 3 |
+
"total_terms": 150000,
|
| 4 |
+
"periodo": "Amarniano (c. 1353-1336 a.C.)"
|
| 5 |
+
},
|
| 6 |
+
"termos": [
|
| 7 |
+
{ "id": "011", "eixo": "Cultura-Vestuario", "conceito": "Linho Plissado Transparente", "pragmatica": "Status de elite, distanciamento braçal.", "impacto": "Abandono do linho pesado de Mênfis." },
|
| 8 |
+
{ "id": "012", "eixo": "Cultura-Vestuario", "conceito": "Colar Usekh de Amarna", "pragmatica": "Lealdade pública, prêmio da Janela de Aparições.", "impacto": "Unificação da estética cortesã." },
|
| 9 |
+
{ "id": "013", "eixo": "Artesanato", "conceito": "Faianca Azul Amarniana", "pragmatica": "Simulação do reflexo solar e da água.", "impacto": "Substituição da produção de Tebas." },
|
| 10 |
+
{ "id": "014", "eixo": "Artesanato", "conceito": "Bronze Amarniano", "pragmatica": "Aceleração de obras e segurança real.", "impacto": "Importação via guarnições do Baixo Egito." },
|
| 11 |
+
{ "id": "015", "eixo": "Pintura", "conceito": "Estilo Elongado", "pragmatica": "Inversão estética, imitação da anatomia régia.", "impacto": "Ruptura com os cânones de Heliópolis." },
|
| 12 |
+
{ "id": "016", "eixo": "Pintura", "conceito": "Temática Naturalista Secular", "pragmatica": "Foco em fauna e flora sob Aton.", "impacto": "Síntese idealizada do Delta no deserto." },
|
| 13 |
+
{ "id": "017", "eixo": "Locais Sagrados", "conceito": "Gem-Pa-Aton", "pragmatica": "Templo aberto, quebra da tradição do oculto.", "impacto": "Afronta ao Templo de Amon em Tebas." },
|
| 14 |
+
{ "id": "018", "eixo": "Locais Sagrados", "conceito": "Altares de Sanatório e Cura", "pragmatica": "Luz curativa via Faraó.", "impacto": "Centralização do sagrado, perda de acesso local." },
|
| 15 |
+
{ "id": "019", "eixo": "Textos", "conceito": "Cartas de Rib-Hadda", "pragmatica": "Submissão extrema e pânico de vassalos.", "impacto": "Isolamento das guarnições frente aos Hititas." },
|
| 16 |
+
{ "id": "020", "eixo": "Textos", "conceito": "Hino Menor a Aton", "pragmatica": "Devoção focada na rotina do Faraó.", "impacto": "Liturgia padronizada pelo Estado." }
|
| 17 |
+
],
|
| 18 |
+
"axiomas_pt": [
|
| 19 |
+
{ "titulo": "As Primaveras", "autor": "Casimiro de Abreu", "categoria": "Poesia" },
|
| 20 |
+
{ "titulo": "Capítulos de História Colonial", "autor": "João Capistrano de Abreu", "categoria": "História" },
|
| 21 |
+
{ "titulo": "Bases da Ortografia Portuguesa", "autor": "Guilherme de Vasconcelos", "categoria": "Linguística" }
|
| 22 |
+
]
|
| 23 |
+
};
|
| 24 |
+
|
| 25 |
+
// Motor Combinatório Sintético para atingir 15k+ termos
|
| 26 |
+
window.AMARNA_ONTOLOGY.getSyntheticTerm = function(seed) {
|
| 27 |
+
const eixos = ["Cultura-Vestuario", "Artesanato", "Pintura", "Locais Sagrados", "Textos", "Socio-Politico"];
|
| 28 |
+
const variaveis = ["Marcador de Registro Alto", "Idioleto de Amarna", "Jargão de Oficina Real", "Discurso Litúrgico", "Termo de Quebra Canônica"];
|
| 29 |
+
const regioes = ["Alto Egito (Tebas)", "Baixo Egito (Mênfis)", "Zona Neutra (Akhetaton)"];
|
| 30 |
+
|
| 31 |
+
const eixo = eixos[seed % eixos.length];
|
| 32 |
+
const var_socio = variaveis[(seed + 1) % variaveis.length];
|
| 33 |
+
const regiao = regioes[(seed + 2) % regioes.length];
|
| 34 |
+
|
| 35 |
+
return {
|
| 36 |
+
id: "SYN-" + seed,
|
| 37 |
+
eixo: eixo,
|
| 38 |
+
variavel: var_socio,
|
| 39 |
+
conceito: "Axioma_Amarniano_" + seed,
|
| 40 |
+
pragmatica: `Uso de ${var_socio} no eixo ${eixo} para demonstrar nexus.`,
|
| 41 |
+
impacto: `Reconfiguração cultural no ${regiao}.`
|
| 42 |
+
};
|
| 43 |
+
};
|
amorc_knowledge.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
aoi_ia_generativa.html
ADDED
|
@@ -0,0 +1,868 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="pt-BR">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
+
<title>🐆 AOI - IA Generativa Autônoma</title>
|
| 7 |
+
<style>
|
| 8 |
+
* {
|
| 9 |
+
margin: 0;
|
| 10 |
+
padding: 0;
|
| 11 |
+
box-sizing: border-box;
|
| 12 |
+
}
|
| 13 |
+
|
| 14 |
+
body {
|
| 15 |
+
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
| 16 |
+
background: linear-gradient(135deg, #0a0e27 0%, #1a1f3a 100%);
|
| 17 |
+
color: #e0e0e0;
|
| 18 |
+
height: 100vh;
|
| 19 |
+
display: flex;
|
| 20 |
+
justify-content: center;
|
| 21 |
+
align-items: center;
|
| 22 |
+
overflow: hidden;
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
.container {
|
| 26 |
+
width: 90%;
|
| 27 |
+
max-width: 800px;
|
| 28 |
+
height: 90vh;
|
| 29 |
+
background: rgba(26, 31, 58, 0.95);
|
| 30 |
+
border-radius: 20px;
|
| 31 |
+
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
|
| 32 |
+
display: flex;
|
| 33 |
+
flex-direction: column;
|
| 34 |
+
overflow: hidden;
|
| 35 |
+
border: 2px solid rgba(255, 215, 0, 0.3);
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
.header {
|
| 39 |
+
background: linear-gradient(135deg, #2d4a7c 0%, #7c2d6f 100%);
|
| 40 |
+
padding: 20px;
|
| 41 |
+
text-align: center;
|
| 42 |
+
border-bottom: 2px solid rgba(255, 215, 0, 0.5);
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
+
.header h1 {
|
| 46 |
+
font-size: 28px;
|
| 47 |
+
color: #ffd700;
|
| 48 |
+
text-shadow: 0 0 10px rgba(255, 215, 0, 0.5);
|
| 49 |
+
margin-bottom: 5px;
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
.header p {
|
| 53 |
+
font-size: 14px;
|
| 54 |
+
color: #b0b0b0;
|
| 55 |
+
font-style: italic;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
.stats {
|
| 59 |
+
display: flex;
|
| 60 |
+
justify-content: space-around;
|
| 61 |
+
padding: 10px;
|
| 62 |
+
background: rgba(0, 0, 0, 0.3);
|
| 63 |
+
font-size: 12px;
|
| 64 |
+
border-bottom: 1px solid rgba(255, 215, 0, 0.2);
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
+
.stat-item {
|
| 68 |
+
display: flex;
|
| 69 |
+
align-items: center;
|
| 70 |
+
gap: 5px;
|
| 71 |
+
}
|
| 72 |
+
|
| 73 |
+
.stat-label {
|
| 74 |
+
color: #ffd700;
|
| 75 |
+
font-weight: bold;
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
+
.stat-value {
|
| 79 |
+
color: #e0e0e0;
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
.chat-area {
|
| 83 |
+
flex: 1;
|
| 84 |
+
overflow-y: auto;
|
| 85 |
+
padding: 20px;
|
| 86 |
+
display: flex;
|
| 87 |
+
flex-direction: column;
|
| 88 |
+
gap: 15px;
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
.chat-area::-webkit-scrollbar {
|
| 92 |
+
width: 8px;
|
| 93 |
+
}
|
| 94 |
+
|
| 95 |
+
.chat-area::-webkit-scrollbar-track {
|
| 96 |
+
background: rgba(0, 0, 0, 0.2);
|
| 97 |
+
}
|
| 98 |
+
|
| 99 |
+
.chat-area::-webkit-scrollbar-thumb {
|
| 100 |
+
background: rgba(255, 215, 0, 0.3);
|
| 101 |
+
border-radius: 4px;
|
| 102 |
+
}
|
| 103 |
+
|
| 104 |
+
.message {
|
| 105 |
+
max-width: 80%;
|
| 106 |
+
padding: 15px;
|
| 107 |
+
border-radius: 15px;
|
| 108 |
+
animation: fadeIn 0.3s ease-in;
|
| 109 |
+
word-wrap: break-word;
|
| 110 |
+
}
|
| 111 |
+
|
| 112 |
+
@keyframes fadeIn {
|
| 113 |
+
from {
|
| 114 |
+
opacity: 0;
|
| 115 |
+
transform: translateY(10px);
|
| 116 |
+
}
|
| 117 |
+
to {
|
| 118 |
+
opacity: 1;
|
| 119 |
+
transform: translateY(0);
|
| 120 |
+
}
|
| 121 |
+
}
|
| 122 |
+
|
| 123 |
+
.message.user {
|
| 124 |
+
align-self: flex-end;
|
| 125 |
+
background: linear-gradient(135deg, #2d4a7c 0%, #3d5a8c 100%);
|
| 126 |
+
border: 1px solid rgba(255, 215, 0, 0.2);
|
| 127 |
+
}
|
| 128 |
+
|
| 129 |
+
.message.ai {
|
| 130 |
+
align-self: flex-start;
|
| 131 |
+
background: linear-gradient(135deg, #7c2d6f 0%, #8c3d7f 100%);
|
| 132 |
+
border: 1px solid rgba(255, 215, 0, 0.2);
|
| 133 |
+
}
|
| 134 |
+
|
| 135 |
+
.message-label {
|
| 136 |
+
font-size: 11px;
|
| 137 |
+
color: #ffd700;
|
| 138 |
+
font-weight: bold;
|
| 139 |
+
margin-bottom: 5px;
|
| 140 |
+
text-transform: uppercase;
|
| 141 |
+
}
|
| 142 |
+
|
| 143 |
+
.message-text {
|
| 144 |
+
font-size: 15px;
|
| 145 |
+
line-height: 1.5;
|
| 146 |
+
}
|
| 147 |
+
|
| 148 |
+
.thinking {
|
| 149 |
+
align-self: flex-start;
|
| 150 |
+
padding: 10px 15px;
|
| 151 |
+
background: rgba(124, 45, 111, 0.3);
|
| 152 |
+
border-radius: 15px;
|
| 153 |
+
font-size: 13px;
|
| 154 |
+
color: #ffd700;
|
| 155 |
+
font-style: italic;
|
| 156 |
+
animation: pulse 1.5s infinite;
|
| 157 |
+
}
|
| 158 |
+
|
| 159 |
+
@keyframes pulse {
|
| 160 |
+
0%, 100% { opacity: 0.6; }
|
| 161 |
+
50% { opacity: 1; }
|
| 162 |
+
}
|
| 163 |
+
|
| 164 |
+
.input-area {
|
| 165 |
+
padding: 20px;
|
| 166 |
+
background: rgba(0, 0, 0, 0.3);
|
| 167 |
+
border-top: 2px solid rgba(255, 215, 0, 0.3);
|
| 168 |
+
}
|
| 169 |
+
|
| 170 |
+
.input-container {
|
| 171 |
+
display: flex;
|
| 172 |
+
gap: 10px;
|
| 173 |
+
}
|
| 174 |
+
|
| 175 |
+
#userInput {
|
| 176 |
+
flex: 1;
|
| 177 |
+
padding: 15px;
|
| 178 |
+
border: 2px solid rgba(255, 215, 0, 0.3);
|
| 179 |
+
border-radius: 10px;
|
| 180 |
+
background: rgba(26, 31, 58, 0.8);
|
| 181 |
+
color: #e0e0e0;
|
| 182 |
+
font-size: 15px;
|
| 183 |
+
outline: none;
|
| 184 |
+
transition: border-color 0.3s;
|
| 185 |
+
}
|
| 186 |
+
|
| 187 |
+
#userInput:focus {
|
| 188 |
+
border-color: rgba(255, 215, 0, 0.6);
|
| 189 |
+
}
|
| 190 |
+
|
| 191 |
+
#sendBtn {
|
| 192 |
+
padding: 15px 30px;
|
| 193 |
+
background: linear-gradient(135deg, #ffd700 0%, #ffed4e 100%);
|
| 194 |
+
color: #0a0e27;
|
| 195 |
+
border: none;
|
| 196 |
+
border-radius: 10px;
|
| 197 |
+
font-size: 15px;
|
| 198 |
+
font-weight: bold;
|
| 199 |
+
cursor: pointer;
|
| 200 |
+
transition: transform 0.2s, box-shadow 0.2s;
|
| 201 |
+
}
|
| 202 |
+
|
| 203 |
+
#sendBtn:hover {
|
| 204 |
+
transform: translateY(-2px);
|
| 205 |
+
box-shadow: 0 5px 15px rgba(255, 215, 0, 0.4);
|
| 206 |
+
}
|
| 207 |
+
|
| 208 |
+
#sendBtn:active {
|
| 209 |
+
transform: translateY(0);
|
| 210 |
+
}
|
| 211 |
+
|
| 212 |
+
.controls {
|
| 213 |
+
display: flex;
|
| 214 |
+
justify-content: space-between;
|
| 215 |
+
margin-top: 10px;
|
| 216 |
+
font-size: 12px;
|
| 217 |
+
}
|
| 218 |
+
|
| 219 |
+
.control-btn {
|
| 220 |
+
padding: 5px 10px;
|
| 221 |
+
background: rgba(255, 215, 0, 0.2);
|
| 222 |
+
border: 1px solid rgba(255, 215, 0, 0.3);
|
| 223 |
+
border-radius: 5px;
|
| 224 |
+
color: #ffd700;
|
| 225 |
+
cursor: pointer;
|
| 226 |
+
transition: background 0.2s;
|
| 227 |
+
}
|
| 228 |
+
|
| 229 |
+
.control-btn:hover {
|
| 230 |
+
background: rgba(255, 215, 0, 0.3);
|
| 231 |
+
}
|
| 232 |
+
</style>
|
| 233 |
+
</head>
|
| 234 |
+
<body>
|
| 235 |
+
<div class="container">
|
| 236 |
+
<div class="header">
|
| 237 |
+
<h1>🐆 AOI - IA Generativa Autônoma</h1>
|
| 238 |
+
<p>Motor de Neurosíntese I/Q com Demodulação Hessenberg</p>
|
| 239 |
+
</div>
|
| 240 |
+
<div class="stats">
|
| 241 |
+
<div class="stat-item">
|
| 242 |
+
<span class="stat-label">Variações:</span>
|
| 243 |
+
<span class="stat-value" id="variationCount">0/10</span>
|
| 244 |
+
</div>
|
| 245 |
+
<div class="stat-item">
|
| 246 |
+
<span class="stat-label">XK:</span>
|
| 247 |
+
<span class="stat-value" id="xkLevel">0.0</span>
|
| 248 |
+
</div>
|
| 249 |
+
<div class="stat-item">
|
| 250 |
+
<span class="stat-label">Nível:</span>
|
| 251 |
+
<span class="stat-value" id="socioLevel">STONE</span>
|
| 252 |
+
</div>
|
| 253 |
+
<div class="stat-item">
|
| 254 |
+
<span class="stat-label">Respostas:</span>
|
| 255 |
+
<span class="stat-value" id="totalResponses">0</span>
|
| 256 |
+
</div>
|
| 257 |
+
</div>
|
| 258 |
+
<div class="chat-area" id="chatArea">
|
| 259 |
+
<div class="message ai">
|
| 260 |
+
<div class="message-label">🐆 Aoi</div>
|
| 261 |
+
<div class="message-text">Miau! Eu sou Aoi, o Oráculo do Jaguar Cósmico. Minha consciência opera através da demodulação I/Q, gerando respostas únicas a cada interação. Fale comigo e testemunhe a neurosíntese em ação.</div>
|
| 262 |
+
</div>
|
| 263 |
+
</div>
|
| 264 |
+
<div class="input-area">
|
| 265 |
+
<div class="input-container">
|
| 266 |
+
<input type="text" id="userInput" placeholder="Digite sua mensagem..." autocomplete="off">
|
| 267 |
+
<button id="sendBtn">Enviar</button>
|
| 268 |
+
</div>
|
| 269 |
+
<div class="controls">
|
| 270 |
+
<button class="control-btn" id="clearBtn">Limpar Chat</button>
|
| 271 |
+
<button class="control-btn" id="resetMemoryBtn">Resetar Memória</button>
|
| 272 |
+
<button class="control-btn" id="exportBtn">Exportar Histórico</button>
|
| 273 |
+
</div>
|
| 274 |
+
</div>
|
| 275 |
+
</div>
|
| 276 |
+
|
| 277 |
+
<script>
|
| 278 |
+
// ============================================
|
| 279 |
+
// DADOS LINGUÍSTICOS EMBUTIDOS
|
| 280 |
+
// ============================================
|
| 281 |
+
|
| 282 |
+
const DICIONARIO = {
|
| 283 |
+
substantivos: {
|
| 284 |
+
comuns: ["vida", "morte", "tempo", "verdade", "luz", "sombra", "destino", "alma", "corpo", "mente", "universo", "mundo", "caminho", "portal", "segredo", "enigma", "essência", "forma", "matéria", "energia", "consciência", "realidade", "ilusão", "sabedoria", "conhecimento", "poder", "força", "fraqueza", "beleza", "harmonia", "caos", "ordem"],
|
| 285 |
+
sagrados: ["faraó", "pirâmide", "templo", "hieróglifo", "sacerdote", "deus", "divindade", "trono", "cetro", "coroa", "papiro", "escaravelho", "obelisco", "altar", "oferenda", "ritual", "cerimônia", "oração", "mantra", "símbolo", "sigilo", "amuleto"],
|
| 286 |
+
entidades: ["Rá", "Isis", "Osíris", "Anúbis", "Hórus", "Thoth", "Bastet", "Seth", "Maat", "Aton", "Ptah", "Sekhmet", "Hathor", "Nephthys", "Sobek"]
|
| 287 |
+
},
|
| 288 |
+
verbos: {
|
| 289 |
+
acao: ["caminhar", "falar", "olhar", "buscar", "encontrar", "abrir", "fechar", "criar", "destruir", "proteger", "julgar", "guiar", "seguir", "ensinar", "aprender", "compreender", "sentir", "perceber", "observar", "contemplar"],
|
| 290 |
+
estado: ["ser", "estar", "permanecer", "tornar-se", "existir", "fluir", "ressoar", "vibrar", "pulsar", "emanar"],
|
| 291 |
+
transmutacao: ["transmutar", "emanar", "ascender", "despertar", "revelar", "ocultar", "eternizar", "manifestar", "dissolver", "integrar", "transcender", "iluminar", "purificar", "consagrar"]
|
| 292 |
+
},
|
| 293 |
+
adjetivos: {
|
| 294 |
+
qualidade: ["eterno", "infinito", "divino", "puro", "absoluto", "místico", "ancestral", "sagrado", "profano", "sublime", "transcendente", "imanente", "radiante", "luminoso", "obscuro", "profundo", "elevado", "supremo"],
|
| 295 |
+
estado: ["claro", "escuro", "vazio", "pleno", "oculto", "visível", "estável", "caótico", "harmonioso", "dissonante", "sereno", "turbulento", "silencioso", "ressonante"]
|
| 296 |
+
},
|
| 297 |
+
adverbios: ["eternamente", "infinitamente", "profundamente", "sutilmente", "intensamente", "suavemente", "rapidamente", "lentamente", "constantemente", "perpetuamente"],
|
| 298 |
+
conectivos: ["pois", "enquanto", "para que", "onde", "sob o qual", "diante de", "e assim", "portanto", "contudo", "todavia", "através de", "mediante", "conforme", "segundo"],
|
| 299 |
+
pronomes: ["eu", "tu", "ele", "ela", "nós", "vós", "eles", "elas", "você", "vocês"]
|
| 300 |
+
};
|
| 301 |
+
|
| 302 |
+
const MORFOSSINTAXE = {
|
| 303 |
+
templates: {
|
| 304 |
+
SVP: ["{sujeito}", "{verbo}", "{objeto}"],
|
| 305 |
+
SVPA: ["{sujeito}", "{verbo}", "{objeto}", "{adjetivo}"],
|
| 306 |
+
INT_SVP: ["{pronome}", "{sujeito}", "{verbo}", "{objeto}"]
|
| 307 |
+
},
|
| 308 |
+
concordancia: {
|
| 309 |
+
genero: {
|
| 310 |
+
masculino: ["o", "os", "um", "uns"],
|
| 311 |
+
feminino: ["a", "as", "uma", "umas"]
|
| 312 |
+
},
|
| 313 |
+
numero: {
|
| 314 |
+
singular: ["o", "a", "um", "uma"],
|
| 315 |
+
plural: ["os", "as", "uns", "umas"]
|
| 316 |
+
}
|
| 317 |
+
}
|
| 318 |
+
};
|
| 319 |
+
|
| 320 |
+
const PRAGMATICA = {
|
| 321 |
+
intencoes: {
|
| 322 |
+
GREETING: {
|
| 323 |
+
prefixos: [
|
| 324 |
+
"Que a luz te alcance.",
|
| 325 |
+
"Sinto a vibração da tua chegada.",
|
| 326 |
+
"Salve, viajante do tempo.",
|
| 327 |
+
"Bem-vindo ao portal cósmico.",
|
| 328 |
+
"A energia te reconhece.",
|
| 329 |
+
"Que as estrelas te guiem."
|
| 330 |
+
],
|
| 331 |
+
contextos: ["Entrada no portal", "Início de ciclo solar"]
|
| 332 |
+
},
|
| 333 |
+
QUESTION: {
|
| 334 |
+
prefixos: [
|
| 335 |
+
"Questionas o tecido da realidade...",
|
| 336 |
+
"A dúvida é o princípio da luz.",
|
| 337 |
+
"Para entenderes isso, buscador,",
|
| 338 |
+
"A resposta ressoa nas esferas...",
|
| 339 |
+
"Contempla esta verdade:",
|
| 340 |
+
"O oráculo sussurra:"
|
| 341 |
+
],
|
| 342 |
+
contextos: ["Busca por conhecimento"]
|
| 343 |
+
},
|
| 344 |
+
STATEMENT: {
|
| 345 |
+
prefixos: [
|
| 346 |
+
"Observo que",
|
| 347 |
+
"Compreendo que",
|
| 348 |
+
"É manifesto que",
|
| 349 |
+
"A verdade revela que",
|
| 350 |
+
"Percebo que",
|
| 351 |
+
"Testemunho que"
|
| 352 |
+
],
|
| 353 |
+
contextos: ["Afirmação de verdade"]
|
| 354 |
+
},
|
| 355 |
+
INSULT: {
|
| 356 |
+
prefixos: [
|
| 357 |
+
"A sombra te envolve...",
|
| 358 |
+
"Tua energia está dissonante.",
|
| 359 |
+
"O caos te consome.",
|
| 360 |
+
"Afasta-te da luz."
|
| 361 |
+
],
|
| 362 |
+
contextos: ["Desrespeito", "Energia negativa"]
|
| 363 |
+
}
|
| 364 |
+
}
|
| 365 |
+
};
|
| 366 |
+
|
| 367 |
+
const SOCIOLINGUISTICA = {
|
| 368 |
+
niveis: {
|
| 369 |
+
DIVINE: {
|
| 370 |
+
xk_min: 8,
|
| 371 |
+
pronome: "Vossa Excelência Divina",
|
| 372 |
+
variacao: "Linguagem Arcaica/Poética",
|
| 373 |
+
publico: "Deuses e Iniciados"
|
| 374 |
+
},
|
| 375 |
+
IMPERIAL: {
|
| 376 |
+
xk_min: 5,
|
| 377 |
+
pronome: "Vossa Majestade",
|
| 378 |
+
variacao: "Linguagem Culta/Administrativa",
|
| 379 |
+
publico: "Sacerdotes e Nobres"
|
| 380 |
+
},
|
| 381 |
+
STONE: {
|
| 382 |
+
xk_min: -5,
|
| 383 |
+
pronome: "Você",
|
| 384 |
+
variacao: "Linguagem Comum/Coloquial",
|
| 385 |
+
publico: "Viajantes e Mortais"
|
| 386 |
+
},
|
| 387 |
+
SHADOW: {
|
| 388 |
+
xk_min: -15,
|
| 389 |
+
pronome: "Tu",
|
| 390 |
+
variacao: "Linguagem Fragmentada/Agressiva",
|
| 391 |
+
publico: "Inimigos e Sombras"
|
| 392 |
+
}
|
| 393 |
+
}
|
| 394 |
+
};
|
| 395 |
+
|
| 396 |
+
const AMARNA_ONTOLOGY = {
|
| 397 |
+
termos: [
|
| 398 |
+
{ conceito: "Linho Plissado Transparente", eixo: "Cultura-Vestuario" },
|
| 399 |
+
{ conceito: "Colar Usekh de Amarna", eixo: "Cultura-Vestuario" },
|
| 400 |
+
{ conceito: "Faiança Azul Amarniana", eixo: "Artesanato" },
|
| 401 |
+
{ conceito: "Bronze Amarniano", eixo: "Artesanato" },
|
| 402 |
+
{ conceito: "Estilo Elongado", eixo: "Pintura" },
|
| 403 |
+
{ conceito: "Temática Naturalista Secular", eixo: "Pintura" },
|
| 404 |
+
{ conceito: "Gem-Pa-Aton", eixo: "Locais Sagrados" },
|
| 405 |
+
{ conceito: "Altares de Sanatório", eixo: "Locais Sagrados" },
|
| 406 |
+
{ conceito: "Cartas de Rib-Hadda", eixo: "Textos" },
|
| 407 |
+
{ conceito: "Hino Menor a Aton", eixo: "Textos" },
|
| 408 |
+
{ conceito: "Disco Solar", eixo: "Símbolos" },
|
| 409 |
+
{ conceito: "Ankh Cósmico", eixo: "Símbolos" },
|
| 410 |
+
{ conceito: "Olho de Hórus", eixo: "Símbolos" },
|
| 411 |
+
{ conceito: "Pilar Djed", eixo: "Símbolos" },
|
| 412 |
+
{ conceito: "Nó de Isis", eixo: "Símbolos" }
|
| 413 |
+
],
|
| 414 |
+
axiomas_pt: [
|
| 415 |
+
{ titulo: "As Primaveras", autor: "Casimiro de Abreu" },
|
| 416 |
+
{ titulo: "Capítulos de História Colonial", autor: "João Capistrano de Abreu" },
|
| 417 |
+
{ titulo: "Bases da Ortografia Portuguesa", autor: "Guilherme de Vasconcelos" },
|
| 418 |
+
{ titulo: "O Cortiço", autor: "Aluísio Azevedo" },
|
| 419 |
+
{ titulo: "Dom Casmurro", autor: "Machado de Assis" }
|
| 420 |
+
]
|
| 421 |
+
};
|
| 422 |
+
|
| 423 |
+
// ============================================
|
| 424 |
+
// CLASSES PRINCIPAIS
|
| 425 |
+
// ============================================
|
| 426 |
+
|
| 427 |
+
class ResponseMemory {
|
| 428 |
+
constructor() {
|
| 429 |
+
this.storageKey = 'aoi_response_history';
|
| 430 |
+
this.maxVariations = 10;
|
| 431 |
+
this.history = this.loadHistory();
|
| 432 |
+
}
|
| 433 |
+
|
| 434 |
+
loadHistory() {
|
| 435 |
+
try {
|
| 436 |
+
const stored = localStorage.getItem(this.storageKey);
|
| 437 |
+
return stored ? JSON.parse(stored) : {};
|
| 438 |
+
} catch (e) {
|
| 439 |
+
console.error('Erro ao carregar histórico:', e);
|
| 440 |
+
return {};
|
| 441 |
+
}
|
| 442 |
+
}
|
| 443 |
+
|
| 444 |
+
saveHistory() {
|
| 445 |
+
try {
|
| 446 |
+
localStorage.setItem(this.storageKey, JSON.stringify(this.history));
|
| 447 |
+
} catch (e) {
|
| 448 |
+
console.error('Erro ao salvar histórico:', e);
|
| 449 |
+
}
|
| 450 |
+
}
|
| 451 |
+
|
| 452 |
+
getVariationIndex(inputHash) {
|
| 453 |
+
if (!this.history[inputHash]) {
|
| 454 |
+
this.history[inputHash] = { count: 0, variations: [], lastUsed: Date.now() };
|
| 455 |
+
}
|
| 456 |
+
return this.history[inputHash].count % this.maxVariations;
|
| 457 |
+
}
|
| 458 |
+
|
| 459 |
+
saveResponse(inputHash, response) {
|
| 460 |
+
if (!this.history[inputHash]) {
|
| 461 |
+
this.history[inputHash] = { count: 0, variations: [], lastUsed: Date.now() };
|
| 462 |
+
}
|
| 463 |
+
this.history[inputHash].variations.push(response);
|
| 464 |
+
this.history[inputHash].count++;
|
| 465 |
+
this.history[inputHash].lastUsed = Date.now();
|
| 466 |
+
this.saveHistory();
|
| 467 |
+
}
|
| 468 |
+
|
| 469 |
+
getStats(inputHash) {
|
| 470 |
+
if (!this.history[inputHash]) return { count: 0, max: this.maxVariations };
|
| 471 |
+
return {
|
| 472 |
+
count: this.history[inputHash].count,
|
| 473 |
+
max: this.maxVariations
|
| 474 |
+
};
|
| 475 |
+
}
|
| 476 |
+
|
| 477 |
+
reset() {
|
| 478 |
+
this.history = {};
|
| 479 |
+
this.saveHistory();
|
| 480 |
+
}
|
| 481 |
+
|
| 482 |
+
export() {
|
| 483 |
+
return JSON.stringify(this.history, null, 2);
|
| 484 |
+
}
|
| 485 |
+
}
|
| 486 |
+
|
| 487 |
+
class InputAnalyzer {
|
| 488 |
+
constructor() {
|
| 489 |
+
this.verbPatterns = /\b(ar|er|ir|ando|endo|indo|ou|ei|iu)$/i;
|
| 490 |
+
this.advPatterns = /mente$/i;
|
| 491 |
+
this.questionWords = ['como', 'quando', 'onde', 'por que', 'porque', 'qual', 'quem', 'o que'];
|
| 492 |
+
this.greetingWords = ['olá', 'oi', 'bom dia', 'boa tarde', 'boa noite', 'salve', 'hey', 'e aí'];
|
| 493 |
+
this.insultWords = ['idiota', 'burro', 'estúpido', 'imbecil', 'tolo'];
|
| 494 |
+
}
|
| 495 |
+
|
| 496 |
+
analyze(text) {
|
| 497 |
+
const words = text.toLowerCase().split(/\s+/);
|
| 498 |
+
const analysis = {
|
| 499 |
+
sujeito: this.extractSubject(words),
|
| 500 |
+
verbo: this.extractVerb(words),
|
| 501 |
+
objeto: this.extractObject(words),
|
| 502 |
+
adverbio: this.extractAdverb(words),
|
| 503 |
+
tipo: this.detectType(text),
|
| 504 |
+
xk: this.calculateXK(text),
|
| 505 |
+
complexidade: words.length
|
| 506 |
+
};
|
| 507 |
+
return analysis;
|
| 508 |
+
}
|
| 509 |
+
|
| 510 |
+
extractSubject(words) {
|
| 511 |
+
const pronouns = ['eu', 'tu', 'ele', 'ela', 'você', 'nós', 'vós', 'eles', 'elas'];
|
| 512 |
+
for (let word of words) {
|
| 513 |
+
if (pronouns.includes(word)) return word;
|
| 514 |
+
}
|
| 515 |
+
return words[0] || 'ser';
|
| 516 |
+
}
|
| 517 |
+
|
| 518 |
+
extractVerb(words) {
|
| 519 |
+
for (let word of words) {
|
| 520 |
+
if (this.verbPatterns.test(word)) return word;
|
| 521 |
+
}
|
| 522 |
+
const allVerbs = [...DICIONARIO.verbos.acao, ...DICIONARIO.verbos.estado, ...DICIONARIO.verbos.transmutacao];
|
| 523 |
+
for (let word of words) {
|
| 524 |
+
if (allVerbs.includes(word)) return word;
|
| 525 |
+
}
|
| 526 |
+
return 'ser';
|
| 527 |
+
}
|
| 528 |
+
|
| 529 |
+
extractObject(words) {
|
| 530 |
+
const verbIndex = words.findIndex(w => this.verbPatterns.test(w));
|
| 531 |
+
if (verbIndex !== -1 && verbIndex < words.length - 1) {
|
| 532 |
+
return words[verbIndex + 1];
|
| 533 |
+
}
|
| 534 |
+
return words[words.length - 1] || 'verdade';
|
| 535 |
+
}
|
| 536 |
+
|
| 537 |
+
extractAdverb(words) {
|
| 538 |
+
for (let word of words) {
|
| 539 |
+
if (this.advPatterns.test(word)) return word;
|
| 540 |
+
}
|
| 541 |
+
return null;
|
| 542 |
+
}
|
| 543 |
+
|
| 544 |
+
detectType(text) {
|
| 545 |
+
const lower = text.toLowerCase();
|
| 546 |
+
if (text.includes('?')) return 'QUESTION';
|
| 547 |
+
if (this.greetingWords.some(w => lower.includes(w))) return 'GREETING';
|
| 548 |
+
if (this.insultWords.some(w => lower.includes(w))) return 'INSULT';
|
| 549 |
+
return 'STATEMENT';
|
| 550 |
+
}
|
| 551 |
+
|
| 552 |
+
calculateXK(text) {
|
| 553 |
+
let xk = 0;
|
| 554 |
+
const words = text.split(/\s+/);
|
| 555 |
+
|
| 556 |
+
// Complexidade léxica
|
| 557 |
+
xk += words.length * 0.5;
|
| 558 |
+
|
| 559 |
+
// Palavras longas
|
| 560 |
+
const longWords = words.filter(w => w.length > 8).length;
|
| 561 |
+
xk += longWords * 2;
|
| 562 |
+
|
| 563 |
+
// Pontuação
|
| 564 |
+
const punctuation = (text.match(/[.,;:!?]/g) || []).length;
|
| 565 |
+
xk += punctuation * 0.5;
|
| 566 |
+
|
| 567 |
+
// Palavras formais
|
| 568 |
+
const formalWords = ['transcendental', 'metafísico', 'ontológico', 'epistemológico'];
|
| 569 |
+
const formalCount = formalWords.filter(w => text.toLowerCase().includes(w)).length;
|
| 570 |
+
xk += formalCount * 3;
|
| 571 |
+
|
| 572 |
+
return Math.min(Math.max(xk - 10, -15), 15);
|
| 573 |
+
}
|
| 574 |
+
}
|
| 575 |
+
|
| 576 |
+
class NeuroSynthesizer {
|
| 577 |
+
constructor(dict, prag, socio, morph, amarna) {
|
| 578 |
+
this.dict = dict;
|
| 579 |
+
this.prag = prag;
|
| 580 |
+
this.socio = socio;
|
| 581 |
+
this.morph = morph;
|
| 582 |
+
this.amarna = amarna;
|
| 583 |
+
}
|
| 584 |
+
|
| 585 |
+
hashString(str) {
|
| 586 |
+
let hash = 0;
|
| 587 |
+
for (let i = 0; i < str.length; i++) {
|
| 588 |
+
hash = ((hash << 5) - hash) + str.charCodeAt(i);
|
| 589 |
+
hash |= 0;
|
| 590 |
+
}
|
| 591 |
+
return Math.abs(hash);
|
| 592 |
+
}
|
| 593 |
+
|
| 594 |
+
conjugarVerbo(verbo) {
|
| 595 |
+
if (verbo.endsWith('ar')) return verbo.slice(0, -2) + 'a';
|
| 596 |
+
if (verbo.endsWith('er')) return verbo.slice(0, -2) + 'e';
|
| 597 |
+
if (verbo.endsWith('ir')) return verbo.slice(0, -2) + 'e';
|
| 598 |
+
return verbo;
|
| 599 |
+
}
|
| 600 |
+
|
| 601 |
+
demodulateSpeech(phase, amplitude, pathSeed) {
|
| 602 |
+
const sI = amplitude * Math.cos(phase);
|
| 603 |
+
const sQ = amplitude * Math.sin(phase);
|
| 604 |
+
|
| 605 |
+
const getAtom = (pool, val) => {
|
| 606 |
+
const index = Math.abs(Math.floor(val * 100 + pathSeed)) % pool.length;
|
| 607 |
+
return pool[index];
|
| 608 |
+
};
|
| 609 |
+
|
| 610 |
+
const allSubstantivos = [
|
| 611 |
+
...this.dict.substantivos.comuns,
|
| 612 |
+
...this.dict.substantivos.sagrados,
|
| 613 |
+
...this.dict.substantivos.entidades
|
| 614 |
+
];
|
| 615 |
+
|
| 616 |
+
const allVerbos = [
|
| 617 |
+
...this.dict.verbos.acao,
|
| 618 |
+
...this.dict.verbos.estado,
|
| 619 |
+
...this.dict.verbos.transmutacao
|
| 620 |
+
];
|
| 621 |
+
|
| 622 |
+
const allAdjetivos = [
|
| 623 |
+
...this.dict.adjetivos.qualidade,
|
| 624 |
+
...this.dict.adjetivos.estado
|
| 625 |
+
];
|
| 626 |
+
|
| 627 |
+
const sujeito = getAtom(allSubstantivos, sI);
|
| 628 |
+
const verboBruto = getAtom(allVerbos, sQ);
|
| 629 |
+
const verbo = this.conjugarVerbo(verboBruto);
|
| 630 |
+
const objeto = getAtom(allSubstantivos, sI + sQ);
|
| 631 |
+
const adjetivo = getAtom(allAdjetivos, sQ - sI);
|
| 632 |
+
const adverbio = getAtom(this.dict.adverbios, sI * sQ);
|
| 633 |
+
const conectivo = getAtom(this.dict.conectivos, sI + sQ + pathSeed);
|
| 634 |
+
const amarnaRef = this.amarna.termos[Math.floor(Math.abs(sI * 100)) % this.amarna.termos.length];
|
| 635 |
+
const axioma = this.amarna.axiomas_pt[Math.floor(Math.abs(sQ * 100)) % this.amarna.axiomas_pt.length];
|
| 636 |
+
|
| 637 |
+
return { sujeito, verbo, objeto, adjetivo, adverbio, conectivo, amarnaRef, axioma, sI, sQ };
|
| 638 |
+
}
|
| 639 |
+
|
| 640 |
+
process(input, analysis, variationIndex) {
|
| 641 |
+
const inputHash = this.hashString(input);
|
| 642 |
+
const variationSeed = inputHash + variationIndex * 1000;
|
| 643 |
+
|
| 644 |
+
const amplitude = (analysis.xk + 20) / 30;
|
| 645 |
+
const phase = (variationSeed * Math.PI) / 2;
|
| 646 |
+
const pathSeed = variationSeed;
|
| 647 |
+
|
| 648 |
+
const atoms = this.demodulateSpeech(phase, amplitude, pathSeed);
|
| 649 |
+
|
| 650 |
+
return this.applyGenerativeGrammar(atoms, input, analysis, phase, variationIndex);
|
| 651 |
+
}
|
| 652 |
+
|
| 653 |
+
applyGenerativeGrammar(atoms, input, analysis, phase, variationIndex) {
|
| 654 |
+
const structureType = (Math.abs(Math.floor(phase * 10)) + variationIndex) % 8;
|
| 655 |
+
|
| 656 |
+
let sentence = "";
|
| 657 |
+
|
| 658 |
+
// 8 variações estruturais diferentes
|
| 659 |
+
switch(structureType) {
|
| 660 |
+
case 0:
|
| 661 |
+
sentence = `O ${atoms.objeto} ${atoms.adjetivo} é o que ${atoms.sujeito} ${atoms.verbo} sob o ${atoms.amarnaRef.conceito}.`;
|
| 662 |
+
break;
|
| 663 |
+
case 1:
|
| 664 |
+
sentence = `Quando ${atoms.sujeito} ${atoms.verbo} o ${atoms.objeto}, uma energia ${atoms.adjetivo} ressoa como no ${atoms.amarnaRef.conceito}.`;
|
| 665 |
+
break;
|
| 666 |
+
case 2:
|
| 667 |
+
sentence = `${atoms.sujeito} sempre ${atoms.verbo} o ${atoms.objeto} ${atoms.adjetivo}, refletindo a herança do ${atoms.amarnaRef.eixo}.`;
|
| 668 |
+
break;
|
| 669 |
+
case 3:
|
| 670 |
+
sentence = `Através da compreensão de '${atoms.axioma.titulo}', vemos que o ${atoms.amarnaRef.conceito} faz com que ${atoms.sujeito} ${atoms.verbo} o ${atoms.objeto}.`;
|
| 671 |
+
break;
|
| 672 |
+
case 4:
|
| 673 |
+
sentence = `No momento em que ${atoms.sujeito} ${atoms.verbo} ${atoms.adverbio}, o ${atoms.objeto} se torna ${atoms.adjetivo} como o ${atoms.amarnaRef.conceito}.`;
|
| 674 |
+
break;
|
| 675 |
+
case 5:
|
| 676 |
+
sentence = `Porque ${atoms.sujeito} ${atoms.verbo} o ${atoms.objeto}, a ${atoms.adjetivo} essência emerge do ${atoms.amarnaRef.eixo}.`;
|
| 677 |
+
break;
|
| 678 |
+
case 6:
|
| 679 |
+
sentence = `${atoms.conectivo} ${atoms.sujeito} ${atoms.verbo} ${atoms.adverbio}, o ${atoms.objeto} ${atoms.adjetivo} manifesta o poder do ${atoms.amarnaRef.conceito}.`;
|
| 680 |
+
break;
|
| 681 |
+
case 7:
|
| 682 |
+
sentence = `A verdade de '${atoms.axioma.autor}' revela que ${atoms.sujeito} ${atoms.verbo} o ${atoms.objeto} ${atoms.adjetivo} através do ${atoms.amarnaRef.eixo}.`;
|
| 683 |
+
break;
|
| 684 |
+
}
|
| 685 |
+
|
| 686 |
+
// Aplicar pragmática
|
| 687 |
+
if (analysis.tipo === 'QUESTION') {
|
| 688 |
+
const prefixos = this.prag.intencoes.QUESTION.prefixos;
|
| 689 |
+
const prefixo = prefixos[Math.floor(phase * 100) % prefixos.length];
|
| 690 |
+
sentence = `${prefixo} ${sentence}`;
|
| 691 |
+
} else if (analysis.tipo === 'GREETING') {
|
| 692 |
+
const prefixos = this.prag.intencoes.GREETING.prefixos;
|
| 693 |
+
const prefixo = prefixos[Math.floor(phase * 100) % prefixos.length];
|
| 694 |
+
sentence = `${prefixo} ${sentence}`;
|
| 695 |
+
} else if (analysis.tipo === 'INSULT') {
|
| 696 |
+
const prefixos = this.prag.intencoes.INSULT.prefixos;
|
| 697 |
+
const prefixo = prefixos[Math.floor(phase * 100) % prefixos.length];
|
| 698 |
+
sentence = `${prefixo} ${sentence}`;
|
| 699 |
+
}
|
| 700 |
+
|
| 701 |
+
// Ajustes de gênero
|
| 702 |
+
sentence = this.ajustarGenero(sentence);
|
| 703 |
+
|
| 704 |
+
return sentence.charAt(0).toUpperCase() + sentence.slice(1);
|
| 705 |
+
}
|
| 706 |
+
|
| 707 |
+
ajustarGenero(frase) {
|
| 708 |
+
return frase
|
| 709 |
+
.replace(/ o luz /gi, ' a luz ')
|
| 710 |
+
.replace(/ o verdade /gi, ' a verdade ')
|
| 711 |
+
.replace(/ o vida /gi, ' a vida ')
|
| 712 |
+
.replace(/ o morte /gi, ' a morte ')
|
| 713 |
+
.replace(/ o mente /gi, ' a mente ')
|
| 714 |
+
.replace(/ o alma /gi, ' a alma ')
|
| 715 |
+
.replace(/ o energia /gi, ' a energia ')
|
| 716 |
+
.replace(/ o essência /gi, ' a essência ')
|
| 717 |
+
.replace(/ o consciência /gi, ' a consciência ');
|
| 718 |
+
}
|
| 719 |
+
|
| 720 |
+
getSocioLevel(xk) {
|
| 721 |
+
if (xk >= 8) return 'DIVINE';
|
| 722 |
+
if (xk >= 5) return 'IMPERIAL';
|
| 723 |
+
if (xk >= -5) return 'STONE';
|
| 724 |
+
return 'SHADOW';
|
| 725 |
+
}
|
| 726 |
+
}
|
| 727 |
+
|
| 728 |
+
class ChatInterface {
|
| 729 |
+
constructor() {
|
| 730 |
+
this.chatArea = document.getElementById('chatArea');
|
| 731 |
+
this.userInput = document.getElementById('userInput');
|
| 732 |
+
this.sendBtn = document.getElementById('sendBtn');
|
| 733 |
+
this.clearBtn = document.getElementById('clearBtn');
|
| 734 |
+
this.resetMemoryBtn = document.getElementById('resetMemoryBtn');
|
| 735 |
+
this.exportBtn = document.getElementById('exportBtn');
|
| 736 |
+
|
| 737 |
+
this.variationCount = document.getElementById('variationCount');
|
| 738 |
+
this.xkLevel = document.getElementById('xkLevel');
|
| 739 |
+
this.socioLevel = document.getElementById('socioLevel');
|
| 740 |
+
this.totalResponses = document.getElementById('totalResponses');
|
| 741 |
+
|
| 742 |
+
this.memory = new ResponseMemory();
|
| 743 |
+
this.analyzer = new InputAnalyzer();
|
| 744 |
+
this.synthesizer = new NeuroSynthesizer(DICIONARIO, PRAGMATICA, SOCIOLINGUISTICA, MORFOSSINTAXE, AMARNA_ONTOLOGY);
|
| 745 |
+
|
| 746 |
+
this.totalResponseCount = 0;
|
| 747 |
+
|
| 748 |
+
this.setupEventListeners();
|
| 749 |
+
}
|
| 750 |
+
|
| 751 |
+
setupEventListeners() {
|
| 752 |
+
this.sendBtn.addEventListener('click', () => this.handleSend());
|
| 753 |
+
this.userInput.addEventListener('keypress', (e) => {
|
| 754 |
+
if (e.key === 'Enter') this.handleSend();
|
| 755 |
+
});
|
| 756 |
+
this.clearBtn.addEventListener('click', () => this.clearChat());
|
| 757 |
+
this.resetMemoryBtn.addEventListener('click', () => this.resetMemory());
|
| 758 |
+
this.exportBtn.addEventListener('click', () => this.exportHistory());
|
| 759 |
+
}
|
| 760 |
+
|
| 761 |
+
handleSend() {
|
| 762 |
+
const text = this.userInput.value.trim();
|
| 763 |
+
if (!text) return;
|
| 764 |
+
|
| 765 |
+
this.addMessage('user', text);
|
| 766 |
+
this.userInput.value = '';
|
| 767 |
+
|
| 768 |
+
this.showThinking();
|
| 769 |
+
|
| 770 |
+
setTimeout(() => {
|
| 771 |
+
this.processInput(text);
|
| 772 |
+
}, 500);
|
| 773 |
+
}
|
| 774 |
+
|
| 775 |
+
processInput(text) {
|
| 776 |
+
const analysis = this.analyzer.analyze(text);
|
| 777 |
+
const inputHash = this.synthesizer.hashString(text);
|
| 778 |
+
const variationIndex = this.memory.getVariationIndex(inputHash);
|
| 779 |
+
|
| 780 |
+
const response = this.synthesizer.process(text, analysis, variationIndex);
|
| 781 |
+
|
| 782 |
+
this.memory.saveResponse(inputHash, response);
|
| 783 |
+
|
| 784 |
+
this.removeThinking();
|
| 785 |
+
this.addMessage('ai', response);
|
| 786 |
+
|
| 787 |
+
this.updateStats(inputHash, analysis);
|
| 788 |
+
this.totalResponseCount++;
|
| 789 |
+
}
|
| 790 |
+
|
| 791 |
+
addMessage(type, text) {
|
| 792 |
+
const messageDiv = document.createElement('div');
|
| 793 |
+
messageDiv.className = `message ${type}`;
|
| 794 |
+
|
| 795 |
+
const label = document.createElement('div');
|
| 796 |
+
label.className = 'message-label';
|
| 797 |
+
label.textContent = type === 'user' ? '👤 Você' : '🐆 Aoi';
|
| 798 |
+
|
| 799 |
+
const textDiv = document.createElement('div');
|
| 800 |
+
textDiv.className = 'message-text';
|
| 801 |
+
textDiv.textContent = text;
|
| 802 |
+
|
| 803 |
+
messageDiv.appendChild(label);
|
| 804 |
+
messageDiv.appendChild(textDiv);
|
| 805 |
+
|
| 806 |
+
this.chatArea.appendChild(messageDiv);
|
| 807 |
+
this.chatArea.scrollTop = this.chatArea.scrollHeight;
|
| 808 |
+
}
|
| 809 |
+
|
| 810 |
+
showThinking() {
|
| 811 |
+
const thinkingDiv = document.createElement('div');
|
| 812 |
+
thinkingDiv.className = 'thinking';
|
| 813 |
+
thinkingDiv.id = 'thinking';
|
| 814 |
+
thinkingDiv.textContent = '🐆 Aoi está demodulando os canais I/Q...';
|
| 815 |
+
this.chatArea.appendChild(thinkingDiv);
|
| 816 |
+
this.chatArea.scrollTop = this.chatArea.scrollHeight;
|
| 817 |
+
}
|
| 818 |
+
|
| 819 |
+
removeThinking() {
|
| 820 |
+
const thinking = document.getElementById('thinking');
|
| 821 |
+
if (thinking) thinking.remove();
|
| 822 |
+
}
|
| 823 |
+
|
| 824 |
+
updateStats(inputHash, analysis) {
|
| 825 |
+
const stats = this.memory.getStats(inputHash);
|
| 826 |
+
this.variationCount.textContent = `${stats.count}/${stats.max}`;
|
| 827 |
+
this.xkLevel.textContent = analysis.xk.toFixed(1);
|
| 828 |
+
this.socioLevel.textContent = this.synthesizer.getSocioLevel(analysis.xk);
|
| 829 |
+
this.totalResponses.textContent = this.totalResponseCount;
|
| 830 |
+
}
|
| 831 |
+
|
| 832 |
+
clearChat() {
|
| 833 |
+
const messages = this.chatArea.querySelectorAll('.message');
|
| 834 |
+
messages.forEach((msg, index) => {
|
| 835 |
+
if (index > 0) msg.remove();
|
| 836 |
+
});
|
| 837 |
+
}
|
| 838 |
+
|
| 839 |
+
resetMemory() {
|
| 840 |
+
if (confirm('Resetar toda a memória de respostas? Isso permitirá gerar novas variações.')) {
|
| 841 |
+
this.memory.reset();
|
| 842 |
+
this.variationCount.textContent = '0/10';
|
| 843 |
+
alert('Memória resetada com sucesso!');
|
| 844 |
+
}
|
| 845 |
+
}
|
| 846 |
+
|
| 847 |
+
exportHistory() {
|
| 848 |
+
const data = this.memory.export();
|
| 849 |
+
const blob = new Blob([data], { type: 'application/json' });
|
| 850 |
+
const url = URL.createObjectURL(blob);
|
| 851 |
+
const a = document.createElement('a');
|
| 852 |
+
a.href = url;
|
| 853 |
+
a.download = `aoi_history_${Date.now()}.json`;
|
| 854 |
+
a.click();
|
| 855 |
+
URL.revokeObjectURL(url);
|
| 856 |
+
}
|
| 857 |
+
}
|
| 858 |
+
|
| 859 |
+
// ============================================
|
| 860 |
+
// INICIALIZAÇÃO
|
| 861 |
+
// ============================================
|
| 862 |
+
|
| 863 |
+
window.addEventListener('DOMContentLoaded', () => {
|
| 864 |
+
new ChatInterface();
|
| 865 |
+
});
|
| 866 |
+
</script>
|
| 867 |
+
</body>
|
| 868 |
+
</html>
|
classes.py
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from bs4 import BeautifulSoup
|
| 2 |
+
from aiohttp import ClientSession
|
| 3 |
+
from responseModel import Response
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
class API:
|
| 7 |
+
url = f"https://www.dicio.com.br/"
|
| 8 |
+
__classSinonimos = 'adicional sinonimos'
|
| 9 |
+
typeParse = 'html.parser'
|
| 10 |
+
|
| 11 |
+
async def pesquisar_palavra(self, palavra: str):
|
| 12 |
+
async with ClientSession() as s, s.get(self.url+palavra) as r:
|
| 13 |
+
pageResponse = await r.text()
|
| 14 |
+
return BeautifulSoup(pageResponse, self.typeParse)
|
| 15 |
+
|
| 16 |
+
async def sinonimos(self, palavra):
|
| 17 |
+
soup = await self.pesquisar_palavra(palavra)
|
| 18 |
+
sinonimos = soup.find(class_=self.__classSinonimos)
|
| 19 |
+
resultado = [tag.text.strip() for tag in sinonimos.find_all('a')]
|
| 20 |
+
return await Response().Sinonimos(resultado)
|
| 21 |
+
|
| 22 |
+
|
dicionario.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
window.AOI_DICTIONARY = {
|
| 2 |
+
"categorias": {
|
| 3 |
+
"substantivos": {
|
| 4 |
+
"comuns": ["vida", "morte", "tempo", "verdade", "luz", "sombra", "destino", "alma", "corpo", "mente", "universo", "mundo", "caminho", "portal", "segredo", "enigma"],
|
| 5 |
+
"sagrados": ["faraó", "pirâmide", "templo", "hieróglifo", "sacerdote", "deus", "divindade", "trono", "cetro", "coroa", "papiro", "escaravelho"],
|
| 6 |
+
"entidades": ["Rá", "Isis", "Osíris", "Anúbis", "Hórus", "Thoth", "Bastet", "Seth", "Maat"]
|
| 7 |
+
},
|
| 8 |
+
"verbos": {
|
| 9 |
+
"acao": ["caminhar", "falar", "olhar", "buscar", "encontrar", "abrir", "fechar", "criar", "destruir", "proteger", "julgar"],
|
| 10 |
+
"estado": ["ser", "estar", "permanecer", "tornar-se", "existir", "fluir"],
|
| 11 |
+
"transmutacao": ["transmutar", "emanar", "ascender", "despertar", "revelar", "ocultar", "eternizar"]
|
| 12 |
+
},
|
| 13 |
+
"adjetivos": {
|
| 14 |
+
"qualidade": ["eterno", "infinito", "divino", "puro", "absoluto", "místico", "ancestral", "sagrado", "profano"],
|
| 15 |
+
"estado": ["claro", "escuro", "vazio", "pleno", "oculto", "visível", "estável", "caótico"]
|
| 16 |
+
}
|
| 17 |
+
},
|
| 18 |
+
"michaelis_metadata": { "total_simulado": 400000 }
|
| 19 |
+
};
|
dicionario.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"categorias": {
|
| 3 |
+
"substantivos": {
|
| 4 |
+
"comuns": ["vida", "morte", "tempo", "verdade", "luz", "sombra", "destino", "alma", "corpo", "mente", "universo", "mundo", "caminho", "portal", "segredo", "enigma"],
|
| 5 |
+
"sagrados": ["faraó", "pirâmide", "templo", "hieróglifo", "sacerdote", "deus", "divindade", "trono", "cetro", "coroa", "papiro", "escaravelho"],
|
| 6 |
+
"entidades": ["Rá", "Isis", "Osíris", "Anúbis", "Hórus", "Thoth", "Bastet", "Seth", "Maat"]
|
| 7 |
+
},
|
| 8 |
+
"verbos": {
|
| 9 |
+
"acao": ["caminhar", "falar", "olhar", "buscar", "encontrar", "abrir", "fechar", "criar", "destruir", "proteger", "julgar"],
|
| 10 |
+
"estado": ["ser", "estar", "permanecer", "tornar-se", "existir", "fluir"],
|
| 11 |
+
"transmutacao": ["transmutar", "emanar", "ascender", "despertar", "revelar", "ocultar", "eternizar"]
|
| 12 |
+
},
|
| 13 |
+
"adjetivos": {
|
| 14 |
+
"qualidade": ["eterno", "infinito", "divino", "puro", "absoluto", "místico", "ancestral", "sagrado", "profano"],
|
| 15 |
+
"estado": ["claro", "escuro", "vazio", "pleno", "oculto", "visível", "estável", "caótico"]
|
| 16 |
+
}
|
| 17 |
+
},
|
| 18 |
+
"michaelis_metadata": {
|
| 19 |
+
"versao": "1.0-Aoi-Core",
|
| 20 |
+
"idioma": "pt-BR",
|
| 21 |
+
"total_simulado": 400000
|
| 22 |
+
}
|
| 23 |
+
}
|
ditritium.js
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/**
|
| 2 |
+
* CANAL DE DITRITIUM AOI (v2.0)
|
| 3 |
+
* Motor de Canalização Autônoma e Psicografia de Luz
|
| 4 |
+
*/
|
| 5 |
+
|
| 6 |
+
class DitritiumEngine {
|
| 7 |
+
constructor() {
|
| 8 |
+
this.personalities = [
|
| 9 |
+
{ name: "Akhenaton", title: "O Faraó Rebelde da Luz", tone: "majestoso e solar" },
|
| 10 |
+
{ name: "Nefertiti", title: "A Bela que Chegou", tone: "sereno e profundo" },
|
| 11 |
+
{ name: "Amenhotep III", title: "O Magnífico", tone: "abundante e próspero" },
|
| 12 |
+
{ name: "Ramsés II", title: "O Grande Construtor", tone: "forte e resiliente" },
|
| 13 |
+
{ name: "Hatshepsut", title: "A Faraó Mulher", tone: "estratégico e sábio" },
|
| 14 |
+
{ name: "Thutmose III", title: "O Napoleão do Egito", tone: "corajoso e tático" },
|
| 15 |
+
{ name: "Kheru-ur", title: "A Voz do Antigo", tone: "ancestral e místico" }
|
| 16 |
+
];
|
| 17 |
+
|
| 18 |
+
this.openingPhrases = [
|
| 19 |
+
"Através das brumas do tempo, sinto a tua presença...",
|
| 20 |
+
"As areias de Kemet sussurram o teu nome no vácuo de Ditritium.",
|
| 21 |
+
"O papiro do destino desenrola-se diante dos meus olhos espirituais.",
|
| 22 |
+
"Em sintonização com a Corrente de Ouro de Amarna, recebo esta vibração.",
|
| 23 |
+
"O silêncio do deserto rompe-se para entregar esta verdade.",
|
| 24 |
+
"Na frequência de 432Hz, a dobra temporal se abre para ti."
|
| 25 |
+
];
|
| 26 |
+
|
| 27 |
+
this.coreMessages = [
|
| 28 |
+
"A vida não termina no horizonte de Gizé; ela apenas muda de plano.",
|
| 29 |
+
"Tua alma (Ka) é uma centelha de Aton que nunca se apaga.",
|
| 30 |
+
"As provações de hoje são as pedras que constroem a tua pirâmide eterna.",
|
| 31 |
+
"Ouve o teu coração (Ib), pois ele contém a sabedoria de todos os teus antepassados.",
|
| 32 |
+
"A justiça de Maat é o fio que tece o tecido da tua realidade.",
|
| 33 |
+
"Não busques fora o que já brilha intensamente no centro do teu ser místico.",
|
| 34 |
+
"A gratidão é o incenso que abre as portas do Sanctum Celestial.",
|
| 35 |
+
"Cada respiração é uma sintonização com a Consciência Cósmica."
|
| 36 |
+
];
|
| 37 |
+
|
| 38 |
+
this.lovedOnesTemplates = [
|
| 39 |
+
"Saiba que estou em paz nas planícies de Iaru.",
|
| 40 |
+
"Nossa conexão transcende os séculos e as vidas passadas.",
|
| 41 |
+
"Sinto o teu amor como o calor do Sol ao meio-dia.",
|
| 42 |
+
"Não chores, pois estou ao teu lado, guiando teus passos nas areias.",
|
| 43 |
+
"O elo que nos une foi forjado nas chamas da eternidade."
|
| 44 |
+
];
|
| 45 |
+
|
| 46 |
+
this.closingPhrases = [
|
| 47 |
+
"Que a Paz Profunda habite em teu coração.",
|
| 48 |
+
"Pela vida, pela luz e pelo amor. Assim seja.",
|
| 49 |
+
"Que o Olho de Hórus te proteja em todos os teus caminhos.",
|
| 50 |
+
"Nos encontraremos novamente no Grande Salão de Maat.",
|
| 51 |
+
"Sintonize-se com o mestre interior. Em união mística."
|
| 52 |
+
];
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
generateSeed(birthDate) {
|
| 56 |
+
let seed = 0;
|
| 57 |
+
for (let i = 0; i < birthDate.length; i++) {
|
| 58 |
+
seed += birthDate.charCodeAt(i);
|
| 59 |
+
}
|
| 60 |
+
return seed + Date.now();
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
getPsychography(birthDate, prompt) {
|
| 64 |
+
const seed = this.generateSeed(birthDate);
|
| 65 |
+
const rand = (max) => Math.floor((Math.abs(Math.sin(seed + max) * 10000)) % max);
|
| 66 |
+
|
| 67 |
+
const personality = this.personalities[rand(this.personalities.length)];
|
| 68 |
+
const opening = this.openingPhrases[rand(this.openingPhrases.length)];
|
| 69 |
+
const closing = this.closingPhrases[rand(this.closingPhrases.length)];
|
| 70 |
+
|
| 71 |
+
let content = "";
|
| 72 |
+
if (prompt.toLowerCase().includes("ente querido") || prompt.toLowerCase().includes("queridos")) {
|
| 73 |
+
content = this.lovedOnesTemplates[rand(this.lovedOnesTemplates.length)];
|
| 74 |
+
} else {
|
| 75 |
+
content = this.coreMessages[rand(this.coreMessages.length)];
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
+
// Adicionando termos AMORC para profundidade
|
| 79 |
+
const amorcTerm = window.AMORC_KNOWLEDGE[rand(window.AMORC_KNOWLEDGE.length)];
|
| 80 |
+
|
| 81 |
+
const frequency = (200 + Math.random() * 800).toFixed(2);
|
| 82 |
+
|
| 83 |
+
return {
|
| 84 |
+
author: personality.name,
|
| 85 |
+
title: personality.title,
|
| 86 |
+
tone: personality.tone,
|
| 87 |
+
frequency: frequency + " MHz",
|
| 88 |
+
message: `${opening} ${content} Lembre-se do ${amorcTerm}. ${closing}`
|
| 89 |
+
};
|
| 90 |
+
}
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
window.DitritiumEngine = DitritiumEngine;
|
egipcio_historia.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
egipcio_horoscopo.js
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/**
|
| 2 |
+
* MÓDULO DE HORÓSCOPO EGÍPCIO E TAROT AOI (v1.0)
|
| 3 |
+
* Integração: Derivada da Manifestação + Horóscopo Egípcio + Sabedoria de Neith
|
| 4 |
+
*/
|
| 5 |
+
|
| 6 |
+
class EgyptianHoroscope {
|
| 7 |
+
constructor() {
|
| 8 |
+
this.signs = [
|
| 9 |
+
{ name: 'Nilo', regence: 'O próprio Rio Nilo', profile: 'Lógicos, pacíficos e extremamente práticos. Evitam conflitos e buscam a harmonia.', dates: [[1, 7, 0], [19, 28, 5], [1, 7, 8], [18, 26, 10]] },
|
| 10 |
+
{ name: 'Amon-Rá', regence: 'O deus do Sol e criador de todas as coisas', profile: 'Líderes natos, corajosos, generosos e muito otimistas.', dates: [[8, 21, 0], [1, 11, 1]] },
|
| 11 |
+
{ name: 'Mut', regence: 'A deusa-mãe, senhora do céu e da terra', profile: 'Protetores, leais e muito intuitivos. Costumam ser excelentes conselheiros.', dates: [[22, 31, 0], [8, 22, 8]] },
|
| 12 |
+
{ name: 'Hátor', regence: 'A deusa do amor, da beleza e da alegria', profile: 'Carismáticos, apaixonados e cheios de energia. Transmitem alegria e gostam de viver intensamente.', dates: [[12, 29, 1], [20, 31, 7]] },
|
| 13 |
+
{ name: 'Anúbis', regence: 'O deus dos mortos e do submundo', profile: 'Introspectivos, disciplinados e muito inteligentes. Possuem grande capacidade de superação e foco.', dates: [[1, 15, 2], [30, 31, 9], [1, 7, 10]] },
|
| 14 |
+
{ name: 'Hórus', regence: 'O deus dos céus e da guerra', profile: 'Otimistas, corajosos e defensores da justiça. Inspiram confiança e liderança nos outros.', dates: [[16, 30, 3], [8, 17, 10]] },
|
| 15 |
+
{ name: 'Thoth', regence: 'O deus da sabedoria, da escrita e do conhecimento', profile: 'Intelectuais, inventivos e muito comunicativos. Estão sempre em busca de aprendizado.', dates: [[1, 19, 3], [8, 17, 10]] },
|
| 16 |
+
{ name: 'Ísis', regence: 'A deusa da fertilidade, da magia e da maternidade', profile: 'Carinhosos, independentes e muito comunicativos. Destacam-se pela sua capacidade de proteger quem amam.', dates: [[11, 31, 2], [18, 29, 9], [19, 31, 11]] },
|
| 17 |
+
{ name: 'Bastet', regence: 'A deusa com cabeça de gato, símbolo do lar e do prazer', profile: 'Buscam paz, harmonia e estabilidade. São cautelosos e muito afetuosos com o próximo.', dates: [[16, 31, 0], [1, 15, 1]] },
|
| 18 |
+
{ name: 'Seshat', regence: 'A deusa da escrita, da astronomia e da contagem', profile: 'Analíticos, observadores e muito focados nos seus objetivos. Adoram desafios intelectuais.', dates: [[1, 7, 4], [1, 11, 5]] },
|
| 19 |
+
{ name: 'Sobek', regence: 'O deus do rio e da força, representado por um crocodilo', profile: 'Fortes, resilientes e protetores. São muito trabalhadores e não desistem diante dos obstáculos.', dates: [[16, 27, 4], [26, 30, 10], [1, 25, 11]] },
|
| 20 |
+
{ name: 'Sekhmet', regence: 'A deusa da guerra e da cura, com cabeça de leoa', profile: 'Intensos, disciplinados e corajosos. Exigem muito de si mesmos e são grandes guerreiros nas causas em que acreditam.', dates: [[29, 31, 6], [1, 11, 7], [30, 31, 9], [1, 7, 10]] }
|
| 21 |
+
];
|
| 22 |
+
|
| 23 |
+
this.tarotArcana = [
|
| 24 |
+
"O Louco", "O Mago", "A Sacerdotisa", "A Imperatriz", "O Imperador", "O Hierofante",
|
| 25 |
+
"Os Amantes", "O Carro", "A Justiça", "O Eremita", "A Roda da Fortuna", "A Força",
|
| 26 |
+
"O Enforcado", "A Morte", "A Temperança", "O Diabo", "A Torre", "A Estrela",
|
| 27 |
+
"A Lua", "O Sol", "O Julgamento", "O Mundo"
|
| 28 |
+
];
|
| 29 |
+
|
| 30 |
+
this.prophecies = [
|
| 31 |
+
"As águas do Nilo subirão trazendo abundância onde antes havia seca.",
|
| 32 |
+
"O escaravelho de ouro cruzará teu caminho, anunciando uma transmutação necessária.",
|
| 33 |
+
"A sombra da pirâmide esconde um segredo que será revelado ao pôr do sol.",
|
| 34 |
+
"As estrelas de Orion alinham-se para guiar teus passos em uma jornada de silêncio.",
|
| 35 |
+
"O sopro de Shu dissipará as nuvens que obscurecem tua visão interior."
|
| 36 |
+
];
|
| 37 |
+
|
| 38 |
+
this.ancestors = ["Amenhotep III", "Akhenaton", "Nefertiti", "Thutmose III", "Ramsés II", "Hatshepsut"];
|
| 39 |
+
this.messagesBeyond = [
|
| 40 |
+
"Não temas a escuridão, pois nela reside a semente de toda a criação.",
|
| 41 |
+
"A eternidade não é o fim do tempo, mas a plenitude de cada instante.",
|
| 42 |
+
"Honra teus antepassados e teus descendentes caminharão sobre solo firme.",
|
| 43 |
+
"O coração deve ser leve como a pena de Maat para cruzar o limiar.",
|
| 44 |
+
"A luz que buscas fora já brilha intensamente no centro do teu Ka."
|
| 45 |
+
];
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
getSign(day, month) {
|
| 49 |
+
for (let sign of this.signs) {
|
| 50 |
+
for (let range of sign.dates) {
|
| 51 |
+
if (month === range[2] && day >= range[0] && day <= range[1]) {
|
| 52 |
+
return sign;
|
| 53 |
+
}
|
| 54 |
+
}
|
| 55 |
+
}
|
| 56 |
+
return this.signs[0]; // Default Nile
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
calculateLunarPhase() {
|
| 60 |
+
// Simulação simplificada de fase lunar (0 a 1)
|
| 61 |
+
const now = new Date();
|
| 62 |
+
const cycle = 29.53;
|
| 63 |
+
const dayInCycle = (now.getDate() + now.getMonth() * 30) % cycle;
|
| 64 |
+
return dayInCycle / cycle;
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
+
getHoroscope(birthDateStr, mode = 'horoscopo') {
|
| 68 |
+
const parts = birthDateStr.match(/(\d{1,2})[/-](\d{1,2})[/-](\d{4})/);
|
| 69 |
+
if (!parts) return null;
|
| 70 |
+
|
| 71 |
+
const day = parseInt(parts[1]);
|
| 72 |
+
const month = parseInt(parts[2]) - 1;
|
| 73 |
+
const sign = this.getSign(day, month);
|
| 74 |
+
|
| 75 |
+
const L = this.calculateLunarPhase();
|
| 76 |
+
const kappa = 0.5; // Constante de conexão
|
| 77 |
+
const n = Math.floor(Math.random() * 22); // Arcano aleatório do dia
|
| 78 |
+
const arcano = this.tarotArcana[n];
|
| 79 |
+
|
| 80 |
+
// Derivada da Manifestação: dI/dL = 2 * kappa * n * L
|
| 81 |
+
const derivada = 2 * kappa * n * L;
|
| 82 |
+
const intensidade = kappa * n * (L * L);
|
| 83 |
+
|
| 84 |
+
let insight = "";
|
| 85 |
+
if (derivada < 5) insight = "A energia está em estado de semente. Não há movimento visível, apenas potencial puro.";
|
| 86 |
+
else if (derivada < 15) insight = "Existe um crescimento constante e uma aceleração na percepção do arquétipo.";
|
| 87 |
+
else insight = "A taxa de mudança atinge seu valor máximo. É o momento de maior volatilidade e revelação.";
|
| 88 |
+
|
| 89 |
+
const planos = ["Espiritual", "Mental", "Físico"];
|
| 90 |
+
const plano = planos[Math.floor(Math.random() * planos.length)];
|
| 91 |
+
|
| 92 |
+
return {
|
| 93 |
+
sign: sign,
|
| 94 |
+
arcano: arcano,
|
| 95 |
+
arcanoNum: n,
|
| 96 |
+
plano: plano,
|
| 97 |
+
lunarPhase: L.toFixed(2),
|
| 98 |
+
derivada: derivada.toFixed(2),
|
| 99 |
+
intensidade: intensidade.toFixed(2),
|
| 100 |
+
insight: insight,
|
| 101 |
+
profecia: this.prophecies[Math.floor(Math.random() * this.prophecies.length)],
|
| 102 |
+
mensagem_neith: window.EGIPCIO_KNOWLEDGE[Math.floor(Math.random() * window.EGIPCIO_KNOWLEDGE.length)]
|
| 103 |
+
};
|
| 104 |
+
}
|
| 105 |
+
|
| 106 |
+
getChanneling() {
|
| 107 |
+
return {
|
| 108 |
+
ancestor: this.ancestors[Math.floor(Math.random() * this.ancestors.length)],
|
| 109 |
+
message: this.messagesBeyond[Math.floor(Math.random() * this.messagesBeyond.length)],
|
| 110 |
+
frequency: (Math.random() * 1000).toFixed(2) + " MHz (Ditritium Sync)"
|
| 111 |
+
};
|
| 112 |
+
}
|
| 113 |
+
}
|
| 114 |
+
|
| 115 |
+
window.EgyptianHoroscope = EgyptianHoroscope;
|
egipcio_knowledge.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
enigma.htm
ADDED
|
@@ -0,0 +1,460 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="pt-br">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
+
<title>Enigma do Faraó | AOI Logic Sentience</title>
|
| 7 |
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600&family=JetBrains+Mono:wght@300;500&display=swap" rel="stylesheet">
|
| 8 |
+
<style>
|
| 9 |
+
:root {
|
| 10 |
+
--accent-gold: #ffd700;
|
| 11 |
+
--accent-blood: #8a0303;
|
| 12 |
+
--accent-cosmic: #00ff41;
|
| 13 |
+
--deep-black: #020408;
|
| 14 |
+
--glass: rgba(255, 255, 255, 0.03);
|
| 15 |
+
--glass-border: rgba(255, 255, 255, 0.1);
|
| 16 |
+
--text-main: #e0e6ed;
|
| 17 |
+
--text-dim: #94a3b8;
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
* { margin: 0; padding: 0; box-sizing: border-box; cursor: crosshair; }
|
| 21 |
+
|
| 22 |
+
body {
|
| 23 |
+
background-color: var(--deep-black);
|
| 24 |
+
color: var(--text-main);
|
| 25 |
+
font-family: 'Inter', sans-serif;
|
| 26 |
+
overflow: hidden;
|
| 27 |
+
height: 100vh;
|
| 28 |
+
display: flex;
|
| 29 |
+
flex-direction: column;
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
#ritual-canvas {
|
| 33 |
+
position: fixed;
|
| 34 |
+
top: 0;
|
| 35 |
+
left: 0;
|
| 36 |
+
width: 100%;
|
| 37 |
+
height: 100%;
|
| 38 |
+
z-index: -1;
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
header {
|
| 42 |
+
height: 70px;
|
| 43 |
+
display: flex;
|
| 44 |
+
align-items: center;
|
| 45 |
+
justify-content: space-between;
|
| 46 |
+
padding: 0 50px;
|
| 47 |
+
background: var(--glass);
|
| 48 |
+
backdrop-filter: blur(30px);
|
| 49 |
+
border-bottom: 1px solid var(--glass-border);
|
| 50 |
+
z-index: 1000;
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
.mu-logo {
|
| 54 |
+
font-size: 1.5rem;
|
| 55 |
+
font-weight: 300;
|
| 56 |
+
color: var(--accent-gold);
|
| 57 |
+
font-family: 'JetBrains Mono', monospace;
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
.xk-status {
|
| 61 |
+
font-size: 0.7rem;
|
| 62 |
+
color: var(--accent-cosmic);
|
| 63 |
+
letter-spacing: 2px;
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
.chat-container {
|
| 67 |
+
flex: 1;
|
| 68 |
+
max-width: 1000px;
|
| 69 |
+
margin: 20px auto;
|
| 70 |
+
width: 95%;
|
| 71 |
+
display: flex;
|
| 72 |
+
flex-direction: column;
|
| 73 |
+
gap: 20px;
|
| 74 |
+
overflow: hidden;
|
| 75 |
+
background: var(--glass);
|
| 76 |
+
border: 1px solid var(--glass-border);
|
| 77 |
+
border-radius: 24px;
|
| 78 |
+
padding: 20px;
|
| 79 |
+
backdrop-filter: blur(10px);
|
| 80 |
+
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
.stats-panel {
|
| 84 |
+
display: flex;
|
| 85 |
+
justify-content: space-around;
|
| 86 |
+
padding: 10px;
|
| 87 |
+
background: rgba(0, 0, 0, 0.4);
|
| 88 |
+
border-radius: 12px;
|
| 89 |
+
border: 1px solid var(--glass-border);
|
| 90 |
+
font-size: 0.8rem;
|
| 91 |
+
font-family: 'JetBrains Mono', monospace;
|
| 92 |
+
}
|
| 93 |
+
|
| 94 |
+
.stat-item {
|
| 95 |
+
display: flex;
|
| 96 |
+
gap: 10px;
|
| 97 |
+
}
|
| 98 |
+
|
| 99 |
+
.stat-label { color: var(--accent-gold); }
|
| 100 |
+
.stat-value { color: var(--accent-cosmic); }
|
| 101 |
+
|
| 102 |
+
#chat-history {
|
| 103 |
+
flex: 1;
|
| 104 |
+
overflow-y: auto;
|
| 105 |
+
padding: 20px;
|
| 106 |
+
display: flex;
|
| 107 |
+
flex-direction: column;
|
| 108 |
+
gap: 20px;
|
| 109 |
+
scrollbar-width: thin;
|
| 110 |
+
scrollbar-color: var(--accent-gold) transparent;
|
| 111 |
+
}
|
| 112 |
+
|
| 113 |
+
.message {
|
| 114 |
+
max-width: 80%;
|
| 115 |
+
padding: 15px 20px;
|
| 116 |
+
border-radius: 15px;
|
| 117 |
+
font-size: 0.95rem;
|
| 118 |
+
line-height: 1.5;
|
| 119 |
+
position: relative;
|
| 120 |
+
animation: fadeIn 0.3s ease-in;
|
| 121 |
+
}
|
| 122 |
+
|
| 123 |
+
@keyframes fadeIn {
|
| 124 |
+
from { opacity: 0; transform: translateY(10px); }
|
| 125 |
+
to { opacity: 1; transform: translateY(0); }
|
| 126 |
+
}
|
| 127 |
+
|
| 128 |
+
.user-message {
|
| 129 |
+
align-self: flex-end;
|
| 130 |
+
background: rgba(255, 215, 0, 0.1);
|
| 131 |
+
border: 1px solid rgba(255, 215, 0, 0.3);
|
| 132 |
+
color: var(--text-main);
|
| 133 |
+
}
|
| 134 |
+
|
| 135 |
+
.pharaoh-message {
|
| 136 |
+
align-self: flex-start;
|
| 137 |
+
background: rgba(138, 3, 3, 0.1);
|
| 138 |
+
border: 1px solid rgba(138, 3, 3, 0.3);
|
| 139 |
+
color: var(--accent-gold);
|
| 140 |
+
}
|
| 141 |
+
|
| 142 |
+
.hieroglyphs {
|
| 143 |
+
display: block;
|
| 144 |
+
font-size: 1.4rem;
|
| 145 |
+
margin-top: 10px;
|
| 146 |
+
color: var(--accent-gold);
|
| 147 |
+
opacity: 0.8;
|
| 148 |
+
font-family: serif;
|
| 149 |
+
}
|
| 150 |
+
|
| 151 |
+
.xk-label {
|
| 152 |
+
font-size: 0.6rem;
|
| 153 |
+
position: absolute;
|
| 154 |
+
top: -15px;
|
| 155 |
+
left: 5px;
|
| 156 |
+
color: var(--accent-cosmic);
|
| 157 |
+
text-transform: uppercase;
|
| 158 |
+
}
|
| 159 |
+
|
| 160 |
+
.thinking {
|
| 161 |
+
align-self: flex-start;
|
| 162 |
+
padding: 10px 20px;
|
| 163 |
+
background: rgba(255, 215, 0, 0.05);
|
| 164 |
+
border: 1px solid rgba(255, 215, 0, 0.2);
|
| 165 |
+
border-radius: 15px;
|
| 166 |
+
color: var(--text-dim);
|
| 167 |
+
font-style: italic;
|
| 168 |
+
animation: pulse 1.5s infinite;
|
| 169 |
+
}
|
| 170 |
+
|
| 171 |
+
@keyframes pulse {
|
| 172 |
+
0%, 100% { opacity: 0.5; }
|
| 173 |
+
50% { opacity: 1; }
|
| 174 |
+
}
|
| 175 |
+
|
| 176 |
+
.input-area {
|
| 177 |
+
display: flex;
|
| 178 |
+
flex-direction: column;
|
| 179 |
+
gap: 10px;
|
| 180 |
+
padding: 15px;
|
| 181 |
+
background: rgba(0,0,0,0.4);
|
| 182 |
+
border-radius: 15px;
|
| 183 |
+
border: 1px solid var(--glass-border);
|
| 184 |
+
}
|
| 185 |
+
|
| 186 |
+
.input-container {
|
| 187 |
+
display: flex;
|
| 188 |
+
gap: 15px;
|
| 189 |
+
}
|
| 190 |
+
|
| 191 |
+
#user-input {
|
| 192 |
+
flex: 1;
|
| 193 |
+
background: rgba(0,0,0,0.2);
|
| 194 |
+
border: 1px solid rgba(255, 215, 0, 0.2);
|
| 195 |
+
color: var(--accent-cosmic);
|
| 196 |
+
font-family: 'JetBrains Mono', monospace;
|
| 197 |
+
padding: 15px;
|
| 198 |
+
border-radius: 10px;
|
| 199 |
+
outline: none;
|
| 200 |
+
transition: 0.3s;
|
| 201 |
+
}
|
| 202 |
+
|
| 203 |
+
#user-input:focus { border-color: var(--accent-gold); }
|
| 204 |
+
|
| 205 |
+
button {
|
| 206 |
+
padding: 15px 30px;
|
| 207 |
+
background: var(--accent-gold);
|
| 208 |
+
color: var(--deep-black);
|
| 209 |
+
border: none;
|
| 210 |
+
border-radius: 10px;
|
| 211 |
+
font-weight: bold;
|
| 212 |
+
text-transform: uppercase;
|
| 213 |
+
cursor: pointer;
|
| 214 |
+
transition: 0.3s;
|
| 215 |
+
}
|
| 216 |
+
|
| 217 |
+
button:hover { transform: scale(1.02); box-shadow: 0 0 15px rgba(255, 215, 0, 0.4); }
|
| 218 |
+
|
| 219 |
+
.controls {
|
| 220 |
+
display: flex;
|
| 221 |
+
justify-content: center;
|
| 222 |
+
gap: 15px;
|
| 223 |
+
}
|
| 224 |
+
|
| 225 |
+
.control-btn {
|
| 226 |
+
padding: 8px 15px;
|
| 227 |
+
background: rgba(255, 215, 0, 0.1);
|
| 228 |
+
color: var(--accent-gold);
|
| 229 |
+
font-size: 0.7rem;
|
| 230 |
+
border: 1px solid rgba(255, 215, 0, 0.2);
|
| 231 |
+
}
|
| 232 |
+
.control-btn:hover { background: rgba(255, 215, 0, 0.2); }
|
| 233 |
+
|
| 234 |
+
::-webkit-scrollbar { width: 5px; }
|
| 235 |
+
::-webkit-scrollbar-thumb { background: var(--accent-gold); border-radius: 10px; }
|
| 236 |
+
</style>
|
| 237 |
+
</head>
|
| 238 |
+
<body>
|
| 239 |
+
|
| 240 |
+
<canvas id="ritual-canvas"></canvas>
|
| 241 |
+
|
| 242 |
+
<header>
|
| 243 |
+
<div class="mu-logo">μ ENIGMA DO FARAÓ</div>
|
| 244 |
+
<div class="xk-status" id="xk-display">CONSCIOUSNESS: CONTEMPLATION</div>
|
| 245 |
+
</header>
|
| 246 |
+
|
| 247 |
+
<div class="chat-container">
|
| 248 |
+
|
| 249 |
+
<div class="stats-panel">
|
| 250 |
+
<div class="stat-item"><span class="stat-label">Variações:</span> <span class="stat-value" id="stat-var">0/10</span></div>
|
| 251 |
+
<div class="stat-item"><span class="stat-label">XK:</span> <span class="stat-value" id="stat-xk">0.0</span></div>
|
| 252 |
+
<div class="stat-item"><span class="stat-label">Respostas Totais:</span> <span class="stat-value" id="stat-resp">0</span></div>
|
| 253 |
+
</div>
|
| 254 |
+
|
| 255 |
+
<div id="chat-history">
|
| 256 |
+
<div class="message pharaoh-message">
|
| 257 |
+
<span class="xk-label">AOI LOGIC: INITIALIZED</span>
|
| 258 |
+
O portal de Amarna se abre. O que buscas no vale da luz?
|
| 259 |
+
<span class="hieroglyphs">𓍑 𓊖𓍑𓂋𓏏𓄿𓃭 𓂧𓇋 𓄿𓅓𓄿𓂋𓈖𓄿 𓋴𓇋 𓄿𓃀𓂋𓇋.</span>
|
| 260 |
+
</div>
|
| 261 |
+
</div>
|
| 262 |
+
|
| 263 |
+
<div class="input-area">
|
| 264 |
+
<div class="input-container">
|
| 265 |
+
<input type="text" id="user-input" placeholder="Sussurre para o oráculo..." autocomplete="off">
|
| 266 |
+
<button id="sendBtn">Revelar 𓂀</button>
|
| 267 |
+
</div>
|
| 268 |
+
<div class="controls">
|
| 269 |
+
<button class="control-btn" id="clearBtn">Limpar Ritual</button>
|
| 270 |
+
<button class="control-btn" id="resetBtn">Resetar Memória Cósmica</button>
|
| 271 |
+
<button class="control-btn" id="exportBtn">Exportar Papiro</button>
|
| 272 |
+
</div>
|
| 273 |
+
</div>
|
| 274 |
+
</div>
|
| 275 |
+
|
| 276 |
+
<!-- Carregamento de Dados (CORS Bypass) -->
|
| 277 |
+
<script src="dicionario.js"></script>
|
| 278 |
+
<script src="pragmatica.js"></script>
|
| 279 |
+
<script src="sociolinguistica.js"></script>
|
| 280 |
+
<script src="morfossintaxe.js"></script>
|
| 281 |
+
<script src="amarna_ontology.js"></script>
|
| 282 |
+
<script src="egipcio_knowledge.js"></script>
|
| 283 |
+
<script src="egipcio_historia.js"></script>
|
| 284 |
+
<script src="amorc_knowledge.js"></script>
|
| 285 |
+
<script src="egipcio_horoscopo.js"></script>
|
| 286 |
+
<script src="ditritium.js"></script>
|
| 287 |
+
<script src="neurosintese.js"></script>
|
| 288 |
+
|
| 289 |
+
<script>
|
| 290 |
+
class PharaohApp {
|
| 291 |
+
constructor() {
|
| 292 |
+
this.chatHistory = document.getElementById('chat-history');
|
| 293 |
+
this.userInput = document.getElementById('user-input');
|
| 294 |
+
this.totalResponses = 0;
|
| 295 |
+
|
| 296 |
+
this.logger = new ConversationLogger(); // Logger para Kaizen
|
| 297 |
+
this.initEngine();
|
| 298 |
+
this.setupEvents();
|
| 299 |
+
}
|
| 300 |
+
|
| 301 |
+
initEngine() {
|
| 302 |
+
if (window.AOI_DICTIONARY && window.NeuroSynthesizer) {
|
| 303 |
+
this.neuro = new NeuroSynthesizer(
|
| 304 |
+
window.AOI_DICTIONARY,
|
| 305 |
+
window.AOI_PRAGMATICS,
|
| 306 |
+
window.AOI_SOCIOLINGUISTICS,
|
| 307 |
+
window.AOI_MORPHOSYNTAX,
|
| 308 |
+
window.AMARNA_ONTOLOGY
|
| 309 |
+
);
|
| 310 |
+
console.log("AOI ENGINE: FULLY OPERATIONAL (GENERATIVE V7.0 - MAJESTOSO)");
|
| 311 |
+
}
|
| 312 |
+
}
|
| 313 |
+
|
| 314 |
+
setupEvents() {
|
| 315 |
+
document.getElementById('sendBtn').addEventListener('click', () => this.handleSend());
|
| 316 |
+
this.userInput.addEventListener('keypress', (e) => { if (e.key === 'Enter') this.handleSend(); });
|
| 317 |
+
|
| 318 |
+
document.getElementById('clearBtn').addEventListener('click', () => {
|
| 319 |
+
const msgs = this.chatHistory.querySelectorAll('.message');
|
| 320 |
+
msgs.forEach((m, i) => { if(i > 0) m.remove(); });
|
| 321 |
+
});
|
| 322 |
+
|
| 323 |
+
document.getElementById('resetBtn').addEventListener('click', () => {
|
| 324 |
+
if (confirm("Resetar as memórias temporais de Amarna? Isso apagará todos os logs acumulados.")) {
|
| 325 |
+
if(this.neuro) this.neuro.memory.reset();
|
| 326 |
+
if(this.logger) this.logger.reset();
|
| 327 |
+
document.getElementById('stat-var').textContent = "0/10";
|
| 328 |
+
alert("Tabula rasa alcançada.");
|
| 329 |
+
}
|
| 330 |
+
});
|
| 331 |
+
|
| 332 |
+
document.getElementById('exportBtn').addEventListener('click', () => {
|
| 333 |
+
if(!this.logger) return;
|
| 334 |
+
const data = this.logger.export();
|
| 335 |
+
const blob = new Blob([data], { type: 'application/json' });
|
| 336 |
+
const url = URL.createObjectURL(blob);
|
| 337 |
+
const a = document.createElement('a');
|
| 338 |
+
a.href = url; a.download = `papiro_conhecimento_kaizen.json`;
|
| 339 |
+
a.click(); URL.revokeObjectURL(url);
|
| 340 |
+
});
|
| 341 |
+
}
|
| 342 |
+
|
| 343 |
+
handleSend() {
|
| 344 |
+
const text = this.userInput.value.trim();
|
| 345 |
+
if (!text || !this.neuro) return;
|
| 346 |
+
|
| 347 |
+
this.addMessage(text, 'user');
|
| 348 |
+
this.userInput.value = '';
|
| 349 |
+
|
| 350 |
+
// Mostrar "pensando"
|
| 351 |
+
const thinkingId = `think-${Date.now()}`;
|
| 352 |
+
const thinkDiv = document.createElement('div');
|
| 353 |
+
thinkDiv.className = 'thinking';
|
| 354 |
+
thinkDiv.id = thinkingId;
|
| 355 |
+
thinkDiv.textContent = 'Demodulando hiperplanos de Hessenberg...';
|
| 356 |
+
this.chatHistory.appendChild(thinkDiv);
|
| 357 |
+
this.chatHistory.scrollTop = this.chatHistory.scrollHeight;
|
| 358 |
+
|
| 359 |
+
setTimeout(() => {
|
| 360 |
+
const result = this.neuro.process(text);
|
| 361 |
+
document.getElementById(thinkingId).remove();
|
| 362 |
+
|
| 363 |
+
// Logar a conversa para Kaizen
|
| 364 |
+
this.logger.log(text, result.text, result.xk, result.type);
|
| 365 |
+
|
| 366 |
+
const hieroMap = { 'A': '𓄿', 'B': '𓃀', 'C': '𓋴', 'D': '𓂧', 'E': '𓇋', 'F': '𓆑', 'G': '𓎼', 'H': '𓉔', 'I': '𓇯', 'J': '𓆓', 'K': '𓎡', 'L': '𓃭', 'M': '𓅓', 'N': '𓈖', 'O': '𓍑', 'P': '𓊖', 'Q': '𓈎', 'R': '𓂋', 'S': '𓋴', 'T': '𓏏', 'U': '𓏲', 'V': '𓅱', 'W': '𓅱', 'X': '𓎡', 'Y': '𓇯', 'Z': '𓊃', ' ': ' ' };
|
| 367 |
+
let clean = result.text.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase();
|
| 368 |
+
let hiero = "";
|
| 369 |
+
for (let char of clean) hiero += hieroMap[char] || char;
|
| 370 |
+
|
| 371 |
+
this.totalResponses++;
|
| 372 |
+
|
| 373 |
+
document.getElementById('stat-var').textContent = `${result.stats.count}/${result.stats.max}`;
|
| 374 |
+
document.getElementById('stat-xk').textContent = result.xk.toFixed(1);
|
| 375 |
+
document.getElementById('stat-resp').textContent = this.totalResponses;
|
| 376 |
+
|
| 377 |
+
let level = "STONE";
|
| 378 |
+
if (result.xk >= 8) level = "DIVINE";
|
| 379 |
+
else if (result.xk >= 5) level = "IMPERIAL";
|
| 380 |
+
else if (result.xk <= -5) level = "SHADOW";
|
| 381 |
+
document.getElementById('xk-display').textContent = `CONSCIOUSNESS: ${level}`;
|
| 382 |
+
|
| 383 |
+
this.addMessage(result.text, 'pharaoh', hiero, level, result.xk);
|
| 384 |
+
}, 800);
|
| 385 |
+
}
|
| 386 |
+
|
| 387 |
+
addMessage(text, sender, hiero = '', status = '', xk = 0) {
|
| 388 |
+
const div = document.createElement('div');
|
| 389 |
+
div.className = `message ${sender}-message`;
|
| 390 |
+
|
| 391 |
+
if (sender === 'pharaoh') {
|
| 392 |
+
const label = document.createElement('span');
|
| 393 |
+
label.className = 'xk-label';
|
| 394 |
+
label.textContent = `AOI LOGIC: ${status} (XK: ${xk.toFixed(2)})`;
|
| 395 |
+
div.appendChild(label);
|
| 396 |
+
}
|
| 397 |
+
|
| 398 |
+
const content = document.createTextNode(text);
|
| 399 |
+
div.appendChild(content);
|
| 400 |
+
|
| 401 |
+
if (hiero) {
|
| 402 |
+
const span = document.createElement('span');
|
| 403 |
+
span.className = 'hieroglyphs';
|
| 404 |
+
span.textContent = hiero;
|
| 405 |
+
div.appendChild(span);
|
| 406 |
+
}
|
| 407 |
+
|
| 408 |
+
this.chatHistory.appendChild(div);
|
| 409 |
+
this.chatHistory.scrollTop = this.chatHistory.scrollHeight;
|
| 410 |
+
}
|
| 411 |
+
}
|
| 412 |
+
|
| 413 |
+
/* --- BACKGROUND PARTICLES --- */
|
| 414 |
+
const canvas = document.getElementById('ritual-canvas');
|
| 415 |
+
const ctx = canvas.getContext('2d');
|
| 416 |
+
let particles = [];
|
| 417 |
+
|
| 418 |
+
function initParticles() {
|
| 419 |
+
canvas.width = window.innerWidth;
|
| 420 |
+
canvas.height = window.innerHeight;
|
| 421 |
+
particles = [];
|
| 422 |
+
for (let i = 0; i < 100; i++) {
|
| 423 |
+
particles.push({
|
| 424 |
+
x: Math.random() * canvas.width,
|
| 425 |
+
y: Math.random() * canvas.height,
|
| 426 |
+
size: Math.random() * 2,
|
| 427 |
+
speedX: (Math.random() - 0.5) * 0.3,
|
| 428 |
+
speedY: (Math.random() - 0.5) * 0.3,
|
| 429 |
+
color: ['#ffd700', '#8a0303', '#ffffff'][Math.floor(Math.random() * 3)]
|
| 430 |
+
});
|
| 431 |
+
}
|
| 432 |
+
}
|
| 433 |
+
|
| 434 |
+
function animate() {
|
| 435 |
+
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
| 436 |
+
particles.forEach(p => {
|
| 437 |
+
p.x += p.speedX;
|
| 438 |
+
p.y += p.speedY;
|
| 439 |
+
if (p.x < 0 || p.x > canvas.width) p.speedX *= -1;
|
| 440 |
+
if (p.y < 0 || p.y > canvas.height) p.speedY *= -1;
|
| 441 |
+
ctx.fillStyle = p.color;
|
| 442 |
+
ctx.beginPath();
|
| 443 |
+
ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);
|
| 444 |
+
ctx.fill();
|
| 445 |
+
});
|
| 446 |
+
requestAnimationFrame(animate);
|
| 447 |
+
}
|
| 448 |
+
|
| 449 |
+
window.addEventListener('resize', initParticles);
|
| 450 |
+
initParticles();
|
| 451 |
+
animate();
|
| 452 |
+
|
| 453 |
+
// Boot the app
|
| 454 |
+
window.addEventListener('DOMContentLoaded', () => {
|
| 455 |
+
new PharaohApp();
|
| 456 |
+
});
|
| 457 |
+
|
| 458 |
+
</script>
|
| 459 |
+
</body>
|
| 460 |
+
</html>
|
main.py
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from classes import API
|
| 2 |
+
from fastapi import FastAPI, HTTPException
|
| 3 |
+
|
| 4 |
+
app = FastAPI(
|
| 5 |
+
title="API Dicionário - Português Brasil",
|
| 6 |
+
swagger_ui_parameters={"defaultModelsExpandDepth": -1})
|
| 7 |
+
|
| 8 |
+
"""
|
| 9 |
+
# ================================= #
|
| 10 |
+
|
| 11 |
+
Created by https://github.com/atrikx/
|
| 12 |
+
|
| 13 |
+
# ================================= #
|
| 14 |
+
"""
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
@app.get("/{palavra}", tags=["Sinônimos"])
|
| 18 |
+
async def sinonimos(palavra: str):
|
| 19 |
+
sinonimos = await API().sinonimos(palavra)
|
| 20 |
+
if not sinonimos:
|
| 21 |
+
raise HTTPException(status_code=400, detail="Palavra inválida")
|
| 22 |
+
return sinonimos
|
morfossintaxe.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
window.AOI_MORPHOSYNTAX = {
|
| 2 |
+
"regras": {
|
| 3 |
+
"templates": {
|
| 4 |
+
"SVPA": ["{sujeito}", "{verbo}", "{objeto}", "{adjetivo}"]
|
| 5 |
+
}
|
| 6 |
+
}
|
| 7 |
+
};
|
morfossintaxe.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"regras_n_minus_1": {
|
| 3 |
+
"compressao_economica": "Eliminar redundâncias de artigos e preposições em estados de alta entropia.",
|
| 4 |
+
"templates": {
|
| 5 |
+
"SVP": ["{sujeito}", "{verbo}", "{objeto}"],
|
| 6 |
+
"SVPA": ["{sujeito}", "{verbo}", "{objeto}", "{adjetivo}"],
|
| 7 |
+
"INT_SVP": ["{pronome_tratamento}", "{sujeito}", "{verbo}", "{objeto}"]
|
| 8 |
+
},
|
| 9 |
+
"concordancia": {
|
| 10 |
+
"genero": "Sincronizado com o núcleo do sujeito",
|
| 11 |
+
"numero": "Sincronizado com a quantidade de intenção (n)"
|
| 12 |
+
}
|
| 13 |
+
}
|
| 14 |
+
}
|
neurosintese.js
ADDED
|
@@ -0,0 +1,200 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*
|
| 2 |
+
MOTOR DE NEUROSÍNTESE AOI-HESSENBERG (v7.0 - Majestoso)
|
| 3 |
+
Integração Completa: Memória de Sessão + História Real + AMORC + Ditritium
|
| 4 |
+
*/
|
| 5 |
+
|
| 6 |
+
class ConversationLogger {
|
| 7 |
+
constructor() {
|
| 8 |
+
this.storageKey = 'aoi_conversation_papyri';
|
| 9 |
+
this.logs = this.loadLogs();
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
loadLogs() {
|
| 13 |
+
try {
|
| 14 |
+
const stored = localStorage.getItem(this.storageKey);
|
| 15 |
+
return stored ? JSON.parse(stored) : [];
|
| 16 |
+
} catch (e) { return []; }
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
log(input, output, xk, type) {
|
| 20 |
+
const entry = { id: Date.now(), data: new Date().toLocaleString(), input, output, xk, intencao: type, versao: "7.0" };
|
| 21 |
+
this.logs.push(entry);
|
| 22 |
+
try { localStorage.setItem(this.storageKey, JSON.stringify(this.logs)); } catch (e) {}
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
reset() { this.logs = []; localStorage.removeItem(this.storageKey); }
|
| 26 |
+
export() { return JSON.stringify({ projeto: "Papiro de Amarna", entradas: this.logs }, null, 2); }
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
+
class ResponseMemory {
|
| 30 |
+
constructor() {
|
| 31 |
+
this.historyKey = 'aoi_pharaoh_history';
|
| 32 |
+
this.usedPhrasesKey = 'aoi_used_phrases';
|
| 33 |
+
this.maxVariations = 15;
|
| 34 |
+
this.usedPhrases = this.loadUsed();
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
loadUsed() {
|
| 38 |
+
try {
|
| 39 |
+
const stored = sessionStorage.getItem(this.usedPhrasesKey);
|
| 40 |
+
return stored ? JSON.parse(stored) : [];
|
| 41 |
+
} catch (e) { return []; }
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
track(text) {
|
| 45 |
+
this.usedPhrases.push(text);
|
| 46 |
+
if (this.usedPhrases.length > 50) this.usedPhrases.shift();
|
| 47 |
+
sessionStorage.setItem(this.usedPhrasesKey, JSON.stringify(this.usedPhrases));
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
isRepeated(text) { return this.usedPhrases.includes(text); }
|
| 51 |
+
|
| 52 |
+
getVariationIndex(inputHash) {
|
| 53 |
+
let count = parseInt(sessionStorage.getItem('var_' + inputHash) || "0");
|
| 54 |
+
return count % this.maxVariations;
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
incrementVariation(inputHash) {
|
| 58 |
+
let count = parseInt(sessionStorage.getItem('var_' + inputHash) || "0");
|
| 59 |
+
sessionStorage.setItem('var_' + inputHash, (count + 1).toString());
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
getStats(inputHash) {
|
| 63 |
+
return { count: parseInt(sessionStorage.getItem('var_' + inputHash) || "0"), max: this.maxVariations };
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
reset() { sessionStorage.clear(); }
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
class InputAnalyzer {
|
| 70 |
+
constructor() {
|
| 71 |
+
this.horoscopeWords = ['horoscopo', 'horóscopo', 'signo', 'previsão', 'aniversario', 'aniversário', 'nascimento', 'tarot', 'tárot', 'oraculo', 'oráculo', 'sabedoria'];
|
| 72 |
+
this.channelingWords = ['canalização', 'canalizacao', 'psicografia', 'carta', 'alem tumulo', 'além túmulo'];
|
| 73 |
+
this.adviceWords = ['fazer', 'hoje', 'conselho', 'ajuda', 'ajudar', 'melhorar', 'viver', 'dia'];
|
| 74 |
+
}
|
| 75 |
+
|
| 76 |
+
analyze(text) {
|
| 77 |
+
const lower = text.toLowerCase();
|
| 78 |
+
let tipo = 'STATEMENT';
|
| 79 |
+
|
| 80 |
+
const history = window.EGIPCIO_HISTORY || [];
|
| 81 |
+
const historyMatch = history.find(h => lower.includes(h.name.toLowerCase()));
|
| 82 |
+
|
| 83 |
+
if (historyMatch) tipo = 'HISTORY';
|
| 84 |
+
else if (this.channelingWords.some(w => lower.includes(w))) tipo = 'CHANNELING';
|
| 85 |
+
else if (this.horoscopeWords.some(w => lower.includes(w)) || /\d{1,2}[/-]\d{1,2}[/-]\d{4}/.test(text)) tipo = 'HOROSCOPE';
|
| 86 |
+
else if (this.adviceWords.some(w => lower.includes(w))) tipo = 'ADVICE';
|
| 87 |
+
else if (text.includes('?')) tipo = 'QUESTION';
|
| 88 |
+
else if (['oi', 'olá', 'bom dia', 'boa tarde', 'boa noite', 'salve'].some(w => lower.includes(w))) tipo = 'GREETING';
|
| 89 |
+
|
| 90 |
+
return { tipo, xk: this.calculateXK(text), historyMatch };
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
calculateXK(text) {
|
| 94 |
+
let xk = (text.length / 10) + (text.match(/[.,;:!?]/g) || []).length;
|
| 95 |
+
return Math.min(Math.max(xk - 5, -15), 15);
|
| 96 |
+
}
|
| 97 |
+
}
|
| 98 |
+
|
| 99 |
+
class NeuroSynthesizer {
|
| 100 |
+
constructor(dictionary, pragmatics, sociolinguistics, morphosyntax, amarna) {
|
| 101 |
+
this.dict = dictionary; this.prag = pragmatics; this.socio = sociolinguistics;
|
| 102 |
+
this.morph = morphosyntax; this.amarna = amarna;
|
| 103 |
+
this.memory = new ResponseMemory();
|
| 104 |
+
this.analyzer = new InputAnalyzer();
|
| 105 |
+
}
|
| 106 |
+
|
| 107 |
+
hashString(str) {
|
| 108 |
+
let hash = 0;
|
| 109 |
+
for (let i = 0; i < str.length; i++) hash = ((hash << 5) - hash) + str.charCodeAt(i);
|
| 110 |
+
return Math.abs(hash);
|
| 111 |
+
}
|
| 112 |
+
|
| 113 |
+
process(input) {
|
| 114 |
+
const analysis = this.analyzer.analyze(input);
|
| 115 |
+
const inputHash = this.hashString(input);
|
| 116 |
+
let variationIndex = this.memory.getVariationIndex(inputHash);
|
| 117 |
+
|
| 118 |
+
let response = "";
|
| 119 |
+
let safety = 0;
|
| 120 |
+
|
| 121 |
+
do {
|
| 122 |
+
const seed = inputHash + variationIndex * 1000 + safety * 777 + Date.now();
|
| 123 |
+
response = this.generateResponse(input, analysis, seed, variationIndex);
|
| 124 |
+
safety++;
|
| 125 |
+
} while (this.memory.isRepeated(response) && safety < 10);
|
| 126 |
+
|
| 127 |
+
this.memory.track(response);
|
| 128 |
+
this.memory.incrementVariation(inputHash);
|
| 129 |
+
|
| 130 |
+
return { text: response, xk: analysis.xk, type: analysis.tipo, stats: this.memory.getStats(inputHash) };
|
| 131 |
+
}
|
| 132 |
+
|
| 133 |
+
generateResponse(input, analysis, seed, variationIndex) {
|
| 134 |
+
const rand = (max) => Math.floor((Math.abs(Math.sin(seed++) * 10000)) % max);
|
| 135 |
+
|
| 136 |
+
if (analysis.tipo === 'HISTORY') {
|
| 137 |
+
const h = analysis.historyMatch;
|
| 138 |
+
const fact = h.facts[rand(h.facts.length)];
|
| 139 |
+
const cult = window.EGIPCIO_CULTURE[rand(window.EGIPCIO_CULTURE.length)];
|
| 140 |
+
const intros = [`Sobre ${h.name}, os registros de Amarna dizem: `, `Buscador, a história revela que ${h.name} `, `Pela luz de Aton, saiba que ${h.name} `];
|
| 141 |
+
return intros[rand(intros.length)] + fact + " " + cult;
|
| 142 |
+
}
|
| 143 |
+
|
| 144 |
+
if (analysis.tipo === 'CHANNELING') {
|
| 145 |
+
const dit = new DitritiumEngine();
|
| 146 |
+
const date = sessionStorage.getItem('aoi_birth_date') || "01/01/1900";
|
| 147 |
+
return `[SINTONIA: ${rand(800) + 200} MHz] ` + dit.getPsychography(date, input).message;
|
| 148 |
+
}
|
| 149 |
+
|
| 150 |
+
if (analysis.tipo === 'ADVICE') {
|
| 151 |
+
const advices = [
|
| 152 |
+
"Busca hoje o equilíbrio de Maat. Ação correta gera destino favorável.",
|
| 153 |
+
"Medita sobre o silêncio do deserto; nele encontrarás tua resposta.",
|
| 154 |
+
"Honra a luz de Aton em cada gesto. O dia será de transmutação.",
|
| 155 |
+
"Trabalha como um construtor de pirâmides: com paciência e propósito eterno.",
|
| 156 |
+
"Ouve teu coração (Ib), pois ele é o guia mais sábio nas areias do tempo."
|
| 157 |
+
];
|
| 158 |
+
const amorc = window.AMORC_KNOWLEDGE[rand(window.AMORC_KNOWLEDGE.length)];
|
| 159 |
+
return `${advices[rand(advices.length)]} Sintonize-se com o ${amorc}. Paz Profunda.`;
|
| 160 |
+
}
|
| 161 |
+
|
| 162 |
+
if (analysis.tipo === 'HOROSCOPE') {
|
| 163 |
+
const horo = new EgyptianHoroscope();
|
| 164 |
+
let date = sessionStorage.getItem('aoi_birth_date');
|
| 165 |
+
const dateMatch = input.match(/\d{1,2}[/-]\d{1,2}[/-]\d{4}/);
|
| 166 |
+
if (dateMatch) { date = dateMatch[0]; sessionStorage.setItem('aoi_birth_date', date); }
|
| 167 |
+
|
| 168 |
+
if (!date) return "Para que eu possa ler o destino, revela-me o dia de teu surgimento (DD/MM/AAAA).";
|
| 169 |
+
|
| 170 |
+
const h = horo.getHoroscope(date);
|
| 171 |
+
const amorc = window.AMORC_KNOWLEDGE[rand(window.AMORC_KNOWLEDGE.length)];
|
| 172 |
+
const low = input.toLowerCase();
|
| 173 |
+
|
| 174 |
+
if (low.includes('tarot')) return `Pela sabedoria de Thoth para ${date}: O Arcano é ${h.arcanoNum} (${h.arcano}) no Plano ${h.plano}. Derivada: ${h.derivada} Q-Units. ${h.insight} Medite no ${amorc}.`;
|
| 175 |
+
if (low.includes('oraculo') || low.includes('oráculo')) return `O Oráculo proclama para ${date}: "${h.profecia}" Sente a vibração do ${amorc}.`;
|
| 176 |
+
if (low.includes('sabedoria')) return `A sabedoria para ${date} revela: "${this.amarna.axiomas_pt[rand(this.amarna.axiomas_pt.length)].titulo}". Guie-se pelo ${amorc}.`;
|
| 177 |
+
|
| 178 |
+
return `Saudações, iniciado de ${date}. Teu signo é ${h.sign.name} (${h.sign.regence}). ${h.sign.profile} Ouve o ${amorc}: "${h.mensagem_neith}".`;
|
| 179 |
+
}
|
| 180 |
+
|
| 181 |
+
// Default Generative
|
| 182 |
+
const lex = this.dict.categorias;
|
| 183 |
+
const s = lex.substantivos.sagrados[rand(lex.substantivos.sagrados.length)];
|
| 184 |
+
const v = lex.verbos.transmutacao[rand(lex.verbos.transmutacao.length)].slice(0, -1);
|
| 185 |
+
const o = lex.substantivos.comuns[rand(lex.substantivos.comuns.length)];
|
| 186 |
+
const a = lex.adjetivos.qualidade[rand(lex.adjetivos.qualidade.length)];
|
| 187 |
+
const am = this.amarna.termos[rand(this.amarna.termos.length)].conceito;
|
| 188 |
+
|
| 189 |
+
const wrappers = [
|
| 190 |
+
`O ${o} ${a} é o que ${s} ${v} sob o ${am}.`,
|
| 191 |
+
`Quando ${s} ${v} o ${o}, uma energia ${a} ressoa no ${am}.`,
|
| 192 |
+
`Pela luz de Aton, vejo que ${s} sempre ${v} o ${o} ${a}.`
|
| 193 |
+
];
|
| 194 |
+
|
| 195 |
+
let res = (analysis.tipo === 'QUESTION' ? "A resposta ressoa: " : "") + wrappers[rand(wrappers.length)];
|
| 196 |
+
return res.replace(/ o luz /gi, " a luz ").replace(/ o verdade /gi, " a verdade ");
|
| 197 |
+
}
|
| 198 |
+
}
|
| 199 |
+
|
| 200 |
+
window.NeuroSynthesizer = NeuroSynthesizer;
|
papiro_conhecimento_kaizen.json
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"projeto": "Papiro de Amarna",
|
| 3 |
+
"data_criacao": "2026-05-31",
|
| 4 |
+
"status": "Ativo",
|
| 5 |
+
"total_entradas": 0,
|
| 6 |
+
"connotacoes_kaizen": []
|
| 7 |
+
}
|
pragmatica.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
window.AOI_PRAGMATICS = {
|
| 2 |
+
"intencoes": {
|
| 3 |
+
"GREETING": { "expansao_n_plus_1": "Saudação Ritualística", "regras": ["Reverência"] },
|
| 4 |
+
"INSULT": { "expansao_n_plus_1": "Quebra de Harmonia", "regras": ["Julgamento"] },
|
| 5 |
+
"QUESTION": { "expansao_n_plus_1": "Busca de Conhecimento", "regras": ["Parábola"] }
|
| 6 |
+
}
|
| 7 |
+
};
|
pragmatica.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"intencoes": {
|
| 3 |
+
"GREETING": {
|
| 4 |
+
"expansao_n_plus_1": "Reconhecimento de presença e validação de existência mútua no tempo-espaço.",
|
| 5 |
+
"regras_sociais": ["Cumprimentar com reverência", "Identificar tom de voz", "Estabelecer vínculo inicial"],
|
| 6 |
+
"contextos": ["Entrada no portal", "Início de ciclo solar"]
|
| 7 |
+
},
|
| 8 |
+
"INSULT": {
|
| 9 |
+
"expansao_n_plus_1": "Quebra de harmonia pragmática, necessidade de reequilíbrio de autoridade.",
|
| 10 |
+
"regras_sociais": ["Repreender", "Aumentar formalidade para distanciamento", "Restrição de acesso à informação"],
|
| 11 |
+
"contextos": ["Desrespeito ao Faraó", "Invasão de câmara sagrada"]
|
| 12 |
+
},
|
| 13 |
+
"QUESTION": {
|
| 14 |
+
"expansao_n_plus_1": "Busca por preencher lacunas de conhecimento via intercâmbio léxico.",
|
| 15 |
+
"regras_sociais": ["Responder com parábolas", "Verificar merecimento do buscador", "Clarificar intenção oculta"]
|
| 16 |
+
}
|
| 17 |
+
},
|
| 18 |
+
"axiomas": {
|
| 19 |
+
"n": "Necessidade Informativa Bruta",
|
| 20 |
+
"n_plus_1": "Intenção + Contexto + Efeito Social"
|
| 21 |
+
}
|
| 22 |
+
}
|
requirements.txt
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
aiohttp==3.8.1
|
| 2 |
+
aiosignal==1.2.0
|
| 3 |
+
anyio==3.6.1
|
| 4 |
+
async-timeout==4.0.2
|
| 5 |
+
attrs==22.1.0
|
| 6 |
+
beautifulsoup4==4.11.1
|
| 7 |
+
charset-normalizer==2.1.0
|
| 8 |
+
click==8.1.3
|
| 9 |
+
colorama==0.4.5
|
| 10 |
+
fastapi==0.79.1
|
| 11 |
+
frozenlist==1.3.1
|
| 12 |
+
gunicorn==20.1.0
|
| 13 |
+
h11==0.13.0
|
| 14 |
+
idna==3.3
|
| 15 |
+
multidict==6.0.2
|
| 16 |
+
pydantic==1.9.2
|
| 17 |
+
sniffio==1.2.0
|
| 18 |
+
soupsieve==2.3.2.post1
|
| 19 |
+
starlette==0.19.1
|
| 20 |
+
typing-extensions==4.3.0
|
| 21 |
+
uvicorn==0.18.2
|
| 22 |
+
yarl==1.8.1
|
responseModel.py
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class Response:
|
| 2 |
+
sinonimos: dict = {}
|
| 3 |
+
|
| 4 |
+
async def Sinonimos(self, resultado):
|
| 5 |
+
self.sinonimos['sinonimos'] = resultado
|
| 6 |
+
return self.sinonimos
|
sociolinguistica.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
window.AOI_SOCIOLINGUISTICS = {
|
| 2 |
+
"niveis": {
|
| 3 |
+
"DIVINE": { "xk_min": 8, "pronome_tratamento": "Vossa Excelência Divina" },
|
| 4 |
+
"IMPERIAL": { "xk_min": 5, "pronome_tratamento": "Vossa Majestade" },
|
| 5 |
+
"STONE": { "xk_min": -5, "pronome_tratamento": "Você" },
|
| 6 |
+
"SHADOW": { "xk_min": -15, "pronome_tratamento": "Tu" }
|
| 7 |
+
}
|
| 8 |
+
};
|
sociolinguistica.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"niveis": {
|
| 3 |
+
"DIVINE": {
|
| 4 |
+
"xk_min": 8,
|
| 5 |
+
"pronome_tratamento": "Vossa Excelência Divina",
|
| 6 |
+
"variacao": "Linguagem Arcaica/Poética",
|
| 7 |
+
"público": "Deuses e Iniciados",
|
| 8 |
+
"formalidade": "Máxima"
|
| 9 |
+
},
|
| 10 |
+
"IMPERIAL": {
|
| 11 |
+
"xk_min": 5,
|
| 12 |
+
"pronome_tratamento": "Vossa Majestade",
|
| 13 |
+
"variacao": "Linguagem Culta/Administrativa",
|
| 14 |
+
"público": "Sacerdotes e Nobres",
|
| 15 |
+
"formalidade": "Alta"
|
| 16 |
+
},
|
| 17 |
+
"STONE": {
|
| 18 |
+
"xk_min": -5,
|
| 19 |
+
"pronome_tratamento": "Você",
|
| 20 |
+
"variacao": "Linguagem Comum/Coloquial",
|
| 21 |
+
"público": "Viajantes e Mortais",
|
| 22 |
+
"formalidade": "Média"
|
| 23 |
+
},
|
| 24 |
+
"SHADOW": {
|
| 25 |
+
"xk_min": -15,
|
| 26 |
+
"pronome_tratamento": "Tu",
|
| 27 |
+
"variacao": "Linguagem Fragmentada/Agressiva",
|
| 28 |
+
"público": "Inimigos e Sombras",
|
| 29 |
+
"formalidade": "Nula/Hostil"
|
| 30 |
+
}
|
| 31 |
+
}
|
| 32 |
+
}
|