File size: 1,913 Bytes
b0784b0
 
 
 
 
 
ee522ae
b0784b0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
378258f
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
import  streamlit as st 
from Rag_milvus import query_qdrant, obtener_colecciones, query_qdrant_sinumbral
from Llm_local import get_response_from_mistral, generarPages
from sentence_transformers import SentenceTransformer


st.title("ProcurIA")

st.sidebar.title("Menú de Funciones")
generarPages()
#Inicializamos nuestro historial de chat
if "messages" not in st.session_state:
     st.session_state.messages = [{"role": "assistant", "content": "Hola!, en que puedo ayudarte?"}]

#Definimos modelo
model = SentenceTransformer("all-MiniLM-L6-v2")

#Elegimos una coleccion
colecciones = obtener_colecciones()
coleccion_seleccionada = st.sidebar.selectbox("Selecciona una colección", colecciones)

# Mostrar el historial de mensajes
for message in st.session_state.messages:
    with st.chat_message(message["role"]):
        st.markdown(message["content"])

# Entrada del usuario
if prompt := st.chat_input("Escribe tus dudas"):
    st.session_state.messages.append({"role": "user", "content": prompt})
    
    with st.chat_message("user"):
        st.markdown(prompt)

    with st.chat_message("assistant"):
        if coleccion_seleccionada == "Todas las colecciones":
            colecciones_disponibles = obtener_colecciones()
            results = []
            umbral=1
            for coleccion in colecciones_disponibles[1:]:  
                coleccion_results = query_qdrant_sinumbral(prompt,model,coleccion)
                results.extend(coleccion_results) 
        else:
            umbral=0.56
            results = query_qdrant(prompt, model, coleccion_seleccionada,5,umbral)

        if not results:
            response = "Disculpa, no tengo información para responder esa pregunta."
        else:
            response = st.write_stream(get_response_from_mistral(prompt, results))
        
    st.session_state.messages.append({"role": "assistant", "content": response})
    st.write(results)