# MEMÓRIA E APRENDIZADO DA IA (Estática — Fallback Local) # Este arquivo é o backup local. A memória principal vem do Supabase via /ensinar no bot. # Use este arquivo para produtos que você SEMPRE quer fixar, sem depender do banco de dados. import unicodedata # Dicionário de Memória Estática # Formato: "palavra chave do título" : "Como chamar o produto" LEARNED_PRODUCTS = { # Roupas "calça cargo": "Calça Cargo", "moletom jogger": "Calça Moletom", "vestido quadrilha": "Vestido Xadrez", "rash guard": "Rash Guard Compressão", "calcinha": "Calcinha", "cueca": "Cueca", "sutiã": "Sutiã", "lingerie": "Lingerie", "pijama": "Pijama", "meia": "Meia", "camiseta": "Camiseta", "camisa social": "Camisa Social", "jaqueta": "Jaqueta", "casaco": "Casaco", "shorts": "Shorts", # Calçados "tênis": "Tênis", "sandália": "Sandália", "sapato": "Sapato", "chinelo": "Chinelo", "bota": "Bota", # Tecnologia "iphone": "iPhone", "smart tv": "Smart TV", "notebook": "Notebook", "tablet": "Tablet", "airpods": "AirPods", # Casa "sabão em pó": "Sabão em Pó", "aspirador": "Aspirador de Pó", "fritadeira": "Airfryer", "cafeteira": "Cafeteira", # Beleza "protetor solar": "Protetor Solar", "perfume": "Perfume", "shampoo": "Shampoo", "condicionador": "Condicionador", # Esporte "haltere": "Haltere", "colchonete": "Colchonete", "bicicleta": "Bicicleta", "patins": "Patins", } def normalize(text): """Remove acentos e deixa em minúsculo para comparação robusta.""" return unicodedata.normalize('NFD', text).encode('ascii', 'ignore').decode('utf-8').lower() def get_full_prompt(title=""): """ Gera o prompt para a IA com base no título. Verifica a memória estática primeiro. Se achar, injeta como dica forte no prompt. """ base_prompt = "answer pt Descreva o nome do produto principal da imagem de forma curta e direta, em 3 palavras no máximo." if not title: return base_prompt title_lower = normalize(title) # Vasculha a memória para ver se o produto já foi ensinado for key, correct_name in LEARNED_PRODUCTS.items(): if normalize(key) in title_lower: # Injeta a memória ensinada como instrução forte no prompt return f"{base_prompt} Importante: o produto na imagem é um(a) {correct_name}. Responda apenas '{correct_name}'." # Se não achar na memória, ela tenta identificar sozinha return base_prompt