Spaces:
Sleeping
Sleeping
File size: 1,843 Bytes
8fc65e7 564a3c1 6060e42 8dcb499 01f902f 18d1238 94bd16a 885cafc 01f902f 6060e42 0ee5e57 45a6d26 01f902f b51e5c7 01f902f b51e5c7 d174b70 b51e5c7 0ee5e57 b51e5c7 f501a4f b51e5c7 0ee5e57 b51e5c7 94bb6ea b51e5c7 3c56661 b51e5c7 3c56661 2b16e78 |
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 |
import openai
import os
import streamlit as st
from streamlit import session_state
import base64
import tempfile
from pathlib import Path
from langchain.document_loaders import WebBaseLoader, PyPDFLoader, TextLoader
from langchain.indexes import VectorstoreIndexCreator
from langchain.embeddings import HuggingFaceEmbeddings
from langchain.docstore.document import Document
os.environ['OPENAI_API_KEY'] = "sk-proj-ZbejHdD4ZgJ5FFJ6LjMNT3BlbkFJ1WHLrJMFL03D8cMWSoFY"
openai.api_key = os.environ['OPENAI_API_KEY']
from langchain.document_loaders import PyPDFLoader
from langchain.chat_models import ChatOpenAI
st.title("Chat with data")
model = ChatOpenAI(model = 'gpt-4', max_tokens = 100,temperature=0)
uploaded_file = st.file_uploader("Choose a file")
if uploaded_file is not None:
# Make temp file path from uploaded file
with tempfile.NamedTemporaryFile(delete=False) as tmp_file:
fp = Path(tmp_file.name)
fp.write_bytes(uploaded_file.getvalue())
print(tmp_file.name,"path")
def extract(uploaded_file):
res = []
loader = PyPDFLoader(uploaded_file)
pages = loader.load()
for i in pages:
res.append(i.page_content.replace('\n',''))
a = " ".join(res)
return a
def lang(ques):
context = extract(tmp_file.name)
docs = Document(page_content=context)
index2 = VectorstoreIndexCreator().from_documents([docs])
answer = index2.query(llm = model, question = ques)
index2.vectorstore.delete()
return answer
def qna(ques):
session_state['answer']= lang(ques)
if 'answer' not in session_state:
session_state['answer']= ""
ques= st.text_area(label= "Please enter the Question that you wanna ask.",
placeholder="Question")
st.text_area("result", value=session_state['answer'])
st.button("Submit", on_click=qna, args=[ques]) |