Jekyll2000/QA_Computer_Science
0
1import os2from PyPDF2 import PdfReader3from langchain.embeddings.openai import OpenAIEmbeddings4from langchain.text_splitter import CharacterTextSplitter5from langchain.vectorstores import ElasticVectorSearch, Pinecone, Weaviate, FAISS6from langchain.embeddings import HuggingFaceEmbeddings7from langchain.chains.question_answering import load_qa_chain8import gradio as gr9from langchain.embeddings import HuggingFaceEmbeddings10from langchain import HuggingFaceHub11 12 13 14 15reader = PdfReader("Faculty of Computer Science and Information Technology (1).pdf")16 # read data from the file and put them into a variable called raw_text17raw_text = ''18for i, page in enumerate(reader.pages):19 text = page.extract_text()20 if text:21 raw_text += text22text_splitter = CharacterTextSplitter(23 separator = "\n",24 chunk_size = 1000,25 chunk_overlap = 200,26 length_function = len,27 )28texts = text_splitter.split_text(raw_text)29 30 31def main(prompt):32 embeddings = HuggingFaceEmbeddings()33 db = FAISS.from_texts(texts, embeddings)34 llm=HuggingFaceHub(repo_id="google/flan-t5-xxl",model_kwargs={"temperature":1, "max_length":512})35 chain=load_qa_chain(llm,chain_type="stuff")36 query =prompt37 docs = db.similarity_search(query)38 return chain.run(input_documents=docs, question=query)39 40interface=gr.Interface(fn=main,inputs=[gr.components.Textbox(label="Type your Question")],41 outputs=gr.components.Textbox(label="Answer.."),42 )43interface.launch(debug=True)44 45 46 47 