Spaces:
Running
on
Zero
Running
on
Zero
| # 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 | |