Codebase

Navigate the Codebase using the tree view. Use the filters to highlight where various files are grouped to aid understanding.

Getting Started Commands

Project Structure

Below is a short description of the key directories of the project to aid you when understanding where key files are located.

api/ - This directory contains the Helix API codebase. It includes various subdirectories for different packages such as auth, controller, data, and model. The api/cmd/helix/ subdirectory contains the Helix API server. (Source: )
api/pkg/ - This directory contains the Helix API packages. It includes subdirectories for different functionalities like auth, config, controller, data, dataprep, evals, filestore, freeport, janitor, model, notification, openai, prompts, pubsub, runner, server, store, stripe, system, testfaster_client, tools, types. (Source: )
charts/ - This directory contains Helm charts for deploying Helix applications. The charts/helix-controlplane/ subdirectory contains the Helm chart for the Helix control plane. (Source: )
cog/ - This directory contains the Helix Cog, a Python package for running Helix models as functions. (Source: )
demos/ - This directory contains example Helix applications. It includes subdirectories for job vacancy, product, and sales lead demos. (Source: )
Dockerfile - This file contains instructions for building a Docker image for Helix. (Source: )
docs/ - This directory contains documentation for Helix. It includes subdirectories for configuration files, text examples, and various markdown files. (Source: )
frontend/ - This directory contains the Helix frontend codebase. It includes subdirectories for assets, src, and various configuration files. (Source: )
llamaindex/ - This directory contains the Helix LlamaIndex, a Python package for indexing and serving text data using the Hugging Face Transformers library. (Source: )
runner/ - This directory contains the Helix runner, a Python script for running Helix models as functions using the Cog package. (Source: )
scripts/ - This directory contains various scripts for building, deploying, and managing Helix applications. It includes scripts for managing databases, generating packages, and syncing repositories. (Source: )

Entrypoints

Below are files we identified as entrypoints for to the codebase. This is where the application starts and a good place to start when learning.

Filename - main.go in the "/github.com/helixml/helix/" project is the primary entrypoint of the application. It contains the `main` function, which initializes the Helix server and starts it listening for incoming requests.
Filename - api/main.go is another entrypoint for the Helix project, specifically for the API component. It also includes a `main` function, which sets up and starts the API server.
Filename - demos/main.go is the entrypoint for the Helix demo applications. It contains a `main` function that initializes and runs a specific demo application.