fix(OpenAI): support nested file search properties #670
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.
What:
Description:
It seems OpenAI documentation does not call out that you can have nested compound searches alongside comparison filters. This means instead of having a compound search that houses comparison filters (or just directly comparison). You can have compound filters that contain compound filters. Think a query that becomes something like
AND (X OR Y)
.The comparison is first a compound filter for outer (AND), the inner logic (OR) is a compound filter while the X and Y are comparisons.
PHPStan is not a fan of self recursion so I introduced an intermediate type so I could recurse entries. It works well with real tests that I increasingly made more robust with adaptions to test. I did ignore a PHPStan issue on
toArray()
as the union is expecting all child classes during serialization to array to contain them. We can revisit once we are on PHPStan v2.Related:
fixes: #663