import os, sys, json, requests, base64, re, unicodedata, time, random, urllib.parse from dotenv import load_dotenv print("\n" + "="*75) print(" 🌐 [PROJETO SINGULARIDADE] NÚCLEO SÍNCRONO GLOBAL (V. ABSOLUTA)") print("="*75) # ========================================== # 1. CARREGAMENTO DE INFRAESTRUTURA # ========================================== load_dotenv() GITHUB_TOKEN = os.getenv("GITHUB_TOKEN") GITHUB_REPO = os.getenv("GITHUB_REPO") GITHUB_USER = os.getenv("GITHUB_USER") GROQ_KEYS = [os.getenv("GROQ_API_KEY_1"), os.getenv("GROQ_API_KEY_2"), os.getenv("GROQ_API_KEY_3")] GROQ_KEYS = [k for k in GROQ_KEYS if k and "COLE_" not in k] GEMINI_KEYS = [os.getenv("GEMINI_API_KEY_1"), os.getenv("GEMINI_API_KEY_2")] GEMINI_KEYS = [k for k in GEMINI_KEYS if k and "SUA_" not in k] ZYTE_KEY = os.getenv("ZYTE_API_KEY") MODELOS_GROQ = ["llama3-8b-8192", "llama-3.3-70b-versatile"] ARQUIVO_HISTORICO = "historico_nexus.txt" # ========================================== # 2. SISTEMA DE MEMÓRIA # ========================================== def limpar_nome_arquivo(nome): nome = unicodedata.normalize('NFKD', str(nome)).encode('ASCII', 'ignore').decode('utf-8') nome = re.sub(r'[^a-zA-Z0-9 ]', '', nome) return nome.strip().lower().replace(" ", "_")[:60] + ".html" def extrair_json_seguro(texto): try: match = re.search(r'\{.*\}', texto, re.DOTALL) if match: return json.loads(match.group(0)) return json.loads(texto) except: return None def ja_foi_criado(nicho): if not os.path.exists(ARQUIVO_HISTORICO): return False with open(ARQUIVO_HISTORICO, "r", encoding="utf-8") as f: return nicho.lower() in f.read().lower() def registrar_criacao(nicho): with open(ARQUIVO_HISTORICO, "a", encoding="utf-8") as f: f.write(nicho + "\n") # ========================================== # 3. RASTREIO ZYTE / PREDITIVO # ========================================== def buscar_nichos_autonomos(): print("\n[👁️ ZYTE/SISTEMA] Rastreando o subconsciente B2B...") prefixos = ["calculadora b2b para ", "simulador financeiro de ", "calculo de roi para ", "estimativa de custo industrial para "] industrias = ["data centers", "logistica", "usinas solares", "agronegocio", "siderurgicas", "servidores cloud"] nicho_combinado = random.choice(prefixos) + random.choice(industrias) try: if ZYTE_KEY and "COLE_" not in ZYTE_KEY: query = urllib.parse.quote("calculadora de custo") res = requests.get(f"http://suggestqueries.google.com/complete/search?client=firefox&q={query}", timeout=10) if res.status_code == 200: for sug in json.loads(res.text)[1]: if len(sug) > 15 and not ja_foi_criado(sug): print(f" [DADOS REAIS] Tendência: {sug}") return sug except: pass while ja_foi_criado(nicho_combinado): nicho_combinado = random.choice(prefixos) + random.choice(industrias) + f" {random.randint(2024, 2030)}" print(f" [ALVO DEFINIDO] {nicho_combinado}") return nicho_combinado # ========================================== # 4. INTELIGÊNCIA ARTIFICIAL (REDUNDÂNCIA ATIVA) # ========================================== def estrategista_reserva_groq(nicho): print(" [⚠️ REDUNDÂNCIA] Acionando Groq para Estratégia...") prompt = f"Analise o nicho B2B: '{nicho}'. Retorne ESTRITAMENTE JSON: {{\"titulo_seo\": \"Titulo\", \"formula\": \"Matematica\"}}" for chave in GROQ_KEYS: headers = {"Authorization": f"Bearer {chave}", "Content-Type": "application/json"} for modelo in MODELOS_GROQ: try: res = requests.post("https://api.groq.com/openai/v1/chat/completions", headers=headers, json={"model": modelo, "messages": [{"role": "user", "content": prompt}], "temperature": 0.0}, timeout=15) if res.status_code == 200: return extrair_json_seguro(res.json()['choices'][0]['message']['content']) except: continue return None def motor_gemini(nicho): print("[1/4] 🧠 GEMINI: Processando Estratégia...") if not GEMINI_KEYS: return estrategista_reserva_groq(nicho) prompt = f"Analise o nicho B2B: '{nicho}'. Retorne ESTRITAMENTE JSON: {{\"titulo_seo\": \"Titulo\", \"formula\": \"Matematica\"}}" for chave in GEMINI_KEYS: try: res = requests.post(f"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key={chave}", json={"contents": [{"parts": [{"text": prompt}]}]}, timeout=10) if res.status_code == 200: print(" [✓] Mapeamento Gemini Concluido!") return extrair_json_seguro(res.json()['candidates'][0]['content']['parts'][0]['text']) except: continue print(" [❌ ERRO] Gemini falhou. Ativando Plano B...") return estrategista_reserva_groq(nicho) def motor_groq_template(estrategia): print("[2/4] ⚡ GROQ: Injetando Código no Template...") titulo = estrategia.get('titulo_seo', 'Ferramenta B2B') formula = estrategia.get('formula', '') prompt = f""" Crie o app B2B '{titulo}'. Regras: {formula} Gere APENAS UM JSON (Sem crases, sem markdown) com 'inputs_html' (os sliders) e 'javascript' (a logica e grafico). """ for chave in GROQ_KEYS: headers = {"Authorization": f"Bearer {chave}", "Content-Type": "application/json"} payload = {"model": MODELOS_GROQ[0], "messages": [{"role": "user", "content": prompt}], "temperature": 0.0, "response_format": {"type": "json_object"}} try: res = requests.post("https://api.groq.com/openai/v1/chat/completions", headers=headers, json=payload, timeout=20) if res.status_code == 200: print(f" [✓] Código injetável gerado!") return extrair_json_seguro(res.json()['choices'][0]['message']['content']) except: continue return None # ========================================== # 5. MONTAGEM E DEPLOY # ========================================== def deploy_github(file_name, content): print(f"[4/4] 🚀 GITHUB: Executando Deploy Global...") if not GITHUB_TOKEN: return False url = f"https://api.github.com/repos/{GITHUB_USER}/{GITHUB_REPO}/contents/{file_name}" headers = {"Authorization": f"token {GITHUB_TOKEN}", "Accept": "application/vnd.github.v3+json"} req_get = requests.get(url, headers=headers) sha = req_get.json().get('sha') if req_get.status_code == 200 else None payload = {"message": f"Deploy: {file_name}", "content": base64.b64encode(content.encode('utf-8')).decode('utf-8')} if sha: payload["sha"] = sha res = requests.put(url, headers=headers, json=payload) if res.status_code in [200, 201]: print(f"\n [✅ SUCESSO] ATIVO ONLINE: https://{GITHUB_USER}.github.io/{GITHUB_REPO}/{file_name}\n") return True return False def montar_e_publicar(pedido_original): estrategia = motor_gemini(pedido_original) if not estrategia: return False codigo = motor_groq_template(estrategia) if not codigo: return False print("[3/4] ⚙️ SISTEMA: Montando Peças...") try: with open("template_base.html", "r", encoding="utf-8") as f: molde = f.read() titulo = estrategia.get('titulo_seo', 'Ferramenta B2B') html_final = molde.replace("Estimativa de Custo Industrial para Usinas Solares 2026", titulo).replace("