File size: 1,449 Bytes
852dc0d
 
22f8eb7
a94a061
046ca57
5b8fd7e
25647ae
852dc0d
 
 
 
 
 
 
 
22f8eb7
 
 
a94a061
 
 
 
 
 
852dc0d
046ca57
 
 
 
 
5b8fd7e
 
 
25647ae
 
 
852dc0d
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { useModel } from '../contexts/ModelContext'
import { TextGenerationProvider } from '../contexts/TextGenerationContext'
import { FeatureExtractionProvider } from '../contexts/FeatureExtractionContext'
import { ZeroShotClassificationProvider } from '../contexts/ZeroShotClassificationContext'
import { ImageClassificationProvider } from '../contexts/ImageClassificationContext'
import { TextClassificationProvider } from '../contexts/TextClassificationContext'
import { TextToSpeechProvider } from '../contexts/TextToSpeechContext'

export const PipelineLayout = ({ children }: { children: React.ReactNode }) => {
  const { pipeline } = useModel()

  switch (pipeline) {
    case 'text-generation':
      return <TextGenerationProvider>{children}</TextGenerationProvider>

    case 'feature-extraction':
      return <FeatureExtractionProvider>{children}</FeatureExtractionProvider>

    case 'zero-shot-classification':
      return (
        <ZeroShotClassificationProvider>
          {children}
        </ZeroShotClassificationProvider>
      )

    case 'image-classification':
      return (
        <ImageClassificationProvider>{children}</ImageClassificationProvider>
      )

    case 'text-classification':
      return <TextClassificationProvider>{children}</TextClassificationProvider>

    case 'text-to-speech':
      return <TextToSpeechProvider>{children}</TextToSpeechProvider>

    default:
      return <>{children}</>
  }
}