| """ | |
| Module: app_sidebar | |
| This module defines the app_sidebar function for managing the sidebar interface. | |
| Dependencies: | |
| - streamlit: The Streamlit library for building web applications. | |
| - PIL: Python Imaging Library for image processing. | |
| - numpy: Library for numerical computing. | |
| - pandas: Library for data manipulation and analysis. | |
| Functions: | |
| - app_sidebar: Function for managing the sidebar interface. | |
| - configure: Function for configuring the agent and tools. | |
| - content_and_context: Function for setting the content and context. | |
| """ | |
| import streamlit as st | |
| from PIL import Image | |
| import numpy as np | |
| import pandas as pd | |
| def app_sidebar(controller): | |
| """ | |
| Function for managing the sidebar interface. | |
| Args: | |
| - controller (Controller): An instance of the Controller class for handling user submissions and managing conversations. | |
| Returns: | |
| - None | |
| """ | |
| with st.sidebar: | |
| st.header("Set Tools and Option. ") | |
| with st.expander("Configure the agent and tools"): | |
| configure(controller.agent_config) | |
| with st.expander("Set the Content and Context"): | |
| content_and_context(controller.agent_config) | |
| def configure(agent_config): | |
| """ | |
| Function for configuring the agent and tools. | |
| Args: | |
| - agent_config (AgentConfig): An instance of the AgentConfig class for managing configuration settings for the agent. | |
| Returns: | |
| - None | |
| """ | |
| st.markdown("Change the agent's configuration here.") | |
| agent_config.url_endpoint = st.selectbox("Select Inference URL", agent_config.agent_urls) | |
| agent_config.log_enabled = st.checkbox("Enable Logging") | |
| agent_config.s_tool_checkboxes = [st.checkbox(f"{tool.name} --- {tool.description} ") for tool in agent_config.tool_loader.tools] | |
| def content_and_context(agent_config): | |
| """ | |
| Function for setting the content and context. | |
| Args: | |
| - agent_config (AgentConfig): An instance of the AgentConfig class for managing configuration settings for the agent. | |
| Returns: | |
| - None | |
| """ | |
| agent_config.context = st.text_area("Context") | |
| agent_config.image = st.camera_input("Take a picture") | |
| img_file_buffer = st.file_uploader('Upload a PNG image', type='png') | |
| if img_file_buffer is not None: | |
| image_raw = Image.open(img_file_buffer) | |
| agent_config.image = np.array(image_raw) | |
| st.image(agent_config.image) | |
| uploaded_file = st.file_uploader("Choose a pdf", type='pdf') | |
| if uploaded_file is not None: | |
| agent_config.document = uploaded_file.getvalue() | |
| st.write(agent_config.document) | |
| uploaded_txt_file = st.file_uploader("Choose a txt", type='txt') | |
| if uploaded_txt_file is not None: | |
| agent_config.document = uploaded_txt_file.getvalue() | |
| st.write(agent_config.document) | |
| uploaded_csv_file = st.file_uploader("Choose a csv", type='csv') | |
| if uploaded_csv_file is not None: | |
| agent_config.document = uploaded_csv_file.getvalue() | |
| st.write(agent_config.document) | |
| uploaded_csv_file = st.file_uploader("Choose audio", type='wav') | |
| if uploaded_csv_file is not None: | |
| agent_config.document = uploaded_csv_file.getvalue() | |
| st.write(agent_config.document) | |
| uploaded_csv_file = st.file_uploader("Choose video", type='avi') | |
| if uploaded_csv_file is not None: | |
| agent_config.document = uploaded_csv_file.getvalue() | |
| st.write(agent_config.document) | |