# Groq Model Comparison Desktop application written in Rust to easily compare LLM responses and response times to find the one best suited for your project. ![application screenshot](images/app_demo.png) Simply choose the models you are interested in from a list: ![model list screenshot](images/model_list.png) Type your prompt into the text area, then hit "submit"! Upon prompt submission, the same prompt will be sent to all of the LLMs you have chosen. Review their responses and view the leaderboard to see which models have the best performance. ![leaderboard screenshot](images/leaderboard.png) ## Usage Rust must be installed on your system to build the application. Install Rust [here](https://www.rust-lang.org/tools/install). Make sure to have your `GROQ_API_KEY` environment variable set in the `.env` file for interacting with the Groq API. Create an API key if you don't already have one [here](https://console.groq.com/keys). ```sh cd groq-model-comparison # For debug cargo build ./target/debug/groq-model-comparison # For release cargo build --release ./target/release/groq-model-comparison ``` ## Project Information This project was created for the purposes of learning the Rust programming language. This was a good way to do so because it includes a lot of common concepts that come up in projects: - Concurrency/Asyncronous Code (`tokio`, `futures`) - Blocking - Asyncronous - Polling - Network Requests (`reqwest`) - Processing JSON requests/responses (`serde`, `serde_json`) - GUI (`egui`, `eframe`) - Dependency Management (`cargo`) - Environment Variables (`dotenv`) Now that I have a good idea on how to work with all of those concepts above, as well as the complex ownership/lifetime/borrowing system in Rust's compiler, I am much better equiped to work on any Rust projects in the future.