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.Dockerfile and api.py - These files are related to creating and running the API server for the project. The Dockerfile defines the environment and dependencies for the API server, while the py file contains the Python code for the API.
app.css - This file contains global CSS styles for the project.
App.svelte - This file is the main Svelte component for the project's front-end.
assets - This directory contains static assets, such as images or fonts, that are used by the project.
bot.Dockerfile and bot.py - These files are related to creating and running a bot or automated script for the project. The Dockerfile defines the environment and dependencies for the bot, while the py file contains the Python code for the bot.
chains.py - This file contains code for creating and managing machine learning models or "chains" in the context of the project.
CONTRIBUTING.md - This file contains guidelines for contributing to the project, including how to report bugs, submit pull requests, and other development best practices.
datamodel.png - This file is a visual representation of the data model used by the project.
docker-compose.yml - This file defines the services and dependencies for the project, including the API server, bot, and other components, and how they should be configured and run together.
embedding_model - This directory contains machine learning models or "embeddings" that are used by the project.
env.example - This file provides an example of environment variables that can be set for the project.
front-end - This directory contains the front-end code for the project, including HTML, CSS, and JavaScript files.
front-end.Dockerfile - This file defines the environment and dependencies for building and running the front-end of the project.
images - This directory contains images or other media files used by the project.
index.html - This file is the main HTML file for the project's front-end.
install_ollama.sh - This file is a shell script for installing Ollama, a machine learning library used by the project.
jsconfig.json - This file defines the JavaScript project configuration for the project.
lib - This directory contains reusable code or libraries for the project.
LICENSE - This file outlines the terms under which the project can be used, modified, and distributed.
loader.Dockerfile and loader.py - These files are related to creating and running a data loader script for the project. The Dockerfile defines the environment and dependencies for the loader, while the py file contains the Python code for the loader.
main.js - This file is the main JavaScript file for the project.
package-lock.json and package.json - These files manage the project's dependencies and their versions.
pdf_bot.Dockerfile and pdf_bot.py - These files are related to creating and running a bot for generating PDF reports in the project.
postcss.config.js - This file defines the PostCSS configuration for the project.
public - This directory contains static files that are served publicly, such as images or CSS files.
pull_model.Dockerfile - This file defines the environment and dependencies for building and running a machine learning model in the project.
readme.md - This file provides additional documentation or instructions for specific components or scripts in the project.
README.md - This file provides an overview of the project, including its purpose, installation instructions, and usage information.
requirements.txt - This file lists the required Python packages and their versions for the project.
running_on_wsl.md - This file provides instructions for running the project on Windows Subsystem for Linux (WSL).
src - This directory contains the source code for the project, including components, styles, and scripts.
svelte.config.js - This file defines the Svelte configuration for the project.
tailwind.config.js - This file defines the Tailwind CSS configuration for the project.
utils.py - This file contains utility functions or scripts for the project.
vite-env.d.ts - This file provides TypeScript definitions for the project's build tool, Vite.
vite.config.js - This file defines the Vite configuration for the project.
vite.svg - This file is an SVG icon for the project's build tool, Vite.

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.

main.js (EntryPoint) - This file is the entry point for the application in the "/github.com/docker/genai-stack/" project. It sets up the Express server, initializes middleware, and handles various routes for different API endpoints. The main class in this file manages the server and its functionality.