feat(providers): implement ProviderContext for portable storage directory #2138
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
[This PR implements #2139 but generalizes to separate runtime environments/contexts from specific provider configuration]
This PR introduces a new
ProviderContext
object that decouples execution environment concerns from provider configuration. In this first iteration, theProviderContext
is used to introduce storage directory which providers should use as base directory (e.g. for SQLite dbs). This allows removing absolute paths from templates and make the whole distribution more portable across environments. E.g. the current default to store everything in~/.llama
might be difficult to use in a containerized environment where the notion of a $HOME directory might differ from base image to base image.Solution Details
ProviderContext
class that encapsulates runtime environment information- Updated provider interfaces to follow a consistent
context, config, deps
pattern--storage-dir
)LLAMA_STACK_STORAGE_DIR
)Note
Next Steps