LLM Picker is a flexible, multi-provider chat interface that allows users to interact with various Large Language Models (LLMs) from different providers such as OpenAI, Anthropic, Google Gemini, AWS Bedrock, Groq, and more.
- 🌐 Multi-Provider Support
- Connect to LLMs from OpenAI, Anthropic, Gemini, AWS, Groq, and more
- 🔄 Dynamic Model Selection
- Easily switch between different models within a provider
- 💬 Persistent Chat Memory
- Maintains context across conversations
- 🚀 Lightweight and Fast
- Built with Flask (Python) and Alpine.js
- 🎨 Customizable UI
- Can choose between the standalone Streamlit UI or a client-server based Flask app and UI
Before you begin, ensure you have the following installed:
- Python 3.12+
- pip
- API keys for desired LLM providers
git clone https://github.com/rachedblili/LLMPicker
cd LLMPickerpython3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtCreate a file named .env in the project directory and add your API keys for each LLM provider. For example:
OPENAI_API_KEY="your_key"
SAMBANOVA_API_KEY="your_key"
GEMINI_API_KEY="your_key"
GROQ_API_KEY="your_key"
ANTHROPIC_API_KEY="your_key"
AWS_ACCESS_KEY="your_key"
AWS_ACCESS_SECRET="your_secret"
DEEPSEEK_API_KEY="your_key"
QWEN_API_KEY="your_key"Modify config/llm_models.yaml to add or remove LLM providers and models. It's important to make sure that only providers for which you have API keys are included.
There are two ways to use LLM Picker: Standalone or as a Flask app.
Simply run the streamlit UI using streamlit run streamlit_ui.py
A browser window should open up and you can just get started.
Modify the config/frontend-config.js file to match your backend server URL.
// config/frontend-config.js
const BACKEND_CONFIG = {
BASE_URL: 'http://localhost:5555' // Replace with your backend server URL
};python server.py- Ensure all API keys are correctly configured in the
.envfile. - Check your backend server URL in
config/frontend-config.js. - If you're running on a server, make sure to add your IP address to the
allowed_ipslist inserver.py. - Check your python version, dependencies, and environment settings.
- If you run into problems, feel free to report an issue above or contact me directly through GitHub.
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin feature/my-feature) - Create a pull request
This project is licensed under the MIT License. See the LICENSE file for details.
- Rached Blili
- Project Link: https://github.com/rachedblili/LLMPicker

