PROYECTO_2024 / utils.py
C2MV's picture
Update utils.py
a2241e8 verified
# 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