1
resposta

[Projeto] Sistema de recomendação para uma loja de bebe.

Criei um codigo, simulando uma loja de bebe, com alguns produtos, inserindo o conceito de upsell e as orientações do exercicio.

import heapq

class Produto:
def init(self, nome, tamanho, cor, categoria, conversao_probabilidade):
self.nome = nome
self.tamanho = tamanho
self.cor = cor
self.categoria = categoria
self.conversao_probabilidade = conversao_probabilidade

def __repr__(self):
    return f"{self.nome} ({self.tamanho}, {self.cor}, {self.categoria})"

class AStarRecommendation:
def init(self, produtos, heuristica):
self.produtos = produtos
self.heuristica = heuristica # Função heurística
self.grafo = self.criar_grafo()

def criar_grafo(self):
    # Criando um grafo simplificado de produtos, onde cada produto se conecta ao próximo
    grafo = {}
    for produto in self.produtos:
        grafo[produto] = [p for p in self.produtos if p != produto]
    return grafo

def a_star(self, inicio, objetivo):
    fila_prioridade = []
    heapq.heappush(fila_prioridade, (0 + self.heuristica(inicio), 0, inicio))  # f = g + h
    visitados = set()
    caminhos = {}

    while fila_prioridade:
        _, g, atual = heapq.heappop(fila_prioridade)

        if atual in visitados:
            continue

        visitados.add(atual)
        if atual == objetivo:
            break

        for vizinho in self.grafo[atual]:
            if vizinho not in visitados:
                h = self.heuristica(vizinho)
                heapq.heappush(fila_prioridade, (g + 1 + h, g + 1, vizinho))  # g é o custo acumulado
                caminhos[vizinho] = atual

    # Recuperando o caminho
    caminho = []
    produto = objetivo
    while produto in caminhos:
        caminho.insert(0, produto)
        produto = caminhos[produto]
    return caminho

def heuristica(produto):
# Quanto maior a probabilidade de conversão, mais atraente é o produto
return -produto.conversao_probabilidade # Vamos minimizar a heurística (quanto menor, melhor)

Criando os produtos

body = Produto("Body", "RN", "Branco", "Roupa de Bebê", 0.9)
body_calca = Produto("Body + Calça", "RN", "Branco", "Roupa de Bebê", 0.8)
produtos = [body, body_calca]

Criando o sistema de recomendação

recomendador = AStarRecommendation(produtos, heuristica)

Definindo o produto de início e o objetivo

inicio = produtos[0] # Body
objetivo = produtos[1] # Body + Calça

Buscando o melhor caminho entre dois produtos

caminho_recomendado = recomendador.a_star(inicio, objetivo)

Exibindo a recomendação

print("Caminho recomendado:")
for p in caminho_recomendado:
print(p)

1 resposta

Olá, Ariana! Como vai?

Agradeço por compartilhar seu projeto com a comunidade Alura.

Chamou atenção a forma como você utilizou a IA como apoio criativo para estruturar o sistema de recomendação, adaptando a lógica de busca para um contexto real de loja de bebê. Sua iniciativa mostra uma boa leitura do problema, além de um uso consciente da IA como ferramenta para transformar conceitos teóricos em uma solução prática e coerente com a proposta da atividade.

Uma dica interessante para o futuro é continuar usando a IA como parceira de refinamento, pedindo sugestões de melhorias conceituais ou variações de abordagem, como comparar diferentes estratégias de recomendação. Esse tipo de exploração ajuda a fortalecer o pensamento crítico e amplia sua visão sobre como sistemas inteligentes podem evoluir em cenários reais.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!