Spaces:
Paused
Paused
File size: 1,416 Bytes
74aaccc | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | import gradio as gr
from env import EcommerceEnv
from models import Action
import random
def simulate():
env = EcommerceEnv()
obs = env.reset()
log = ""
total_reward = 0
steps = 0
clicks = 0
purchases = 0
done = False
while not done:
# simple agent
action = Action(recommended_product=random.randint(1, 3))
obs, reward, done, _ = env.step(action)
steps += 1
total_reward += reward.score
if reward.score == 1.0:
purchases += 1
elif reward.score > 0:
clicks += 1
log += f"Step {steps} → Recommended: {action.recommended_product} | Reward: {reward.score}\n"
# Metrics
ctr = clicks / steps if steps else 0
conversion = purchases / steps if steps else 0
log += "\n--- SESSION SUMMARY ---\n"
log += f"Total Steps: {steps}\n"
log += f"Total Reward: {round(total_reward,2)}\n"
log += f"Clicks: {clicks}\n"
log += f"Purchases: {purchases}\n"
log += f"CTR: {round(ctr,2)}\n"
log += f"Conversion Rate: {round(conversion,2)}\n"
return log
gr.Interface(
fn=simulate,
inputs=[],
outputs="text",
title="🛒 AI E-commerce Recommendation Simulator",
description="Simulates how an AI agent recommends products and optimizes user engagement & conversions."
).launch(share=True) |