fschwartzer commited on
Commit
3c5c245
1 Parent(s): 550146d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -2
app.py CHANGED
@@ -2,12 +2,46 @@ import gradio as gr
2
  import requests
3
  import pandas as pd
4
  from rapidfuzz import process, fuzz
 
5
 
6
  bens_df = pd.read_excel('bens_tab.xlsx')
7
 
8
  data_crawler = pd.read_csv('data_crawler.csv', index_col=False)
9
  data_crawler = data_crawler[['Title', 'Price', 'Currency', 'Condition', 'Link', 'Marketplace']]
10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  def fetch_data_to_dataframe(query, limit=50, source="mercadolibre"):
12
  if source == "mercadolibre":
13
  BASE_URL = "https://api.mercadolibre.com/sites/MLB/search"
@@ -167,7 +201,8 @@ def integrated_app(query, titulo, EC, PU, selected_rows):
167
 
168
  fator_avaliacao = calcular_fator_avaliacao(titulo, EC, PU)
169
  valor_avaliacao = df_nearest['Price'].mean() * fator_avaliacao
170
- return f"Valor Médio do Bem: R$ {df_nearest['Price'].mean():.2f}, Fator de Avaliação: {fator_avaliacao*100:.2f}%, Valor de Avaliação: R$ {valor_avaliacao:.2f}", df_nearest
 
171
 
172
 
173
  iface = gr.Interface(fn=integrated_app,
@@ -176,7 +211,7 @@ iface = gr.Interface(fn=integrated_app,
176
  gr.Radio(label="Estado de Conservação do Bem", choices=['Excelente', 'Bom', 'Regular', 'Péssimo'], value="Excelente"),
177
  gr.Number(label="Período utilizado (anos)", value=1),
178
  gr.Textbox(label="IDs das linhas selecionadas (separadas por vírgula)", placeholder="Exemplo: 0,2,5")], # Using Textbox for IDs
179
- outputs=[gr.Textbox(label="Cálculo"), gr.Dataframe(label="Resultados da Pesquisa")],
180
  theme=gr.themes.Monochrome(),
181
  title="<span style='color: gray; font-size: 48px;'>Avaliação de Bens Móveis</span>",
182
  description="""<p style="text-align: left;"><b><span style='color: gray; font-size: 40px;'>aval</span><span style='color: black; font-size: 40px;'>ia</span><span style='color: gray; font-size: 40px;'>.se</b></p>""")
 
2
  import requests
3
  import pandas as pd
4
  from rapidfuzz import process, fuzz
5
+ from docx import Document
6
 
7
  bens_df = pd.read_excel('bens_tab.xlsx')
8
 
9
  data_crawler = pd.read_csv('data_crawler.csv', index_col=False)
10
  data_crawler = data_crawler[['Title', 'Price', 'Currency', 'Condition', 'Link', 'Marketplace']]
11
 
12
+ def get_report(query):
13
+ doc = Document()
14
+
15
+ # Adding a title
16
+ doc.add_heading('RELATÓRIO DE AVALIAÇÃO DE VALOR DE MERCADO – EXP.', level=1)
17
+
18
+ # Adding some details
19
+ doc.add_paragraph('Solicitante:')
20
+ doc.add_paragraph('Interessado:')
21
+ doc.add_paragraph('Proprietário:')
22
+ doc.add_paragraph('Objetivo da Avaliação: Definir o valor de mercado dos bens abaixo discriminados para registro no Patrimônio do Município.')
23
+
24
+ # Adding section heading and content
25
+ doc.add_heading('1. Características do(s) Avaliando(s):', level=2)
26
+ doc.add_paragraph('1.1 Avaliando 01:')
27
+ doc.add_paragraph(f'Descrição: {query}')
28
+
29
+ # Add evaluation section
30
+ doc.add_heading('2. Avaliação:', level=2)
31
+ doc.add_paragraph('2.1 Avaliando 01')
32
+
33
+ # Add market research section
34
+ doc.add_heading('3. Pesquisa de Mercado:', level=2)
35
+
36
+ today_date = datetime.now().strftime('%d/%m/%Y')
37
+ doc.add_paragraph(f'Lajeado/RS, {today_date}')
38
+
39
+ doc.add_paragraph('Membros da Comissão:')
40
+
41
+ # Save the document
42
+ doc.save('laudo.docx')
43
+
44
+
45
  def fetch_data_to_dataframe(query, limit=50, source="mercadolibre"):
46
  if source == "mercadolibre":
47
  BASE_URL = "https://api.mercadolibre.com/sites/MLB/search"
 
201
 
202
  fator_avaliacao = calcular_fator_avaliacao(titulo, EC, PU)
203
  valor_avaliacao = df_nearest['Price'].mean() * fator_avaliacao
204
+ get_report(query)
205
+ return f"Valor Médio do Bem: R$ {df_nearest['Price'].mean():.2f}, Fator de Avaliação: {fator_avaliacao*100:.2f}%, Valor de Avaliação: R$ {valor_avaliacao:.2f}", df_nearest, 'laudo.docx'
206
 
207
 
208
  iface = gr.Interface(fn=integrated_app,
 
211
  gr.Radio(label="Estado de Conservação do Bem", choices=['Excelente', 'Bom', 'Regular', 'Péssimo'], value="Excelente"),
212
  gr.Number(label="Período utilizado (anos)", value=1),
213
  gr.Textbox(label="IDs das linhas selecionadas (separadas por vírgula)", placeholder="Exemplo: 0,2,5")], # Using Textbox for IDs
214
+ outputs=[gr.Textbox(label="Cálculo"), gr.Dataframe(label="Resultados da Pesquisa"), gr.File(label="Laudo de Avaliação")],
215
  theme=gr.themes.Monochrome(),
216
  title="<span style='color: gray; font-size: 48px;'>Avaliação de Bens Móveis</span>",
217
  description="""<p style="text-align: left;"><b><span style='color: gray; font-size: 40px;'>aval</span><span style='color: black; font-size: 40px;'>ia</span><span style='color: gray; font-size: 40px;'>.se</b></p>""")