Spaces:
Running
Running
| # 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 | |