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