import base64 from pathlib import Path import streamlit as st from langchain.memory import ConversationBufferMemory from langchain.memory.chat_message_histories import StreamlitChatMessageHistory from langchain.chains import ConversationalRetrievalChain from langchain.embeddings import VoyageEmbeddings from langchain.vectorstores.supabase import SupabaseVectorStore from langchain.llms.together import Together from st_supabase_connection import SupabaseConnection msgs = StreamlitChatMessageHistory() memory = ConversationBufferMemory( memory_key="history", chat_memory=msgs, return_messages=True ) supabase_client = st.connection( name="orbgpt", type=SupabaseConnection, ttl=None, ) @st.cache_resource def load_retriever(): # load embeddings using VoyageAI and Supabase embeddings = VoyageEmbeddings(model="voyage-01") vector_store = SupabaseVectorStore( embedding=embeddings, client=supabase_client.client, table_name="documents", query_name="match_documents", ) return vector_store.as_retriever() llm = Together( model="togethercomputer/StripedHyena-Nous-7B", temperature=0.5, max_tokens=200, top_k=1, together_api_key=st.secrets.together_api_key, ) retriever = load_retriever() chat = ConversationalRetrievalChain.from_llm(llm, retriever) st.markdown( "