Skip to content

Commit 1c38f66

Browse files
markmcrussellb
andcommitted
Add CLI integration section
Co-authored-by: Russell Bryant <rbryant@redhat.com> Signed-off-by: Mark McLoughlin <markmc@redhat.com>
1 parent 330eb6e commit 1c38f66

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

Diff for: docs/sdg/sdg-flow-yaml.md

+28
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,35 @@ TODO: figure out how we want to handle these.
104104
Custom pipelines may have more unique model serving requirements. Instead of serving just one model, we may need to launch the model server with a model and an additional model with adapter.
105105

106106
How should this be expressed in a flow configuration? Can it be inferred, or are explicit options needed?
107+
### CLI Integration
107108

109+
As of the current version of `ilab`, it supports `simple` and `full` as parameters to `--pipeline` to select one of the two types of built-in pipelines included in the library. Once we have support for loading custom pipelines, we need a way for these to be specified with the CLI. Here is a proposed CLI UX for this:
110+
111+
> `ilab data generate`
112+
113+
Use the default pipeline, `simple`.
114+
115+
> `ilab data generate --pipeline full`
116+
117+
Use the built-in `full` pipeline.
118+
119+
> `ilab data generate --pipeline full --pipeline-extend path/to/config.yaml`
120+
121+
Use the `full` pipeline, but extend it with the pipeline defined in the provided config file.
122+
123+
> `ilab data generate --pipeline none --pipeline-extend path/to/other_config.yaml`
124+
125+
Do not use a built-in pipeline. Use only the pipeline in the custom configuration.
126+
127+
### Future CLI Improvements
128+
129+
A possible improvement would be to have a well-defined place on the filesystem where custom pipeline configs can be automatically loaded and included as options to the `--pipeline` parameter.
130+
131+
For example, if the config format included new parameters, `name: full-extended` and `extends: full`, and the CLI discovered and loaded it automatically, we could support `--pipeline full-extended` without needing the additional `--pipeline-extend` option.
132+
133+
`/usr/share/instructlab/sdg/` is a proposed location for this as a place for a distribution of InstructLab to include pre-defined custom pipelines, at least for Linux. See the [Filesystem Hierarchy Standard](https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s11.html) for more details on why this path is appropriate for this use-case.
134+
135+
It would also make sense to support a configuration directory for user's own custom pipeline configurations. Assuming there is a base config directory, these could go in a `sdg` subdirectory. There is a separate proposal that discusses a proposed configuration location: <https://github.com/instructlab/dev-docs/pull/104>. Note this is separate from the distribution-provided, read-only pipelines discussed above with a different location.
108136
## Alternative Approaches
109137

110138
Alternatives already considered and discarded are listed below.

0 commit comments

Comments
 (0)