Skip to content
Open
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
41d709c
Add ChatVariant that will replace CourseChatVariant / LectureChatVari…
Senan04 Feb 2, 2026
76fac4c
Add ChatPipeline class which will replace CourseChatPipeline / Exerci…
Senan04 Feb 2, 2026
c6ae0b4
Add __repr__(), __str__(), get_memiris_reference(), get_memiris_tenan…
Senan04 Feb 6, 2026
cb841fc
Add Methods to ChatPipelines so it works for Programming_Exercise case
Senan04 Feb 6, 2026
63f739d
Add missing methods from the 4 pipelines to ChatPipeline, Refactor pi…
Senan04 Feb 10, 2026
534043d
Unify CourseDTO and ExtendedCourseDTO
Senan04 Feb 15, 2026
301b202
Introduce ExerciseDTO base class which TextExerciseDTO & ProgrammingE…
Senan04 Feb 16, 2026
c3d4f0b
Remove ChatPipelineExecutionBaseDataDTO as it was not in use, Combine…
Senan04 Feb 16, 2026
06d9b00
Add ChatToolProviders, Remove Tooltype Enum from ChatPipeline and upd…
Senan04 Feb 20, 2026
03efcb1
Add ChatSystemPrompt V1 & build_messages in ChatPipeline.
Senan04 Feb 21, 2026
5e8dafd
Simplify ChatVariant as base class has all relevant fields and method…
Senan04 Feb 21, 2026
485e745
Add ChatStatusCallback in status_update.py & adjust pipelines.py to u…
Senan04 Feb 21, 2026
99d1bef
Add context Field to chat_pipeline_execution_dto.py, Unify pipeline s…
Senan04 Feb 21, 2026
09a6a5d
Delete old Pipelines and update features.py & registery.py to use the…
Senan04 Feb 21, 2026
2878544
Delete old pipeline specific callback classes
Senan04 Feb 21, 2026
e629bdf
ChatSystemPrompt V2
Senan04 Feb 22, 2026
ede615e
Remove unused attributes.
Senan04 Feb 22, 2026
f424c70
Move lecture_content_storage, faq_storage, accessed_memory_storage in…
Senan04 Feb 24, 2026
5951043
Delete old Prompt Templates
Senan04 Feb 24, 2026
dce8c34
ChatToolProviders now only checks for data availability and not for c…
Senan04 Mar 30, 2026
9cc6162
Move allow_lecture_tool, allow_faq_tool, allow_memiris_tool to state,…
Senan04 Mar 30, 2026
6e07a11
Merge branch 'main' into iris/chore/unify-chat-pipelines
Senan04 Apr 1, 2026
f6ca428
Rename chatConext to IrisChatMode, Add citationModels in AbstractVari…
Senan04 Apr 10, 2026
86fe3b9
Merge main into this branch
Senan04 Apr 10, 2026
f5b28a7
Merge branch 'main' into iris/chore/unify-chat-pipelines
Senan04 Apr 11, 2026
bce300d
Remove ChatVariant, Remove course field from TextExerciseDTO as it's …
Senan04 Apr 13, 2026
4026fdb
Update ChatSystemPrompt
Senan04 Apr 13, 2026
c463cca
Update ChatSystemPrompt
Senan04 Apr 13, 2026
61055a3
coderabbit feedback .
Senan04 Apr 16, 2026
66a2349
fix tests.
Senan04 Apr 16, 2026
0152957
Make MCQ Generation only available for Lecture & Course contexts (sam…
Senan04 Apr 16, 2026
7a0770c
Remove PyrisEventDTO & TODO's
Senan04 Apr 19, 2026
fefa5f0
Refine ChatSystemPrompt
Senan04 Apr 19, 2026
97e08ab
Add checks for MCQ part & exercise details
Senan04 Apr 19, 2026
307b5cd
Run mcq_post_agent_hook after title generation and citation generatio…
Senan04 Apr 19, 2026
b114560
Merge branch 'main' into iris/chore/unify-chat-pipelines
Senan04 Apr 20, 2026
49edc53
Merge branch 'main' into iris/chore/unify-chat-pipelines
Senan04 Apr 20, 2026
0860e30
Merge branch 'main' into iris/chore/unify-chat-pipelines
Senan04 Apr 29, 2026
51f415e
Merge branch 'main' into iris/chore/unify-chat-pipelines
Senan04 May 3, 2026
9160caa
Iris: Pass is_local flag to autonomous tutor pipeline retrievers
toukhi May 4, 2026
569cf9c
Fix citation
Senan04 May 4, 2026
979200f
Merge remote-tracking branch 'origin/iris/chore/unify-chat-pipelines'…
Senan04 May 4, 2026
f656547
feature: add local Whisper and Ollama support for transcription inges…
Nayer-kotry May 4, 2026
639470e
fix: add local attribute support to LectureRetrieval, FaqRetrieval an…
Nayer-kotry May 4, 2026
f2a425d
Merge branch 'main' into iris/chore/unify-chat-pipelines
Senan04 May 7, 2026
894bca7
Make lang_key in UserDTO non-optional & adjust occurences
Senan04 May 7, 2026
b50e5c5
Fix guards against DTO fields, that are not optional
Senan04 May 7, 2026
27eb38c
Merge branch 'main' into iris/chore/unify-chat-pipelines
Senan04 May 7, 2026
1ac5c46
Add guard to ChatStatusCallback .
Senan04 May 7, 2026
4a0afdc
Merge remote-tracking branch 'origin/iris/chore/unify-chat-pipelines'…
Senan04 May 7, 2026
812d3c4
Revert "fix: add local attribute support to LectureRetrieval, FaqRetr…
Senan04 May 8, 2026
900dbdf
Revert "feature: add local Whisper and Ollama support for transcripti…
Senan04 May 8, 2026
60a483f
Merge branch 'main' into iris/chore/unify-chat-pipelines
toukhi May 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions iris/src/iris/domain/__init__.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,5 @@
from iris.domain.chat.course_chat.course_chat_pipeline_execution_dto import (
CourseChatPipelineExecutionDTO,
)
from iris.domain.chat.exercise_chat.exercise_chat_pipeline_execution_dto import (
ExerciseChatPipelineExecutionDTO,
)
from iris.domain.feature_dto import FeatureDTO

from .chat.chat_pipeline_execution_base_data_dto import (
ChatPipelineExecutionBaseDataDTO,
)
from .chat.chat_pipeline_execution_dto import ChatPipelineExecutionDTO
from .competency_extraction_pipeline_execution_dto import (
CompetencyExtractionPipelineExecutionDTO,
Expand All @@ -22,10 +13,7 @@
from .pipeline_execution_settings_dto import PipelineExecutionSettingsDTO

__all__ = [
"CourseChatPipelineExecutionDTO",
"ExerciseChatPipelineExecutionDTO",
"FeatureDTO",
"ChatPipelineExecutionBaseDataDTO",
"ChatPipelineExecutionDTO",
"CompetencyExtractionPipelineExecutionDTO",
"image_message_content_dto",
Expand Down

This file was deleted.

29 changes: 28 additions & 1 deletion iris/src/iris/domain/chat/chat_pipeline_execution_dto.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,38 @@
from pydantic import Field

from iris.common.pyris_message import PyrisMessage
from iris.domain.data.course_dto import CourseDTO
from iris.domain.data.lecture_dto import PyrisLectureDTO
from iris.domain.data.metrics.student_metrics_dto import StudentMetricsDTO
from iris.domain.data.programming_exercise_dto import ProgrammingExerciseDTO
from iris.domain.data.programming_submission_dto import ProgrammingSubmissionDTO
from iris.domain.data.text_exercise_dto import TextExerciseDTO
from iris.domain.data.user_dto import UserDTO
from iris.domain.pipeline_execution_dto import PipelineExecutionDTO
from iris.pipeline.chat.iris_chat_mode import IrisChatMode


class ChatPipelineExecutionDTO(PipelineExecutionDTO):
"""
Data Transfer Object for chat pipeline execution
"""

chat_mode: IrisChatMode = Field(alias="chatMode")
user: UserDTO
course: CourseDTO

session_title: Optional[str] = Field(alias="sessionTitle", default=None)
chat_history: List[PyrisMessage] = Field(alias="chatHistory", default=[])
user: Optional[UserDTO]
metrics: Optional[StudentMetricsDTO] = None
custom_instructions: Optional[str] = Field(alias="customInstructions", default="")

programming_exercise: Optional[ProgrammingExerciseDTO] = Field(
alias="programmingExercise", default=None
)
text_exercise: Optional[TextExerciseDTO] = Field(alias="textExercise", default=None)
lecture: Optional[PyrisLectureDTO] = None
lecture_unit_id: Optional[int] = Field(alias="lectureUnitId", default=None)
programming_exercise_submission: Optional[ProgrammingSubmissionDTO] = Field(
alias="programmingExerciseSubmission", default=None
)
text_exercise_submission: str = Field(alias="textExerciseSubmission", default="")
Empty file.

This file was deleted.

Empty file.

This file was deleted.

This file was deleted.

Empty file.

This file was deleted.

Empty file.

This file was deleted.

39 changes: 36 additions & 3 deletions iris/src/iris/domain/data/course_dto.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,42 @@
from typing import Optional
from datetime import datetime
from typing import List, Optional

from pydantic import BaseModel, Field

from iris.domain.data.competency_dto import CompetencyDTO
from iris.domain.data.exam_dto import ExamDTO
from iris.domain.data.exercise_with_submissions_dto import (
ExerciseWithSubmissionsDTO,
)
from iris.domain.data.programming_exercise_dto import ProgrammingLanguage


class CourseDTO(BaseModel):
"""
Data Transfer Object representing a course and its configuration.
"""

id: int
name: Optional[str]
description: Optional[str] = Field(None)
name: Optional[str] = None
description: Optional[str] = None
start_time: Optional[datetime] = Field(alias="startTime", default=None)
end_time: Optional[datetime] = Field(alias="endTime", default=None)
default_programming_language: Optional[ProgrammingLanguage] = Field(
alias="defaultProgrammingLanguage", default=None
)
max_complaints: Optional[int] = Field(alias="maxComplaints", default=None)
max_team_complaints: Optional[int] = Field(alias="maxTeamComplaints", default=None)
max_complaint_time_days: Optional[int] = Field(
alias="maxComplaintTimeDays", default=None
)
max_request_more_feedback_time_days: Optional[int] = Field(
alias="maxRequestMoreFeedbackTimeDays", default=None
)
max_points: Optional[int] = Field(alias="maxPoints", default=None)
presentation_score: Optional[int] = Field(alias="presentationScore", default=None)
exercises: List[ExerciseWithSubmissionsDTO] = Field(alias="exercises", default=[])
exams: List[ExamDTO] = Field(alias="exams", default=[])
competencies: List[CompetencyDTO] = Field(alias="competencies", default=[])
student_analytics_dashboard_enabled: bool = Field(
alias="studentAnalyticsDashboardEnabled", default=False
)
41 changes: 0 additions & 41 deletions iris/src/iris/domain/data/extended_course_dto.py

This file was deleted.

8 changes: 4 additions & 4 deletions iris/src/iris/domain/data/programming_exercise_dto.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,16 @@ class ProgrammingExerciseDTO(BaseModel):
"""

id: int
name: str
title: str = ""
problem_statement: Optional[str] = Field(alias="problemStatement", default=None)
start_date: Optional[datetime] = Field(alias="startDate", default=None)
end_date: Optional[datetime] = Field(alias="endDate", default=None)
programming_language: Optional[str] = Field(
alias="programmingLanguage", default=None
)
template_repository: Dict[str, str] = Field(alias="templateRepository", default={})
solution_repository: Dict[str, str] = Field(alias="solutionRepository", default={})
test_repository: Dict[str, str] = Field(alias="testRepository", default={})
problem_statement: str = Field(alias="problemStatement", default=None)
start_date: Optional[datetime] = Field(alias="startDate", default=None)
end_date: Optional[datetime] = Field(alias="endDate", default=None)
max_points: Optional[float] = Field(alias="maxPoints", default=None)
recent_changes: Optional[str] = Field(
alias="recentChanges",
Expand Down
7 changes: 2 additions & 5 deletions iris/src/iris/domain/data/text_exercise_dto.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,11 @@

from pydantic import BaseModel, Field

from iris.domain.data.course_dto import CourseDTO


class TextExerciseDTO(BaseModel):
id: int
title: str
course: CourseDTO
title: str = ""
problem_statement: Optional[str] = Field(alias="problemStatement", default=None)
example_solution: Optional[str] = Field(alias="exampleSolution", default=None)
start_date: Optional[datetime] = Field(alias="startDate", default=None)
end_date: Optional[datetime] = Field(alias="endDate", default=None)
example_solution: Optional[str] = Field(alias="exampleSolution", default=None)
Empty file.
10 changes: 0 additions & 10 deletions iris/src/iris/domain/event/pyris_event_dto.py

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
from typing import List, Optional

from memiris import MemoryDTO
from memiris.api.memory_dto import MemoryDTO
from pydantic import Field

from iris.domain.status.status_update_dto import StatusUpdateDTO


class CourseChatStatusUpdateDTO(StatusUpdateDTO):
class ChatStatusUpdateDTO(StatusUpdateDTO):
result: Optional[str] = None
suggestions: List[str] = []
session_title: Optional[str] = Field(alias="sessionTitle", default=None)
suggestions: Optional[List[str]] = Field(default_factory=list)
accessed_memories: List[MemoryDTO] = Field(alias="accessedMemories", default=[])
created_memories: List[MemoryDTO] = Field(alias="createdMemories", default=[])
28 changes: 0 additions & 28 deletions iris/src/iris/domain/status/lecture_chat_status_update_dto.py

This file was deleted.

This file was deleted.

Loading
Loading