fschwartzer commited on
Commit
78ac961
1 Parent(s): 4fd0504

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -44
app.py CHANGED
@@ -1,40 +1,8 @@
1
  import gradio as gr
2
  import requests
3
  import pandas as pd
4
- from scipy import stats
5
  from difflib import get_close_matches
6
 
7
- import google.generativeai as genai
8
-
9
- # Proper configuration with your API key
10
- genai.configure(api_key="AIzaSyCm57IpC9_TTL7U3m8wvje9_3qtfxAASgI") # Replace YOUR_API_KEY with the actual API key
11
-
12
- # Set up the model configuration
13
- generation_config = {
14
- "temperature": 0.7,
15
- "top_p": 1,
16
- "top_k": 1,
17
- "max_output_tokens": 2048,}
18
-
19
- # Safety settings
20
- safety_settings = [
21
- {"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_MEDIUM_AND_ABOVE"},
22
- {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_MEDIUM_AND_ABOVE"},
23
- {"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_MEDIUM_AND_ABOVE"},
24
- {"category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_MEDIUM_AND_ABOVE"},
25
- ]
26
-
27
- # Initialize the model
28
- model = genai.GenerativeModel(model_name="gemini-pro",
29
- generation_config=generation_config,
30
- safety_settings=safety_settings)
31
-
32
- def interpretar_e_refinar_busca(query):
33
- prompt = f"Corrigir e refinar a busca: '{query}' para uma consulta mais precisa."
34
- response = model.generate_content(prompt)
35
- refined_query = response.text.strip()
36
- return refined_query
37
-
38
  def fetch_data_to_dataframe(query, limit=50, source="mercadolibre"):
39
  if source == "mercadolibre":
40
  BASE_URL = "https://api.mercadolibre.com/sites/MLB/search"
@@ -57,20 +25,16 @@ def filtrar_itens_similares(df, termo_pesquisa, limite=5):
57
  return df_filtrado
58
 
59
  def integrated_app(query):
60
- # Primeiro, use o GEMINI para interpretar e possivelmente corrigir/refinar a busca
61
- refined_query = interpretar_e_refinar_busca(query)
62
-
63
- # Depois, busque os dados no Mercado Livre usando a query refinada
64
- df = fetch_data_to_dataframe(refined_query, 50, "mercadolibre")
65
-
66
  if df.empty:
67
  return "Nenhum dado encontrado. Tente uma consulta diferente.", pd.DataFrame()
68
-
69
- # A partir daqui, você pode continuar com a filtragem por similaridade ou outra lógica de pós-processamento
70
- # Por simplicidade, vamos retornar diretamente os resultados
71
- median_price = df['Price'].median()
72
- return f"Preço Mediano: {median_price}", df
73
 
 
 
 
 
 
 
74
 
75
  iface = gr.Interface(fn=integrated_app,
76
  inputs=gr.Textbox(label="Digite sua consulta"),
@@ -78,4 +42,4 @@ iface = gr.Interface(fn=integrated_app,
78
  title="Análise Integrada de Bens",
79
  description="Esta aplicação busca dados no Mercado Livre e filtra para encontrar itens com nomes similares ao termo de pesquisa, oferecendo uma análise de preços e características desses itens.")
80
 
81
- iface.launch()
 
1
  import gradio as gr
2
  import requests
3
  import pandas as pd
 
4
  from difflib import get_close_matches
5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  def fetch_data_to_dataframe(query, limit=50, source="mercadolibre"):
7
  if source == "mercadolibre":
8
  BASE_URL = "https://api.mercadolibre.com/sites/MLB/search"
 
25
  return df_filtrado
26
 
27
  def integrated_app(query):
28
+ df = fetch_data_to_dataframe(query, 50, "mercadolibre")
 
 
 
 
 
29
  if df.empty:
30
  return "Nenhum dado encontrado. Tente uma consulta diferente.", pd.DataFrame()
 
 
 
 
 
31
 
32
+ df_similares = filtrar_itens_similares(df, query)
33
+ if df_similares.empty:
34
+ return "Nenhum item similar encontrado.", pd.DataFrame()
35
+ else:
36
+ median_price = df_similares['Price'].median()
37
+ return f"Preço Mediano dos Itens Similares: {median_price}", df_similares
38
 
39
  iface = gr.Interface(fn=integrated_app,
40
  inputs=gr.Textbox(label="Digite sua consulta"),
 
42
  title="Análise Integrada de Bens",
43
  description="Esta aplicação busca dados no Mercado Livre e filtra para encontrar itens com nomes similares ao termo de pesquisa, oferecendo uma análise de preços e características desses itens.")
44
 
45
+ iface.launch()