File size: 1,975 Bytes
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
# utils.py

import os

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))
    """
    # Manejar la lógica para procesar tags e imágenes internamente
    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 = ["rId101", "rId105"]
        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
        tags_to_images = {
            "rId101": "images/rId101.png",
            "rId105": "images/rId105.png",
        }

        for tag in tags_detected:
            for key, path in tags_to_images.items():
                if key in tag and check_image_exists(path):
                    image_url = path
                    break  # Asumimos solo una imagen relevante

    return full_response, image_url