# utils.py import os # Definir los campos de enlace relevantes LINK_FIELDS = ["Tag"] # Utilizamos solo el campo 'Tag' según tu ejemplo de datos 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)) """ # Extraer enlaces relevantes de los metadatos utilizando LINK_FIELDS 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 = ["rld 0", "rld 1", "rld 2"] # Ajusta estos tags según tus necesidades 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 current_dir = os.path.dirname(os.path.abspath(__file__)) images_dir = os.path.join(current_dir, "images") # Asegúrate de que la carpeta 'images' exista tags_to_images = { "rld 0": os.path.join(images_dir, "rld0.png"), "rld 1": os.path.join(images_dir, "rld1.png"), "rld 2": os.path.join(images_dir, "rld2.png"), # Agrega más mappings según tus tags e imágenes } for tag in tags_detected: if tag in tags_to_images: path = tags_to_images[tag] if check_image_exists(path): image_url = path break # Asumimos solo una imagen relevante return full_response, image_url