Skip to content

tkeneix/starting-ragchatbot-codebase

 
 

Repository files navigation

Course Materials RAG System

A Retrieval-Augmented Generation (RAG) system designed to answer questions about course materials using semantic search and AI-powered responses.

Overview

This application is a full-stack web application that enables users to query course materials and receive intelligent, context-aware responses. It uses ChromaDB for vector storage, Anthropic's Claude for AI generation, and provides a web interface for interaction.

Prerequisites

  • Python 3.13 or higher
  • uv (Python package manager)
  • An Anthropic API key (for Claude AI)
  • For Windows: Use Git Bash to run the application commands - Download Git for Windows

Installation

  1. Install uv (if not already installed)

    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. Install Python dependencies

    uv sync
  3. Set up environment variables

    Create a .env file in the root directory:

    ANTHROPIC_API_KEY=your_anthropic_api_key_here

Running the Application

Quick Start

Use the provided shell script:

chmod +x run.sh
./run.sh

Manual Start

cd backend
uv run uvicorn app:app --reload --port 8000

The application will be available at:

  • Web Interface: http://localhost:8000
  • API Documentation: http://localhost:8000/docs

Testing

The project uses pytest for comprehensive testing with async support.

Running Tests

# Run all tests
uv run --group test pytest

# Run with coverage
uv run --group test pytest --cov=backend

# Run specific test file
uv run --group test pytest tests/test_api.py

# Run specific test class
uv run --group test pytest tests/test_api.py::TestQueryEndpoint

# Run with verbose output
uv run --group test pytest -v

Test Structure

  • tests/test_api.py - Tests for FastAPI endpoints
  • tests/test_models.py - Tests for Pydantic models
  • tests/conftest.py - Shared fixtures and configuration

Test Coverage

The test suite includes:

  • API endpoint testing with mocking
  • Pydantic model validation testing
  • Async endpoint testing
  • Error handling scenarios
  • Request/response validation

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 72.5%
  • CSS 15.7%
  • JavaScript 6.8%
  • HTML 4.5%
  • Shell 0.5%