Skip to content

ross-zimmerle/chroma-db

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChromaDB Example Project

A Python project demonstrating ChromaDB integration for vector similarity search and document storage, with support for loading and querying Markdown files.

Features

  • Load and index Markdown documents from a directory
  • Support for both persistent and in-memory database modes
  • Multiple client setup options (local, server-based, ephemeral)
  • Document search with metadata support
  • Automatic file opening for search results
  • Development mode support

Prerequisites

  • Python 3.10 or higher
  • Poetry for dependency management

Installation

  1. Clone this repository
  2. Install dependencies using Poetry:
    poetry install

Project Structure

.
├── src/
│   ├── __init__.py
│   ├── main.py           # Main application entry point
│   ├── chroma_setups.py  # ChromaDB client configuration
│   ├── data_loader.py    # Document loading utilities
│   ├── utils.py          # General utility functions
│   └── config.py         # Application configuration
├── input_data/           # Default directory for markdown files
├── poetry.lock
└── pyproject.toml

Usage

Basic Usage

Run the example application:

poetry run python src/main.py

Development Mode

Set the DEV_MODE environment variable to enable development features:

DEV_MODE=true poetry run python src/main.py

Client Types

The project supports three types of ChromaDB clients:

  1. Persistent Client: Default mode, stores data on disk
  2. Ephemeral Client: In-memory storage, useful for testing
  3. Server Client: Connects to a remote ChromaDB server

Configuration

  • Default input directory: input_data/
  • ChromaDB server URL: http://localhost:8000 (for server mode)
  • File types supported: Markdown (.md)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages