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 adds output streaming support in DSPy, which covers:
dspy.streaming.StreamResponse
, including the actual message and the associated predict's information.To use the output streaming, users need to:
dspy.streaming.StreamListener
, with a required attributesignature_field_name
pointing to the output field's name to capture the streaming.predict
andpredict_name
are optional, if not supplied, it will be automatically detected when callingdspy.streamify
.dspy.streamify()
with the list ofStreamLIstener
s, and process the generator. Please see a code demo below.So in a nutshell, we just provide users with the ability to capture the token stream for certain fields of certain predicts, but we just return the stream to users. We don't chime in or interfere with how users use these tokens.
Code example:
It will produce a stream like below:
The name is the one you get from
program.named_predictors()
.