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)