# utils.py import os def check_image_exists(path): """ Verifica si la imagen existe en la ruta especificada. Args: path (str): Ruta de la imagen. Returns: bool: True si la imagen existe, False en caso contrario. """ return os.path.exists(path) def process_tags_chat(search_results): """ Procesa los resultados de la búsqueda vectorial para detectar tags específicos y determinar la URL de la imagen correspondiente. Args: search_results (list): Lista de resultados de la búsqueda vectorial. Returns: tuple: (full_response (str), image_url (str o None)) """ # Manejar la lógica para procesar tags e imágenes internamente relevant_links = [ result['metadata'].get(field) for result in search_results for field in LINK_FIELDS if field in result['metadata'] ] full_response = "" image_url = None tags_detected = [] filtered_links = [] if relevant_links: # Limitar a solo dos tags tag_list = ["rld0", "rld1"] for link in relevant_links: if any(tag in link for tag in tag_list): tags_detected.append(link) # Guardar el tag pero no mostrarlo else: filtered_links.append(link) # Añadir el primer enlace relevante bajo una sección "Respuestas relevantes" if filtered_links: full_response += f"\n\nRespuestas relevantes:\n{filtered_links[0]}" # Manejar las imágenes basadas en los tags detectados tags_to_images = { "rld0": "images/rld0.png", "rld1": "images/rld1.png", } for tag in tags_detected: for key, path in tags_to_images.items(): if key in tag and check_image_exists(path): image_url = path break # Asumimos solo una imagen relevante return full_response, image_url