import streamlit as st import pandas as pd import random import time import os from query import answer_query from main import repository_loader,get_repo_name from agent import agent_query st.title("Git Bot - v 0.02") if 'flag' not in st.session_state: st.session_state['flag'] = True url = st.sidebar.text_input("Github url") if url and st.session_state.flag: with st.spinner('Embedding your Repository...'): os.environ["collection_name"] =url repository_loader(url) st.session_state.flag = False st.success('Done!') # Initialize chat history if "messages" not in st.session_state: st.session_state.messages = [] # Display chat messages from history on app rerun for message in st.session_state.messages: with st.chat_message(message["role"]): st.markdown(message["content"]) # React to user input if prompt := st.chat_input("What is up?"): # Display user message in chat message container with st.chat_message("user"): st.markdown(prompt) # Add user message to chat history st.session_state.messages.append({"role": "user", "content": prompt}) if not url: st.warning('Please enter your Github Link!', icon='⚠') if url and os.getenv("collection_name"): with st.chat_message("assistant"): message_placeholder = st.empty() full_response = "" # assistant_response =answer_query(prompt,url) assistant_response = agent_query(prompt) # Simulate stream of response with milliseconds delay # for chunk in assistant_response.split(): # full_response += chunk + " " # time.sleep(0.05) # # Add a blinking cursor to simulate typing # message_placeholder.markdown(full_response + "▌") message_placeholder.markdown(assistant_response) # Add assistant response to chat history st.session_state.messages.append({"role": "assistant", "content": assistant_response})