10
10
from codegate .pipeline .base import (
11
11
PipelineContext ,
12
12
PipelineResult ,
13
- SequentialPipelineProcessor ,
14
13
)
15
- from codegate .pipeline .output import OutputPipelineInstance , OutputPipelineProcessor
14
+ from codegate .pipeline .factory import PipelineFactory
15
+ from codegate .pipeline .output import OutputPipelineInstance
16
16
from codegate .providers .completion .base import BaseCompletionHandler
17
17
from codegate .providers .formatting .input_pipeline import PipelineResponseFormatter
18
18
from codegate .providers .normalizer .base import ModelInputNormalizer , ModelOutputNormalizer
@@ -34,19 +34,13 @@ def __init__(
34
34
input_normalizer : ModelInputNormalizer ,
35
35
output_normalizer : ModelOutputNormalizer ,
36
36
completion_handler : BaseCompletionHandler ,
37
- pipeline_processor : Optional [SequentialPipelineProcessor ] = None ,
38
- fim_pipeline_processor : Optional [SequentialPipelineProcessor ] = None ,
39
- output_pipeline_processor : Optional [OutputPipelineProcessor ] = None ,
40
- fim_output_pipeline_processor : Optional [OutputPipelineProcessor ] = None ,
37
+ pipeline_factory : PipelineFactory ,
41
38
):
42
39
self .router = APIRouter ()
43
40
self ._completion_handler = completion_handler
44
41
self ._input_normalizer = input_normalizer
45
42
self ._output_normalizer = output_normalizer
46
- self ._pipeline_processor = pipeline_processor
47
- self ._fim_pipelin_processor = fim_pipeline_processor
48
- self ._output_pipeline_processor = output_pipeline_processor
49
- self ._fim_output_pipeline_processor = fim_output_pipeline_processor
43
+ self ._pipeline_factory = pipeline_factory
50
44
self ._db_recorder = DbRecorder ()
51
45
self ._pipeline_response_formatter = PipelineResponseFormatter (
52
46
output_normalizer , self ._db_recorder
@@ -73,10 +67,10 @@ async def _run_output_stream_pipeline(
73
67
# Decide which pipeline processor to use
74
68
out_pipeline_processor = None
75
69
if is_fim_request :
76
- out_pipeline_processor = self ._fim_output_pipeline_processor
70
+ out_pipeline_processor = self ._pipeline_factory . create_fim_output_pipeline ()
77
71
logger .info ("FIM pipeline selected for output." )
78
72
else :
79
- out_pipeline_processor = self ._output_pipeline_processor
73
+ out_pipeline_processor = self ._pipeline_factory . create_output_pipeline ()
80
74
logger .info ("Chat completion pipeline selected for output." )
81
75
if out_pipeline_processor is None :
82
76
logger .info ("No output pipeline processor found, passing through" )
@@ -117,11 +111,11 @@ async def _run_input_pipeline(
117
111
) -> PipelineResult :
118
112
# Decide which pipeline processor to use
119
113
if is_fim_request :
120
- pipeline_processor = self ._fim_pipelin_processor
114
+ pipeline_processor = self ._pipeline_factory . create_fim_pipeline ()
121
115
logger .info ("FIM pipeline selected for execution." )
122
116
normalized_request = self ._fim_normalizer .normalize (normalized_request )
123
117
else :
124
- pipeline_processor = self ._pipeline_processor
118
+ pipeline_processor = self ._pipeline_factory . create_input_pipeline ()
125
119
logger .info ("Chat completion pipeline selected for execution." )
126
120
if pipeline_processor is None :
127
121
return PipelineResult (request = normalized_request )
0 commit comments