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