File size: 1,863 Bytes
7d95e47
 
 
 
 
 
 
 
753dfe9
7d95e47
 
 
 
 
 
 
 
 
 
dc80305
7d95e47
 
 
753dfe9
7d95e47
 
c4c9709
7d95e47
 
 
 
 
 
 
 
 
 
 
5b5172f
7d95e47
 
 
 
 
 
 
 
 
dc80305
ce8a1c0
7d95e47
ce8a1c0
 
7d95e47
ce8a1c0
 
 
7d95e47
ce8a1c0
 
7d95e47
ce8a1c0
5b5172f
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
import streamlit as st
import os

from groq import Groq
from datetime import datetime
from langchain_community.embeddings import HuggingFaceEmbeddings 
from langchain_groq import ChatGroq
from langchain.chains import RetrievalQA
from langchain_pinecone import PineconeVectorStore

st.set_page_config('Opositor')
st.header("Pregunta al trebep")

# CARGAMOS LLM
os.environ["GROQ_API_KEY"] = "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"
model = 'llama3-8b-8192'
llm = ChatGroq(model = model)

# CARGAMOS MODELO DE EMBEDDING
model_name = 'intfloat/multilingual-e5-base'
embedding = HuggingFaceEmbeddings(model_name=model_name)

# CARGAMOS EL VECTORSTORE DE PINECONE
os.environ["PINECONE_API_KEY"] ='4bf0b4cf-4ced-4f70-8977-d60bb8ae405a'
index_name = "boe-intfloat-multilingual-e5-base"
namespace = "trebep"
vectorstore = PineconeVectorStore(index_name=index_name, namespace=namespace, embedding=embedding)

# CREAMOS EL RETRIEVAL
qa = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=vectorstore.as_retriever(),
    #return_source_documents=True,
    #verbose=True
)

# Función para mostrar logs
def mostrar_logs(logs):
    st.sidebar.header("Registro de preguntas")
    for entry in logs:
        st.sidebar.write(f"**Pregunta: {entry['Pregunta']}**")
        st.sidebar.write(f"Respuesta: {entry['Respuesta']}")


# Lista para almacenar preguntas y respuestas
logs = []

user_question = st.text_input("¡A jugar! Haz una pregunta al trebep:")
if user_question:

    # Obtenemos la respuesta
    respuesta = qa.invoke(user_question)

    # Mostrar la variable en color verde
    st.subheader("Respuesta")
    st.write(f":green[{str(respuesta)}]")

    # Guardar pregunta y respuesta en los logs
    logs.append({"Pregunta": user_question, "Respuesta": respuesta})

    # Mostrar logs actualizados
    mostrar_logs(logs)