|
import streamlit as st |
|
from langchain import OpenAI, PromptTemplate, LLMChain |
|
from langchain.text_splitter import CharacterTextSplitter |
|
from langchain.chains.mapreduce import MapReduceChain |
|
from langchain.prompts import PromptTemplate |
|
from langchain.chat_models import AzureChatOpenAI |
|
from langchain.chains.summarize import load_summarize_chain |
|
from langchain.chains import AnalyzeDocumentChain |
|
from PyPDF2 import PdfReader |
|
from langchain.document_loaders import TextLoader |
|
from langchain.indexes import VectorstoreIndexCreator |
|
from langchain.document_loaders import PyPDFLoader |
|
|
|
|
|
|
|
import os |
|
|
|
|
|
os.environ["OPENAI_API_TYPE"] = "azure" |
|
os.environ["OPENAI_API_VERSION"] = "2023-03-15-preview" |
|
|
|
|
|
|
|
llm = AzureChatOpenAI( |
|
deployment_name="esujnand", model_name="gpt-35-turbo" |
|
) |
|
|
|
|
|
|
|
st.title("Wipro CSRD AI 1") |
|
|
|
|
|
st.write("Step 1: Summary of your selected section of CSRD... Sections in this are enviormental topic1, enviornamtal topic2 ") |
|
st.write("Step 2: Ask your specfici questions regarding a CSRD disclosure requirments") |
|
|
|
|
|
|
|
pdf_file = st.file_uploader("Upload file", type=["pdf"]) |
|
|
|
numberofpages = 100 |
|
|
|
if st.button("How many pages? "): |
|
reader = PdfReader(pdf_file) |
|
numberofpages = len(reader.pages) |
|
st.write("length is ", numberofpages) |
|
|
|
if st.button("table of contents? "): |
|
reader = PdfReader(pdf_file) |
|
page = reader.pages[2].extract_text() |
|
st.write(page) |
|
|
|
|
|
|
|
|
|
startpage = st.slider('Which section to look at', 0, numberofpages, 1) |
|
st.write("starting section page", startpage) |
|
|
|
|
|
pagecount = st.slider('How many pages', 1, 5, 1) |
|
st.write("pages to read", pagecount) |
|
|
|
|
|
def extract_text_from_pdf(): |
|
reader = PdfReader(pdf_file) |
|
|
|
text = [reader.pages[i].extract_text() for i in range(startpage, startpage + pagecount )] |
|
|
|
text = " ".join(text) |
|
return text |
|
|
|
|
|
def extract_text_from_pdf2(): |
|
reader = PdfReader(pdf_file) |
|
|
|
text = [reader.pages[i].extract_text() for i in range(len(reader.pages))] |
|
|
|
text = " ".join(text) |
|
return text |
|
|
|
if st.button("Summerize "): |
|
with st.spinner("Extracting Text..."): |
|
summary_chain = load_summarize_chain(llm, chain_type="map_reduce") |
|
summarize_document_chain = AnalyzeDocumentChain(combine_docs_chain=summary_chain, verbose=True) |
|
text = extract_text_from_pdf() |
|
with st.spinner("Summarizing..."): |
|
result = summarize_document_chain.run(text) |
|
st.write(result) |
|
|
|
|
|
|
|
|
|
yourquestion = st.text_input('Your topic', 'netzero') |
|
st.write('Your input is ', yourquestion) |
|
|
|
if st.button("Ask French "): |
|
template = """ |
|
You are an expert on topics of Sustainability, Climate action and UN Sustainable Development Goals. |
|
Explain the concept of {concept} like i am a five in French |
|
""" |
|
|
|
prompt = PromptTemplate( |
|
input_variables=["concept"], |
|
template=template, |
|
) |
|
|
|
|
|
from langchain.chains import LLMChain |
|
chain = LLMChain(llm=llm, prompt=prompt) |
|
|
|
|
|
st.write(chain.run(yourquestion)) |
|
|
|
|
|
if st.button("Ask English "): |
|
template = """ |
|
You are an expert on topics of Sustainability, Climate action and UN Sustainable Development Goals. |
|
Explain the concept of {concept} like i am a five |
|
""" |
|
|
|
prompt = PromptTemplate( |
|
input_variables=["concept"], |
|
template=template, |
|
) |
|
|
|
|
|
from langchain.chains import LLMChain |
|
chain = LLMChain(llm=llm, prompt=prompt) |
|
|
|
|
|
st.write(chain.run(yourquestion)) |
|
|
|
|
|
|
|
if st.button("Ask Hindi "): |
|
template = """ |
|
You are an expert on topics of Sustainability, Climate action and UN Sustainable Development Goals. |
|
Explain the concept of {concept} in Hindi |
|
""" |
|
|
|
prompt = PromptTemplate( |
|
input_variables=["concept"], |
|
template=template, |
|
) |
|
|
|
|
|
from langchain.chains import LLMChain |
|
chain = LLMChain(llm=llm, prompt=prompt) |
|
|
|
|
|
st.write(chain.run(yourquestion)) |
|
|