-
Notifications
You must be signed in to change notification settings - Fork 15
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
Add pipeline framework #61
Conversation
@adamkells dw im going to explain everything ☝️ |
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 think this is great. There's a fair bit of complexity but it's all hidden away in such a way that the user doesn't need to worry. This is really impressive and a great next step for the project. I've left a few minor comments but overall great job!
…to feature/pipelines
@adamkells addressed all your comments, don't think you need to go over the code but feel free to check the documentation as I made quite a lot of changes there |
@adamkells my man can i just merge this |
Oh go on then |
Description
Addresses #54
Introduces the concept of
Pipeline
,Component
, andDataContainers
.These are the building blocks of the pipelineing component of HC. We can give the users 3 levels of control:
Component
classes - this adds an extra layer of abstraction, especially useful for wrapping specific models such as MedCAT, ClinicalBERT, LLMs.MedicalCodingPipeline
- prebuilt pipelines are a pre-configured set of components for specific use cases and has the highest level of abstraction. This is the easiest to get up and running with something functional.Extra - loading pipeline integrations from other libraries such as spacy, huggingface, etc. #27
Went over-scope a little and additionally implemented
TextPreprocessor
,Model
,TextPostprocessor
, andMedicalCodingPipeline
, which are implementations ofComponent
andPipeline
. Helps to see what I want the downstream usage to look like.It's probably best to introduce new concepts through examples, so here's a code snippet: