Lar159 commited on
Commit
d83cf10
·
verified ·
1 Parent(s): 8641c96

Create media_graph_critic.py

Browse files
Files changed (1) hide show
  1. tools/media_graph_critic.py +55 -0
tools/media_graph_critic.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from smolagents.tools import tool
2
+ from typing import Dict, Any, List, Optional
3
+
4
+ @tool
5
+ def critique_media_graph(graph_properties: Dict[str, Any]) -> Dict[str, List[str]]:
6
+ """
7
+ Analisa as propriedades de um gráfico e identifica elementos que podem induzir a erros
8
+ de leitura, como escalas inapropriadas ou falta de informações essenciais (EF09MA21).
9
+ Args:
10
+ graph_properties: Um dicionário descrevendo as propriedades do gráfico.
11
+ Exemplo: {
12
+ "tem_titulo": True,
13
+ "tem_legenda_clara": False,
14
+ "tem_fonte_dos_dados": True,
15
+ "eixo_y_inicia_em_zero": False,
16
+ "tipo_grafico": "barras",
17
+ "contexto": "Vendas anuais da empresa X"
18
+ }
19
+ Returns:
20
+ Um dicionário com uma lista de pontos positivos e uma lista de possíveis problemas (críticas).
21
+ """
22
+ critiques = []
23
+ positives = []
24
+
25
+ # Verifica título
26
+ if graph_properties.get("tem_titulo"):
27
+ positives.append("O gráfico possui um título, o que ajuda na compreensão do seu tema.")
28
+ else:
29
+ critiques.append("AUSÊNCIA DE TÍTULO: A falta de um título claro dificulta a compreensão imediata do assunto do gráfico.")
30
+
31
+ # Verifica legenda
32
+ if graph_properties.get("tem_legenda_clara"):
33
+ positives.append("As legendas estão claras e bem explicitadas.")
34
+ else:
35
+ critiques.append("LEGENDA CONFUSA OU AUSENTE: A ausência de uma legenda clara pode levar a interpretações erradas das categorias ou dados apresentados.")
36
+
37
+ # Verifica fonte
38
+ if graph_properties.get("tem_fonte_dos_dados"):
39
+ positives.append("A fonte dos dados foi citada, o que confere mais credibilidade à informação.")
40
+ else:
41
+ critiques.append("FALTA DE FONTE: A omissão da fonte dos dados impede a verificação da sua veracidade e confiabilidade.")
42
+
43
+ # Verifica escala do eixo Y (crítica comum)
44
+ if not graph_properties.get("eixo_y_inicia_em_zero", True) and graph_properties.get("tipo_grafico") in ["barras", "linhas"]:
45
+ critiques.append("ESCALA INAPROPRIADA: O eixo Y não começa em zero. Isso pode distorcer a proporção visual entre os dados, exagerando as diferenças.")
46
+ else:
47
+ positives.append("A escala do eixo Y parece apropriada para o conjunto de dados.")
48
+
49
+ if not critiques:
50
+ critiques.append("Nenhum problema óbvio de manipulação ou erro de leitura foi identificado com base nas informações fornecidas.")
51
+
52
+ return {
53
+ "pontos_positivos": positives,
54
+ "pontos_de_atencao_criticas": critiques
55
+ }