Spaces:
Sleeping
Sleeping
fschwartzer
commited on
Commit
•
074db95
1
Parent(s):
fb309c7
Update app.py
Browse files
app.py
CHANGED
@@ -64,23 +64,41 @@ def calcular_fator_avaliacao(titulo, EC, PU):
|
|
64 |
fator_avaliacao = max((4 * ec_pontuacao + 6 * PVU - 3 * PUB) / 100, VR)
|
65 |
return fator_avaliacao
|
66 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
def integrated_app(query, titulo, EC, PU):
|
68 |
-
|
69 |
-
|
70 |
-
|
|
|
71 |
return "Nenhum dado encontrado. Tente uma consulta diferente.", pd.DataFrame()
|
72 |
|
73 |
-
|
74 |
-
df_similares = filtrar_itens_similares(
|
75 |
|
76 |
if df_similares.empty:
|
77 |
return "Nenhum item similar encontrado.", pd.DataFrame()
|
78 |
else:
|
79 |
-
|
|
|
80 |
fator_avaliacao = calcular_fator_avaliacao(titulo, EC, PU)
|
81 |
valor_avaliacao = mean_price * fator_avaliacao
|
82 |
-
return f"Valor Médio do Bem: R$ {mean_price:.2f}, Fator de Avaliação: {fator_avaliacao*100:.2f}%, Valor de Avaliação: R$ {valor_avaliacao:.2f}",
|
83 |
-
|
84 |
|
85 |
titulos = bens_df['TITULO'].unique().tolist()
|
86 |
|
|
|
64 |
fator_avaliacao = max((4 * ec_pontuacao + 6 * PVU - 3 * PUB) / 100, VR)
|
65 |
return fator_avaliacao
|
66 |
|
67 |
+
def select_nearest_items(df, n=5):
|
68 |
+
median_price = df['Price'].median()
|
69 |
+
df['Distance'] = (df['Price'] - median_price).abs()
|
70 |
+
df_sorted = df.sort_values(by=['Distance', 'Marketplace']) # Sort by distance then by marketplace to diversify
|
71 |
+
selected_items = pd.DataFrame()
|
72 |
+
|
73 |
+
marketplaces_seen = set()
|
74 |
+
for _, row in df_sorted.iterrows():
|
75 |
+
if len(selected_items) >= n:
|
76 |
+
break
|
77 |
+
if row['Marketplace'] not in marketplaces_seen:
|
78 |
+
selected_items = selected_items.append(row, ignore_index=True)
|
79 |
+
marketplaces_seen.add(row['Marketplace'])
|
80 |
+
|
81 |
+
selected_items = selected_items.drop(columns=['Distance']) # Remove the temporary 'Distance' column
|
82 |
+
return selected_items
|
83 |
+
|
84 |
def integrated_app(query, titulo, EC, PU):
|
85 |
+
df_mercadolibre = fetch_data_to_dataframe(query, 50, "mercadolibre")
|
86 |
+
df_combined = pd.concat([df_mercadolibre, data_crawler], ignore_index=True)
|
87 |
+
|
88 |
+
if df_combined.empty:
|
89 |
return "Nenhum dado encontrado. Tente uma consulta diferente.", pd.DataFrame()
|
90 |
|
91 |
+
df_refined = refinar_resultados(df_combined)
|
92 |
+
df_similares = filtrar_itens_similares(df_refined, query)
|
93 |
|
94 |
if df_similares.empty:
|
95 |
return "Nenhum item similar encontrado.", pd.DataFrame()
|
96 |
else:
|
97 |
+
df_nearest = select_nearest_items(df_similares)
|
98 |
+
mean_price = df_nearest['Price'].mean()
|
99 |
fator_avaliacao = calcular_fator_avaliacao(titulo, EC, PU)
|
100 |
valor_avaliacao = mean_price * fator_avaliacao
|
101 |
+
return f"Valor Médio do Bem: R$ {mean_price:.2f}, Fator de Avaliação: {fator_avaliacao*100:.2f}%, Valor de Avaliação: R$ {valor_avaliacao:.2f}", df_nearest
|
|
|
102 |
|
103 |
titulos = bens_df['TITULO'].unique().tolist()
|
104 |
|