Spaces:
Build error
Build error
| """Python file to serve as the frontend""" | |
| import streamlit as st | |
| from streamlit_chat import message | |
| from langchain.chains import ConversationChain | |
| from langchain.llms import OpenAI | |
| import os | |
| from langchain.embeddings.openai import OpenAIEmbeddings | |
| from langchain.text_splitter import CharacterTextSplitter | |
| from langchain.vectorstores import Pinecone | |
| from langchain.document_loaders import TextLoader | |
| import pinecone | |
| from langchain.document_loaders import TextLoader | |
| import streamlit as st | |
| # import pandas as pd | |
| from constants import INDEX_NAME, NAMESPACE,PINECONE_ENV | |
| from langchain.chains import LLMChain | |
| from langchain.prompts import PromptTemplate | |
| from langchain.llms import OpenAI | |
| from langchain.chains.question_answering import load_qa_chain | |
| PINECONE_API_KEY= st.secrets["PINECONE_API_KEY"] | |
| OPENAI_API_KEY = st.secrets["OPENAI_API_KEY"] | |
| os.environ['OPENAI_API_KEY'] =OPENAI_API_KEY | |
| # initialize pinecone | |
| pinecone.init( | |
| api_key=PINECONE_API_KEY, # find at app.pinecone.io | |
| environment=PINECONE_ENV # next to api key in console | |
| ) | |
| embeddings = OpenAIEmbeddings() | |
| llm = OpenAI(temperature=0) | |
| def load_pinecone_existing_index(question): | |
| pass | |
| searchIndex = Pinecone.from_existing_index(index_name=INDEX_NAME,embedding = embeddings, namespace=NAMESPACE) | |
| docsReturned = searchIndex.similarity_search(question, k=2) | |
| return docsReturned | |
| def get_answer(question): | |
| chain = load_qa_chain(llm, chain_type="stuff") | |
| docs=load_pinecone_existing_index(question) | |
| answer = chain.run(input_documents=docs, question=question) | |
| return answer | |
| # chain = load_qa_chain(llm, chain_type="stuff") | |
| # answer = chain.run(input_documents=docs, question=QUERY) | |
| # From here down is all the StreamLit UI. | |
| st.set_page_config(page_title="Langchain Chat with PDF", page_icon=":robot:") | |
| st.header("Chat with PDF Example") | |
| if "generated" not in st.session_state: | |
| st.session_state["generated"] = [] | |
| if "past" not in st.session_state: | |
| st.session_state["past"] = [] | |
| def get_text(): | |
| input_text = st.text_input("You: ", "Hi,how are you.", key="input") | |
| return input_text | |
| user_input = get_text() | |
| if user_input: | |
| # output = chain.run(input=user_input) | |
| output = get_answer(user_input) | |
| st.session_state.past.append(user_input) | |
| st.session_state.generated.append(output) | |
| if st.session_state["generated"]: | |
| for i in range(len(st.session_state["generated"]) - 1, -1, -1): | |
| message(st.session_state["generated"][i], key=str(i)) | |
| message(st.session_state["past"][i], is_user=True, key=str(i) + "_user") |