import streamlit as st from openai import OpenAI # Set up the Streamlit App st.title("Local ChatGPT with Memory 🦙") st.caption("Chat with locally hosted memory-enabled Llama-3 using the LM Studio 💯") # Point to the local server setup using LM Studio client = OpenAI(base_url="http://localhost:1234/v1", api_key="lm-studio") # Initialize the chat history if "messages" not in st.session_state: st.session_state.messages = [] # Display the chat history for message in st.session_state.messages: with st.chat_message(message["role"]): st.markdown(message["content"]) # Accept user input if prompt := st.chat_input("What is up?"): st.session_state.messages.append({"role": "system", "content": "When the input starts with /add, don't follow up with a prompt."}) # Add user message to chat history st.session_state.messages.append({"role": "user", "content": prompt}) # Display user message in chat message container with st.chat_message("user"): st.markdown(prompt) # Generate response response = client.chat.completions.create( model="lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF", messages=st.session_state.messages, temperature=0.7 ) # Add assistant response to chat history st.session_state.messages.append({"role": "assistant", "content": response.choices[0].message.content}) # Display assistant response in chat message container with st.chat_message("assistant"): st.markdown(response.choices[0].message.content)