diff --git a/app/main.py b/app/main.py
index b460c6e..f705ea0 100644
--- a/app/main.py
+++ b/app/main.py
@@ -1,8 +1,9 @@
+from time import sleep
import streamlit as st
from dotenv import load_dotenv
-from api_handlers import OllamaHandler, PerplexityHandler, GroqHandler
+from api_handlers import LitellmHandler
from utils import generate_response
-from config_menu import config_menu, display_config
+from config_menu import config_menu
from logger import logger
import os
@@ -28,13 +29,8 @@ def setup_page():
""", unsafe_allow_html=True)
-def get_api_handler(backend, config):
- if backend == "Ollama":
- return OllamaHandler(config['OLLAMA_URL'], config['OLLAMA_MODEL'])
- elif backend == "Perplexity AI":
- return PerplexityHandler(config['PERPLEXITY_API_KEY'], config['PERPLEXITY_MODEL'])
- else: # Groq
- return GroqHandler(config['GROQ_API_KEY'], config['GROQ_MODEL'])
+def get_api_handler(model, api_key):
+ return LitellmHandler(model=model, api_key=api_key)
def main():
logger.info("Starting the application")
@@ -43,10 +39,7 @@ def main():
st.sidebar.markdown('', unsafe_allow_html=True)
config = config_menu()
- backend = st.sidebar.selectbox("Choose AI Backend", ["Ollama", "Perplexity AI", "Groq"])
- display_config(backend, config)
- api_handler = get_api_handler(backend, config)
- logger.info(f"Selected backend: {backend}")
+ api_handler = get_api_handler(model=config.model, api_key=config.api_key)
user_query = st.text_input("💬 Enter your query:", placeholder="e.g., How many 'R's are in the word strawberry?")
@@ -56,8 +49,15 @@ def main():
response_container = st.empty()
time_container = st.empty()
+
+ max_steps= config.max_steps
+ max_tokens= config.max_tokens
+ temperature= config.temperature
+ timeout= config.timeout
+ sleeptime= config.sleeptime
+
try:
- for steps, total_thinking_time in generate_response(user_query, api_handler):
+ for steps, total_thinking_time in generate_response(user_query, api_handler, max_steps=max_steps, max_tokens=max_tokens, temperature=temperature, timeout=timeout, sleeptime=sleeptime):
with response_container.container():
for title, content, _ in steps:
if title.startswith("Final Answer"):