| import React from 'react' | |
| import { | |
| Select, | |
| SelectContent, | |
| SelectItem, | |
| SelectTrigger, | |
| SelectValue | |
| } from '@/components/ui/select' | |
| export const supportedPipelines = [ | |
| 'feature-extraction', | |
| 'image-classification', | |
| 'text-generation', | |
| 'text-classification', | |
| 'text-to-speech', | |
| 'zero-shot-classification' | |
| // 'summarization', | |
| // 'translation' | |
| ] | |
| interface PipelineSelectorProps { | |
| pipeline: string | |
| setPipeline: (pipeline: string) => void | |
| } | |
| const PipelineSelector: React.FC<PipelineSelectorProps> = ({ | |
| pipeline, | |
| setPipeline | |
| }) => { | |
| const formatPipelineName = (pipelineId: string) => { | |
| return pipelineId | |
| .split('-') | |
| .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) | |
| .join(' ') | |
| } | |
| return ( | |
| <Select value={pipeline} onValueChange={setPipeline}> | |
| <SelectTrigger className="w-full text-sm xl:text-base"> | |
| <SelectValue placeholder="Select a pipeline" /> | |
| </SelectTrigger> | |
| <SelectContent> | |
| {supportedPipelines.map((p) => ( | |
| <SelectItem | |
| key={p} | |
| value={p} | |
| className="text-sm xl:text-base data-[state=checked]:font-bold" | |
| > | |
| {formatPipelineName(p)} | |
| </SelectItem> | |
| ))} | |
| </SelectContent> | |
| </Select> | |
| ) | |
| } | |
| export default PipelineSelector | |