GitChatIssue / app.py
Anustup's picture
Upload 3 files
0ba81ce verified
import streamlit as st
import json
from chat_ai import generate_response_for_pre_indexed_repo, generate_response_for_custom_repo
st.set_page_config(page_title="Tune AI Git Issue Chat")
if 'clicked' not in st.session_state:
st.session_state.clicked = False
def click_button():
st.session_state.clicked = True
with st.sidebar:
option = st.selectbox(
'What repo you are looking for?',
('Pre-Indexed', 'Custom'),
index=None,
placeholder="please choose an option"
)
if option == 'Pre-Indexed':
option_of_repo = st.selectbox(
'Choose any one of the pre-index repo',
('Tensorflow', 'Pytorch'),
index=None,
placeholder="please choose an option"
)
st.write("Select number of top issues you are looking for!")
number_of_issues = st.number_input('Insert a number')
elif option == 'Custom':
repo_link = st.text_area("Please enter your public repo link!")
st.write("Select number of top issues you are looking for!")
number_of_issues = st.number_input('Insert a number')
st.button("Ask Tune AI!", on_click=click_button)
if st.session_state.clicked:
with st.spinner("Generating, It may take some minutes🫡..."):
if option == 'Pre-Indexed' and number_of_issues:
if option_of_repo == "Tensorflow":
repo_choice = "Tensorflow"
elif option_of_repo == "Pytorch":
repo_choice = "Pytorch"
gpt_response = generate_response_for_pre_indexed_repo(repo_choice, number_of_issues)
if gpt_response["success"]:
try:
json_data = json.loads(gpt_response["data"])
for issue in json_data['issues']:
st.markdown(f"**{issue['issue_title']}**", unsafe_allow_html=True)
st.write("Rating:", issue['rating']['type'])
st.write("Description:", issue['rating']['description'])
except:
st.json(gpt_response["data"])
else:
st.write("Sorry we encountered some issues!")
elif option == 'Custom' and number_of_issues and repo_link:
gpt_response = generate_response_for_custom_repo(number_of_issues, repo_link)
if gpt_response["success"]:
try:
json_data = json.loads(gpt_response["data"])
for issue in json_data['issues']:
st.markdown(f"**{issue['issue_title']}**", unsafe_allow_html=True)
st.write("Rating:", issue['rating']['type'])
st.write("Description:", issue['rating']['description'])
except:
st.json(gpt_response["data"])
else:
st.write("Sorry we encountered some issues!")