Spaces:
Sleeping
Sleeping
# 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 | |