LLMates / README.md
Sanchit Verma
Add note on starting small and learning by doing
8ed438c

A newer version of the Gradio SDK is available: 6.3.0

Upgrade
metadata
title: LLMates
emoji: ๐Ÿค–
colorFrom: blue
colorTo: green
sdk: gradio
sdk_version: 5.31.0
app_file: app.py
pinned: false

๐Ÿค– LLMates โ€“ Chat with Custom AI Personas

LLMates is a minimal, modular chatbot application that allows you to switch between different AI assistant personas powered by OpenRouter's language models. The application also supports OpenAI and local models via Ollama as alternative backends.

๐Ÿง  Why I Built This

LLMates is the first step in my return to serious, grounded building in the AI space.

Iโ€™m just starting out again. This isnโ€™t the most impressive version of me or the most ambitious project I could build โ€” in fact, itโ€™s pretty simple. But thatโ€™s the point. After working as a software engineer until 2023, getting back into the groove โ€” especially in todayโ€™s AI/ML world โ€” has felt completely different.

With AI pair programmers and new tooling everywhere, things move fast. Sometimes too fast. When code โ€œjust works,โ€ I catch myself thinking I didnโ€™t really build it. It feels more like vibe coding than actual engineering. And that leads to impostor syndrome.

So I decided to reset.

LLMates is my first intentionally small project โ€” built using an AI-first development workflow in Windsurf (after experimenting with VS Code + Copilot and PyCharm). The idea was to slow down, ask why things work, and take back a sense of control over my code โ€” and to learn how to work with an AI pair programmer, not just let it code for me.

With this project, I wanted to:

  • Get back to core engineering habits
  • Learn how modern LLM tooling actually fits together โ€” APIs, UI, deployment
  • Practice working with AI pair programmers in a more intentional way
  • Start small and build toward deeper, lower-level projects with confidence

โ€œAnything worth doing is worth doing poorly.โ€

This is my way of showing up, learning by doing, and giving myself permission to start small.

This marks Week 1 of a weekly cadence of AI/ML projects โ€” not just to ship, but to really understand what I build.

๐Ÿš€ Features

  • Multiple AI personas with distinct personalities and expertise
  • Primary support for OpenRouter's wide range of models (including GPT-4, Claude, and more)
  • Simple and intuitive Gradio-based web interface
  • Easy configuration through environment variables

๐Ÿ’ก Available Personas

  • Python Tutor: Get help with Python programming concepts and debugging
  • Regex Helper: Expert assistance with regular expressions
  • Motivational Coach: Encouraging and inspiring conversations (default)
  • Startup Advisor: Practical advice for startups and entrepreneurship

๐Ÿ› ๏ธ Installation

  1. Clone the repository:

    git clone https://github.com/sanchitv7/llmates.git
    cd llmates
    
  2. Install the required dependencies:

    pip install -r requirements.txt
    
  3. Create a .env file and configure your settings (see Configuration section below)

โš™๏ธ Configuration

Copy the example .env file and update it with your preferred settings:

# Choose one of the following backends

## OpenRouter
USE_OPENROUTER=true
OPENROUTER_API_KEY=your_openrouter_api_key
OPENROUTER_MODEL=meta-llama/llama-3-70b-instruct  # or openai/gpt-4, anthropic/claude-3-opus, google/gemini-pro, etc.

## Ollama
# USE_OLLAMA=false
# OLLAMA_MODEL=llama3

## OpenAI
# OPENAI_API_KEY=your_openai_api_key
# OPENAI_MODEL=gpt-4o

# Application Settings
DEFAULT_PERSONA="Motivational Coach"
TEMPERATURE=0.7
MAX_TURNS=10

๐Ÿš€ Running the Application

Start the application with:

python app.py

The application will start a local web server, and you can access it in your browser at http://localhost:7860.

๐Ÿ› ๏ธ Tech Stack

  • UI: Gradio
  • Primary Backend: OpenRouter (with support for 100+ models)
  • Alternative Backends: OpenAI API, Ollama
  • Language: Python 3.8+
  • Configuration: Environment variables via python-dotenv
  • Dependencies: openai, gradio, python-dotenv, requests