diff --git a/project_description.md b/project_description.md index d2b7fad..bf27941 100644 --- a/project_description.md +++ b/project_description.md @@ -1,4 +1,4 @@ -**Lightweight Code Editor with AI integration** +###**Lightweight Code Editor with AI integration** ##1. Introduction @@ -31,22 +31,22 @@ Since the streamlit app is rerun after each action the session_state is used to This module is the entrypoint for the streamlit functionality. It contains all elements that are visible when the program is run. - - sidebar: - The sidebar shows all python files within the working directory through fuctions found in the FileManager. Each file is represented by a clickable button. - There is no functionality to add or delete files from within the program. To change the available files the user has to manually add them to the directory. - Interacts with FileManger ++ sidebar: + The sidebar shows all python files within the working directory through fuctions found in the FileManager. Each file is represented by a clickable button. + There is no functionality to add or delete files from within the program. To change the available files the user has to manually add them to the directory. + Interacts with FileManger - - code editor: - The code editor shows the contents of the opened file. The contents can be changed, saved and also executed. - Interacts with FileManager, ExecutionEngine ++ code editor: + The code editor shows the contents of the opened file. The contents can be changed, saved and also executed. + Interacts with FileManager, ExecutionEngine - - chat: - This element consists of an input area to send messages to the AI, two toggles to enable different modes as well as a scrollable history. - The first toggle is "enable internet search". This appends the results of an internet search to the prompt that is sent to the AI. - This means the results from the search are not primarily for the user, but for the AI to use recent information before responing to the user. - The second toggle "debug with qwen" appears only when a file was executed. This mode uses more structured output which is also sent to the next prompt for the AI. - With this feedback the AI can help with a more focused approach to find and fix bugs in the code. The user has to implement the fixes themself since the AI cannot change the contents of the file. - Interacts with ChatManager, Debuglogger ++ chat: + This element consists of an input area to send messages to the AI, two toggles to enable different modes as well as a scrollable history. + The first toggle is "enable internet search". This appends the results of an internet search to the prompt that is sent to the AI. + This means the results from the search are not primarily for the user, but for the AI to use recent information before responing to the user. + The second toggle "debug with qwen" appears only when a file was executed. This mode uses more structured output which is also sent to the next prompt for the AI. + With this feedback the AI can help with a more focused approach to find and fix bugs in the code. The user has to implement the fixes themself since the AI cannot change the contents of the file. + Interacts with ChatManager, Debuglogger # 4.2 FileManager.py @@ -91,45 +91,45 @@ The user does not directly see the search, but the result is sent with the promp The following examples illustrate how to use this program. *I want to ask the AI about something in my file* - **user actions**: - click on button with name of the file - - write message to AI - - wait for response - - implement suggestions from AI + **user actions**: + click on button with name of the file + + write message to AI + + wait for response + + implement suggestions from AI - **interaction flow**: - st.sidebar uses list_files() to generate Buttons - - on_click uses open_file() to load content and file Path into session_state - - send_message() uses generate_prompt() to add system_prompt and context = file_content to the user_message - - response is displayed by st.session_state.messages + **interaction flow**: + st.sidebar uses list_files() to generate Buttons + + on_click uses open_file() to load content and file Path into session_state + + send_message() uses generate_prompt() to add system_prompt and context = file_content to the user_message + + response is displayed by st.session_state.messages *I want to ask the AI about somehting in my file, but the AI has outdated info about the topic* - **user actions**: - click on button with name of the file - - activate "enable internet search" toggle - - write message to AI - - wait for response - - implement suggestions from AI + **user actions**: + click on button with name of the file + + activate "enable internet search" toggle + + write message to AI + + wait for response + + implement suggestions from AI - **interaction flow**: - st.sidebar uses list_files() to generate Buttons - - on_click uses open_file() to load content and file Path into session_state - - send_message() uses generate_prompt() to add system_prompt and context = file_content and results from perform_search() to the user_message - - response is displayed by st.session_state.messages + **interaction flow**: + st.sidebar uses list_files() to generate Buttons + + on_click uses open_file() to load content and file Path into session_state + + send_message() uses generate_prompt() to add system_prompt and context = file_content and results from perform_search() to the user_message + + response is displayed by st.session_state.messages *I want to debug my code* - **user actions**: - click on button with name of the file - - click the "execute code" button - - write message to AI - - wait for response - - implement suggestions from AI - - write message to AI - - implement suggestions from AI + **user actions**: + click on button with name of the file + + click the "execute code" button + + write message to AI + + wait for response + + implement suggestions from AI + + write message to AI + + implement suggestions from AI - **interaction flow**: - st.sidebar uses list_files() to generate Buttons - - on_click uses open_file() to load content and file Path into session_state - - on_click uses run_code() to execute the file, results are formatted by format_output() or format_error() - - code_output or code_error are loaded into seassion_state - - send_message() uses generate_prompt() to add system_prompt which detects the "debug" toggle and adds context = file_content and code_output / code_error to the user_message - - response is displayed by st.session_state.messages - - send_message() uses generate_prompt() to add system_prompt which detects the "debug" toggle and adds context = file_content and code_output / code_error and debug response to the user_message - - response is displayed by st.session_state.messages + **interaction flow**: + st.sidebar uses list_files() to generate Buttons + + on_click uses open_file() to load content and file Path into session_state + + on_click uses run_code() to execute the file, results are formatted by format_output() or format_error() + + code_output or code_error are loaded into seassion_state + + send_message() uses generate_prompt() to add system_prompt which detects the "debug" toggle and adds context = file_content and code_output / code_error to the user_message + + response is displayed by st.session_state.messages + + send_message() uses generate_prompt() to add system_prompt which detects the "debug" toggle and adds context = file_content and code_output / code_error and debug response to the user_message + + response is displayed by st.session_state.messages