File-based Approach
warning
This page is still under construction, and should be read as a scratchpad
Jan use the local filesystem for data persistence, similar to VSCode. This allows for composability and tinkerability.
janroot/               # Jan's root folder (e.g. ~/jan)
    models/            # For raw AI models
    threads/           # For conversation history
    assistants/        # For AI assistants' configs, knowledge, etc.
/models
    /modelA
        model.json        # Default model settings
        llama-7b-q4.gguf  # Model binaries
/threads
    /jan-unixstamp
        thread.json       # thread metadata (e.g. subject)
        messages.jsonl    # messages
        files/            # RAG
/assistants
    /jan                  # A default assistant that can use all models
        assistant.json    # Assistant configs (see below)
        package.json      # Import npm modules, e.g. Langchain, Llamaindex
        /src              # For custom code
            index.js      # Entrypoint
                          # `/threads` at root level
                          # `/models` at root level
    /shakespeare          # Example of a custom assistant
        assistant.json
        package.json
        /threads          # Assistants remember conversations in the future
        /models           # Users can upload custom models
Data Dependencies
- User/ Integrator
 - Assistant object
 - Model object
 - Thread object
 - Built-in tool object