j-js commited on
Commit
cfcb5d6
·
verified ·
1 Parent(s): f11d9f1

Create explainer_types.py

Browse files
Files changed (1) hide show
  1. explainers/explainer_types.py +31 -0
explainers/explainer_types.py ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from dataclasses import dataclass, field
2
+ from typing import List, Optional, Dict, Any
3
+
4
+
5
+ @dataclass
6
+ class ExplainerScaffold:
7
+ concept: Optional[str] = None
8
+ ask: Optional[str] = None
9
+ givens: List[str] = field(default_factory=list)
10
+ target: Optional[str] = None
11
+
12
+ setup_actions: List[str] = field(default_factory=list)
13
+ intermediate_steps: List[str] = field(default_factory=list)
14
+ first_move: Optional[str] = None
15
+ next_hint: Optional[str] = None
16
+
17
+ common_traps: List[str] = field(default_factory=list)
18
+ variables_to_define: List[str] = field(default_factory=list)
19
+ equations_to_form: List[str] = field(default_factory=list)
20
+
21
+ answer_hidden: bool = True
22
+
23
+
24
+ @dataclass
25
+ class ExplainerResult:
26
+ understood: bool = False
27
+ topic: Optional[str] = None
28
+ summary: Optional[str] = None
29
+ teaching_points: List[str] = field(default_factory=list)
30
+ scaffold: ExplainerScaffold = field(default_factory=ExplainerScaffold)
31
+ meta: Dict[str, Any] = field(default_factory=dict)