diff --git a/app/domain/__init__.py b/app/domain/__init__.py index b32ca72..27fd881 100644 --- a/app/domain/__init__.py +++ b/app/domain/__init__.py @@ -14,3 +14,4 @@ ) from .pyris_message import PyrisMessage, IrisMessageRole from app.domain.data import image_message_content_dto +from app.domain.feature_dto import FeatureDTO diff --git a/app/domain/feature_dto.py b/app/domain/feature_dto.py new file mode 100644 index 0000000..997e272 --- /dev/null +++ b/app/domain/feature_dto.py @@ -0,0 +1,7 @@ +from pydantic import BaseModel + + +class FeatureDTO(BaseModel): + id: str + name: str + description: str diff --git a/app/web/routers/pipelines.py b/app/web/routers/pipelines.py index f92f0d6..eb19819 100644 --- a/app/web/routers/pipelines.py +++ b/app/web/routers/pipelines.py @@ -19,6 +19,7 @@ from app.pipeline.chat.course_chat_pipeline import CourseChatPipeline from app.pipeline.chat.exercise_chat_pipeline import ExerciseChatPipeline from app.dependencies import TokenValidator +from app.domain import FeatureDTO from app.pipeline.competency_extraction_pipeline import CompetencyExtractionPipeline router = APIRouter(prefix="/api/v1/pipelines", tags=["pipelines"]) @@ -127,9 +128,51 @@ def run_competency_extraction_pipeline( thread.start() -@router.get("/{feature}") +@router.get("/{feature}/variants") def get_pipeline(feature: str): """ - Get the pipeline for the given feature. + Get the pipeline variants for the given feature. """ - return Response(status_code=status.HTTP_501_NOT_IMPLEMENTED) + match feature: + case "CHAT": + return [ + FeatureDTO( + id="default", + name="Default Variant", + description="Default chat variant.", + ) + ] + case "PROGRAMMING_EXERCISE_CHAT": + return [ + FeatureDTO( + id="default", + name="Default Variant", + description="Default programming exercise chat variant.", + ) + ] + case "COURSE_CHAT": + return [ + FeatureDTO( + id="default", + name="Default Variant", + description="Default course chat variant.", + ) + ] + case "COMPETENCY_GENERATION": + return [ + FeatureDTO( + id="default", + name="Default Variant", + description="Default competency generation variant.", + ) + ] + case "LECTURE_INGESTION": + return [ + FeatureDTO( + id="default", + name="Default Variant", + description="Default lecture ingestion variant.", + ) + ] + case _: + return Response(status_code=status.HTTP_400_BAD_REQUEST)