Fix inconsistent response format in RunnableRails (#313) #1391
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.
Summary
Fixes #313: This PR resolves the inconsistent response format issue in RunnableRails where response formats would change between string and dict depending on whether rails were triggered.
Problem
The inconsistency occurred in these scenarios:
{"output": "blocked message"}
This made it difficult to predict and handle response formats consistently in applications.
Solution
Added a new
consistent_output_format
parameter toRunnableRails
constructor with three options:"preserve"
(default): Maintains current behavior for backward compatibility"always_dict"
: Always returns dict format for predictable JSON-like structure"always_string"
: Always returns string format when possible for simplicityChanges Made
consistent_output_format
parameter toRunnableRails.__init__()
_format_output_consistently()
method to handle format conversioninvoke()
method to apply consistent formatting to all return pathsUsage Examples
Testing
This enhancement provides users with control over response formats while maintaining full backward compatibility.