# import streamlit as st # from langchain.callbacks import StreamlitCallbackHandler # import streamlit as st # from langchain.llms import OpenAI # from langchain.agents import AgentType, initialize_agent, load_tools # from langchain.callbacks import StreamlitCallbackHandler # import streamlit as st # from scraping import prompty # import os # st.set_page_config(page_title="NutriMentor", page_icon=":robot:") # st.header("NutriMentor") # from langchain.chat_models import ChatOpenAI # from langchain.chains.question_answering import load_qa_chain # from langchain.chains import RetrievalQA # from langchain.llms import OpenAI # from langchain.document_loaders import TextLoader # from langchain.document_loaders import PyPDFLoader # from langchain.indexes import VectorstoreIndexCreator # from langchain.text_splitter import CharacterTextSplitter # from langchain.embeddings import OpenAIEmbeddings # from langchain.vectorstores import Chroma # from langchain.chains.question_answering import load_qa_chain # if "generated" not in st.session_state: # st.session_state["generated"] = [] # if "past" not in st.session_state: # st.session_state["past"] = [] # if "messages" not in st.session_state: # st.session_state["messages"] = [] # init_alr = False # def init_model(): # os.environ["OPENAI_API_KEY"] = "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" # llm = ChatOpenAI( # openai_api_key=os.environ.get("OPENAI_API_KEY"), # model='gpt-3.5-turbo-16k', # temperature=0, # streaming=True # ) # # load document # loader = PyPDFLoader("./Dietary_Guidelines_for_Americans_2020-2025.pdf") # documents = loader.load() # # split the documents into chunks # text_splitter = CharacterTextSplitter(chunk_size=10000, chunk_overlap=0) # texts = text_splitter.split_documents(documents) # # select which embeddings we want to use # embeddings = OpenAIEmbeddings() # # create the vectorestore to use as the index # db = Chroma.from_documents(texts, embeddings) # # expose this index in a retriever interface # retriever = db.as_retriever(search_type="similarity", search_kwargs={"k":2}) # # create a chain to answer questions # qa = RetrievalQA.from_chain_type( # llm=llm, chain_type="stuff", retriever=retriever, return_source_documents=False) # return qa # st_callback = StreamlitCallbackHandler(st.container()) # # date_input = st.text_input( # # "Enter Date (ex. 10-11) 👇", # # label_visibility=st.session_state.visibility, # # disabled=st.session_state.disabled, # # placeholder=st.session_state.placeholder, # # ) # date_input = st.text_input(label = "Enter Date (ex. 10-11) 👇" ) # if prompt := st.chat_input(): # st.chat_message("user").write(prompt) # with st.chat_message("assistant"): # #st_callback = StreamlitCallbackHandler(st.container()) # if init_alr == False: # init_alr = True # qa = init_model() # #Call query generator with text_input # query = prompty(date_input, prompt) # result = qa({"query": query}) # st.write(result['result']) # st.stop()