-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Implement PipelinePair
primitive and related utility functions
#4
feat: Implement PipelinePair
primitive and related utility functions
#4
Conversation
This was a rather a big one, I tried to cover as much detail as possible, the logic looks OK to me, but I might have missed some edge cases - maybe checking what the test coverage shows to be sure we are testing every relevant piece of code. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree this idea will simplify running a pipeline with the outputs of another pipeline as inputs. It looks quite flexible. 👍 Let's try it out with some examples and get feedback from users.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking forward to seeing this in action in RAGEvaluationHarness!
Pull Request Test Coverage Report for Build 9189096904Details
💛 - Coveralls |
This is the first of a series of PRs that revolves around implementing an evaluation harness (c.f deepset-ai/haystack#7526).
PipelinePair
is a utility class that allows for two pipelines to be used in tandem. The motivation behind this abstraction is to reduce the amount of glue code it takes to connect a, say, RAG pipeline with an evaluation pipeline. It aims to be generic enough work with arbitrary pipelines while making special accommodations to ensure that pipelines of different "shapes" can be connected without much extra work from the user. "Shape" here refers to the modality of pipeline inputs and outputs, e.g: a typical RAG pipeline takes a query and returns an answer whereas a typical RAG evaluation pipeline will take batches of queries and answers. Connecting two such pipelines is handled by automatically aggregating and deaggregating inputs and outputs at the interface between the pipelines.Blocked by #2.