KSR-OralHistory / app.py
alexzhuzhou's picture
first commit
9e8cfa1
raw
history blame
1.76 kB
import streamlit as st
import pinecone
from makechain import get_chain
from langchain.vectorstores.pinecone import Pinecone
from env import PINECONE_INDEX_NAME, PINECONE_ENVIRONMENT, PINECONE_API_KEY, OPENAI_API_KEY
from langchain.embeddings.openai import OpenAIEmbeddings
st.title("Ask the Black@Stanford Exhibit")
st.sidebar.header("You can ask questions of interviews with Black Stanford students and faculty from the University "
"Archives")
st.sidebar.info(
'''This is a web application that allows you to interact with
the Stanford Archives.
Enter a **Question** in the **text box** and **press enter** to receive
a **response** from our ChatBot.
'''
)
# create Vectorstore
pinecone.init(
api_key=st.secrets["PINECONE_API_KEY"], # find at app.pinecone.io
environment=st.secrets["PINECONE_ENVIRONMENT"] # next to api key in console
)
index = pinecone.Index(index_name=st.secrets["PINECONE_INDEX_NAME"])
embed = OpenAIEmbeddings(openai_api_key=st.secrets["OPENAI_API_KEY"])
text_field = "text"
vectorStore = Pinecone(
index, embed.embed_query, text_field
)
# create chain
qa_chain = get_chain(vectorStore)
def main():
global query
user_query= st.text_input("Enter your question here")
if user_query != ":q" or user_query != "":
# Pass the query to the ChatGPT function
query = user_query.strip().replace('\n', ' ')
response = qa_chain(
{
'question': query,
}
)
st.write(f"{response['answer']}")
st.write("Sources: ")
st.write(f"{response['sources']}")
try:
main()
except Exception as e:
st.write("An error occurred while running the application: ", e)