Skip to content

Commit c274bbe

Browse files
committed
add optional tutorial parts
1 parent fb07084 commit c274bbe

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

src/agents/utils/parse_json_context_to_prompt.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,15 @@ def __init__(
7676
publishedPartContent: Optional[str] = None,
7777
publishedPartAnswerContent: Optional[str] = None,
7878
publishedWorkedSolutionSections: Optional[List[dict]] = [],
79+
publishedStructuredTutorialSections: Optional[List[dict]] = [],
7980
publishedResponseAreas: Optional[List[Optional[ResponseAreaDetails]]] = [],
8081
):
8182
self.publishedPartId = publishedPartId
8283
self.publishedPartPosition = publishedPartPosition
8384
self.publishedPartContent = publishedPartContent
8485
self.publishedPartAnswerContent = publishedPartAnswerContent
8586
self.publishedWorkedSolutionSections = publishedWorkedSolutionSections
87+
self.publishedStructuredTutorialSections = publishedStructuredTutorialSections
8688
self.publishedResponseAreas = [ResponseAreaDetails(**publishedResponseArea) for publishedResponseArea in publishedResponseAreas]
8789

8890
class QuestionDetails:
@@ -277,9 +279,20 @@ def _format_single_part(
277279
'content': ws.get('content', ''),
278280
'position': ws.get('position', 0)
279281
})
282+
283+
# 6. Structured Tutorial Sections
284+
tutorial_data = []
285+
if part.publishedStructuredTutorialSections:
286+
for ts in part.publishedStructuredTutorialSections:
287+
tutorial_data.append({
288+
'title': ts.get('title', ''),
289+
'content': ts.get('content', ''),
290+
'position': ts.get('position', 0)
291+
})
280292

281293
part_sections.append(PromptFormatter.format_worked_solutions(solutions_data))
282-
294+
part_sections.append(PromptFormatter.format_structured_tutorials(tutorial_data))
295+
283296
return "\n".join(part_sections) + "\n---\n"
284297

285298

src/agents/utils/prompt_context_templates.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,22 @@ def format_worked_solutions(solutions: List[Dict[str, Any]]) -> str:
211211
212212
{"\n".join(solution_texts)}"""
213213

214+
@staticmethod
215+
def format_structured_tutorials(tutorials: List[Dict[str, Any]]) -> str:
216+
"""Format structured tutorials section."""
217+
if not tutorials:
218+
return "### Structured Tutorials\n\nNone available"
219+
220+
tutorial_texts = []
221+
for i, tutorial in enumerate(tutorials):
222+
title = tutorial.get('title', f'Tutorial {i + 1}')
223+
content = tutorial.get('content', '').strip() or 'No content available'
224+
tutorial_texts.append(f"#### {title}\n\n{content}")
225+
226+
return f"""### Structured Tutorials
227+
228+
{"\n".join(tutorial_texts)}"""
229+
214230
@staticmethod
215231
def format_complete_prompt(sections: List[str]) -> str:
216232
"""Combine all sections into a complete, well-structured prompt."""

0 commit comments

Comments
 (0)