Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.baseten.co/llms.txt

Use this file to discover all available pages before exploring further.

Truss allows you to include custom modules or third-party packages not available on PyPi using two methods:
  1. The packages directory: For bundling small, Truss-specific packages.
  2. The external_package_dirs configuration: For sharing packages across multiple Trusses.

1. Using the packages directory

Each Truss includes a packages/ directory where you can place Python modules to be included at build time. Example directory structure:
stable-diffusion/
    packages/
        package_1/
            subpackage/
                script.py
        package_2/
            utils.py
    model/
        model.py
        __init__.py
    config.yaml
Importing a package in model.py:
model.py
from package_1.subpackage.script import run_script
from package_2.utils import RandomClass

class Model:
    def __init__(self, **kwargs):
        self.random_class = RandomClass()

    def load(self):
        run_script()
Use this method for lightweight, Truss-specific packages.

2. Using external_package_dirs

If multiple Trusses need access to the same external package, define external_package_dirs in config.yaml: Note: Package here refers to an importable directory with Python source code. Example directory structure:
stable-diffusion/
    model/
        model.py
        __init__.py
    config.yaml
super_cool_awesome_plugin/
    plugin1/
        script.py
    plugin2/
        run.py
Configuring external_package_dirs in config.yaml:
config.yaml
external_package_dirs:
  - ../super_cool_awesome_plugin/
Paths must be relative to config.yaml.
Note: Be sure to include any requirements for these packages in your truss configuration. Referencing external packages in model.py:
model.py
from plugin1.script import cool_constant
from plugin2.run import AwesomeRunner

class Model:
    def __init__(self, **kwargs):
        self.awesome_runner = AwesomeRunner()

    def load(self):
        self.awesome_runner.run(cool_constant)