File size: 1,921 Bytes
3d180a4
 
 
 
 
 
 
 
 
 
 
 
 
5c67692
3d180a4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22bca8f
 
3d180a4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
from langchain.vectorstores.cassandra import Cassandra
from langchain.indexes.vectorstore import VectorStoreIndexWrapper
from langchain.llms import OpenAI
from langchain.embeddings import OpenAIEmbeddings

from datasets import load_dataset

import cassio
import streamlit as st
from PyPDF2 import PdfReader

ASTRA_DB_APPLICATION_TOKEN = "AstraCS:UPkfqhgxqlGClRZQaoNRZTIP:22e71b1cb4a916d3722697a89237aed24cc6b872b72bad42ee11d8c26133710e"
ASTRA_DB_ID = "4e301076-f4ed-46a6-af16-1ae99fc5b780"


pdfreader = PdfReader("budget_speech.pdf")

from typing_extensions import Concatenate

raw_text = ""

for i, page in enumerate(pdfreader.pages):
  content = page.extract_text()
  if content:
    raw_text += content


cassio.init(token = ASTRA_DB_APPLICATION_TOKEN, database_id=ASTRA_DB_ID)


llm = OpenAI(temperature=0.6)
embedding = OpenAIEmbeddings()

# Function to load OpenAI model and get response
def get_openAI_respnse(question):
    llm = OpenAI(model_name="text-davinci-003", temperature=0.5)
    response = llm(question)
    return response


astra_vector_store = Cassandra(
    embedding=embedding,
    table_name = "mini_qa_demo",
    session = None,
    keyspace = None
)


from langchain.text_splitter import CharacterTextSplitter

text_splitter = CharacterTextSplitter(
    separator="\n",
    chunk_size = 800,
    chunk_overlap = 200,
    length_function = len
)

texts = text_splitter.split_text(raw_text)


astra_vector_store.add_texts(texts)
astra_vextor_index = VectorStoreIndexWrapper(vectorstore=astra_vector_store)




## Intitialize Streamlit app
st.set_page_config(page_title = "Ask Questions from the India Budget 2023 PDF")
st.header("PDF_QA")

input = st.text_input("Enter your question here", key="input").strip()
response = astra_vextor_index.query(input, llm=llm)

submit = st.button("Generate")


#If submit button is clicked
if submit:
    st.subheader("The response is")
    st.write(response)