Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import json | |
| class Streamlit_UI() : | |
| def __init__(self): | |
| pass | |
| # Function to load JSON files | |
| def load_json(self,file_path): | |
| try: | |
| with open(file_path, 'r') as f: | |
| return json.load(f) | |
| except Exception as e: | |
| st.error(f"Error loading {file_path}: {e}") | |
| return [] | |
| def load_streamlit_ui(self): | |
| # Load configuration files | |
| anthropic_file = "./LLMCONFIG/ANTROPIC_CLAUDE_CONFIG_LIST.json" | |
| google_file = "./LLMCONFIG/GOOGLE_GEMINI_CONFIG_LIST.json" | |
| mistral_file = "./LLMCONFIG/MISTRAL_AI_CONFIG_LIST.json" | |
| ollama_file = "./LLMCONFIG/OLLAMA_LLM_CONFIG_LIST.json" | |
| groq_file = "./LLMCONFIG/GROQ_CONFIG_LIST.json" | |
| bedrock_file = "./LLMCONFIG/BEDROCK_CONFIG_LIST.json" | |
| togetherai_file = "./LLMCONFIG/TOGETHERAI_CONFIG_LIST.json" | |
| # Load model configurations | |
| anthropic_models = self.load_json(anthropic_file) | |
| google_models = self.load_json(google_file) | |
| mistral_models = self.load_json(mistral_file) | |
| ollama_models = self.load_json(ollama_file) | |
| groq_models = self.load_json(groq_file) | |
| bedrock_models = self.load_json(bedrock_file) | |
| togetherai_models = self.load_json(togetherai_file) | |
| # Combine all API types into a single dictionary | |
| api_data = { | |
| "groq": groq_models, | |
| "together":togetherai_models, | |
| "openai": [], | |
| "mistral": mistral_models, | |
| "ollama": ollama_models, | |
| "anthropic": anthropic_models, | |
| "bedrock": bedrock_models, | |
| "google": google_models | |
| } | |
| user_inputs = {} | |
| st.set_page_config(page_title= "AUTOGEN ~ 0.2", layout="wide",page_icon='π€') | |
| st.header("π€ " + "AUTOGEN ~ 0.2") | |
| with st.sidebar: | |
| # Streamlit UI | |
| st.title("LLM Configuraton βοΈ") | |
| # Dropdown to select API type | |
| user_inputs['api_type'] = api_type = st.selectbox("Select API Type", options=api_data.keys()) | |
| # Input handling for OpenAI | |
| if api_type == "openai": | |
| st.write("### Provide OpenAI Configuration Details") | |
| selected_model_name = st.text_input("Enter Model Name", value="") | |
| st.session_state['api_key'] = st.text_input("Enter API Key", value="", type="password") | |
| else: | |
| # Get models based on selected API type | |
| selected_models = api_data.get(api_type, []) | |
| # Dropdown to select model | |
| model_names = [model["model"] for model in selected_models] | |
| if st.checkbox("Select Model from list : ",True): | |
| selected_model_name = st.selectbox("Select Model", options=model_names) | |
| # Find the selected model configuration | |
| selected_model_config = next( | |
| (model for model in selected_models if model["model"] == selected_model_name), {} | |
| ) | |
| # Input fields for the selected model configuration | |
| for key, value in selected_model_config.items(): | |
| if key not in ["api_type", "model"]: | |
| # Use a password field for API keys, otherwise a text input | |
| input_label = f"Enter {key}" | |
| if "key" in key.lower(): | |
| st.session_state['api_key'] = user_inputs[key] = st.text_input(input_label, value="", type="password") | |
| elif isinstance(value, bool): | |
| user_inputs[key] = st.checkbox(input_label, value=value) | |
| else: | |
| user_inputs[key] = st.text_input(input_label, value=str(value)) | |
| else : | |
| selected_model_name = st.text_input("Enter Model Name", value="") | |
| st.session_state['api_key'] = st.text_input("Enter api_key", value="", type="password",key='input_modelname') | |
| user_inputs['selected_model_name']= selected_model_name | |
| return user_inputs | |