CoolFace
Apppublic

anvorja/preguntaDOC

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
app.py46 linesDownload Raw Back to root
1import streamlit as st2import os3 4from PyPDF2 import PdfReader5from langchain.text_splitter import RecursiveCharacterTextSplitter6from langchain.embeddings import HuggingFaceEmbeddings 7from langchain.vectorstores import FAISS8from langchain.chat_models import ChatOpenAI9from langchain.chains.question_answering import load_qa_chain10 11st.set_page_config('preguntaDOC')12st.header("Pregunta a tu PDF")13OPENAI_API_KEY = st.text_input('OpenAI API Key', type='password')14pdf_obj = st.file_uploader("Carga tu documento", type="pdf", on_change=st.cache_resource.clear)15 16@st.cache_resource 17def create_embeddings(pdf):18    pdf_reader = PdfReader(pdf)19    text = ""20    for page in pdf_reader.pages:21        text += page.extract_text()22 23    text_splitter = RecursiveCharacterTextSplitter(24        chunk_size=800,25        chunk_overlap=100,26        length_function=len27        )        28    chunks = text_splitter.split_text(text)29 30    embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")31    knowledge_base = FAISS.from_texts(chunks, embeddings)32 33    return knowledge_base34 35if pdf_obj:36    knowledge_base = create_embeddings(pdf_obj)37    user_question = st.text_input("Haz una pregunta sobre tu PDF:")38 39    if user_question:40        os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY41        docs = knowledge_base.similarity_search(user_question, 3)42        llm = ChatOpenAI(model_name='gpt-3.5-turbo')43        chain = load_qa_chain(llm, chain_type="stuff")44        respuesta = chain.run(input_documents=docs, question=user_question)45 46        st.write(respuesta)