Spaces:
Sleeping
Sleeping
File size: 2,494 Bytes
0eb2d4c bef841e b8bd619 0eb2d4c bef841e 0eb2d4c fb13c94 0eb2d4c a2241e8 0eb2d4c bef841e 0eb2d4c 42abcd9 bef841e 0eb2d4c bef841e 0eb2d4c fb13c94 0eb2d4c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# 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
|