Giordanopsouza commited on
Commit
32d44d1
·
verified ·
1 Parent(s): 04a5f3b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +83 -0
app.py CHANGED
@@ -33,6 +33,89 @@ def get_current_time_in_timezone(timezone: str) -> str:
33
  except Exception as e:
34
  return f"Error fetching time for timezone '{timezone}': {str(e)}"
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  final_answer = FinalAnswerTool()
38
 
 
33
  except Exception as e:
34
  return f"Error fetching time for timezone '{timezone}': {str(e)}"
35
 
36
+ @tool
37
+ def get_movie_recommendations(genre: str = "", year: str = "", actor: str = "") -> str:
38
+ """Obtém recomendações de filmes com base nos critérios fornecidos
39
+ Args:
40
+ genre: Gênero do filme (ex: ação, comédia, drama)
41
+ year: Ano de lançamento ou década (ex: 2023, 1990s)
42
+ actor: Nome de um ator ou atriz presente no filme
43
+ """
44
+ try:
45
+ # Para este exemplo, usaremos a API pública do The Movie Database (TMDb)
46
+ # Você precisaria registrar-se para obter uma chave de API gratuita
47
+ api_key = "sua_chave_api_tmdb" # Substitua pela sua chave
48
+ base_url = "https://api.themoviedb.org/3"
49
+
50
+ # Construir os parâmetros de consulta
51
+ params = {
52
+ "api_key": api_key,
53
+ "language": "pt-BR",
54
+ "sort_by": "popularity.desc",
55
+ "include_adult": "false",
56
+ "page": 1
57
+ }
58
+
59
+ # Adicionar filtragens com base nos argumentos fornecidos
60
+ if genre:
61
+ # Converter nome do gênero para ID - simplificado para o exemplo
62
+ genre_map = {"ação": 28, "comédia": 35, "drama": 18, "ficção científica": 878}
63
+ genre_id = genre_map.get(genre.lower())
64
+ if genre_id:
65
+ params["with_genres"] = genre_id
66
+
67
+ if year:
68
+ if year.endswith("s"): # Década como "1990s"
69
+ decade = year[:-1] # Remove o 's'
70
+ params["primary_release_date.gte"] = f"{decade}-01-01"
71
+ params["primary_release_date.lte"] = f"{int(decade) + 9}-12-31"
72
+ else: # Ano específico
73
+ params["primary_release_year"] = year
74
+
75
+ if actor:
76
+ # Para simplicidade, assumimos que fornecemos o ID do ator
77
+ # Em uma implementação real, você faria uma busca pelo nome do ator primeiro
78
+ actor_search_url = f"{base_url}/search/person"
79
+ actor_params = params.copy()
80
+ actor_params["query"] = actor
81
+ actor_response = requests.get(actor_search_url, params=actor_params)
82
+ actor_data = actor_response.json()
83
+
84
+ if actor_data.get("results") and len(actor_data["results"]) > 0:
85
+ actor_id = actor_data["results"][0]["id"]
86
+ params["with_cast"] = actor_id
87
+
88
+ # Fazer a requisição à API
89
+ endpoint = f"{base_url}/discover/movie"
90
+ response = requests.get(endpoint, params=params)
91
+ data = response.json()
92
+
93
+ # Processar e formatar os resultados
94
+ if not data.get("results"):
95
+ return "Nenhum filme encontrado com esses critérios."
96
+
97
+ movies = data["results"][:5] # Limitar a 5 recomendações
98
+
99
+ recommendations = f"Aqui estão algumas recomendações de filmes para você:\n\n"
100
+ for i, movie in enumerate(movies, 1):
101
+ title = movie.get("title", "Título desconhecido")
102
+ release_date = movie.get("release_date", "Data desconhecida")
103
+ if release_date:
104
+ release_year = release_date.split("-")[0]
105
+ else:
106
+ release_year = "Ano desconhecido"
107
+
108
+ rating = movie.get("vote_average", "Sem avaliação")
109
+ overview = movie.get("overview", "Sem descrição disponível.")
110
+
111
+ recommendations += f"{i}. {title} ({release_year}) - {rating}/10\n"
112
+ recommendations += f" {overview[:150]}...\n\n"
113
+
114
+ return recommendations
115
+
116
+ except Exception as e:
117
+ return f"Erro ao buscar recomendações de filmes: {str(e)}"
118
+
119
 
120
  final_answer = FinalAnswerTool()
121