24Arys11 commited on
Commit
fb0045e
·
1 Parent(s): b1a6914

added architecture diagram - red nodes are not yet implemented (TODOs)

Browse files
Files changed (1) hide show
  1. diagrams/architecture.puml +143 -0
diagrams/architecture.puml ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @startuml Architecture Diagram
2
+
3
+ ' Define color variables
4
+ !define CANVAS_COLOR #FAEBD7
5
+ !define DEFAULT_NODE_COLOR #Gold
6
+ !define TODO_COLOR #FireBrick
7
+ !define ARROW_COLOR #666666
8
+ !define BORDER_COLOR #999999
9
+ !define TOOLBOX_MATH_COLOR #LightBlue
10
+ !define TOOLBOX_WEBSEARCH_COLOR #LightGreen
11
+ !define TOOLBOX_ENCRYPTION_COLOR #PaleVioletRed
12
+ !define POWERS_ARROW_COLOR #4285F4
13
+ !define TRIGGER_ARROW_COLOR #OrangeRed
14
+ !define FINAL_ANSWER_COLOR #Orange
15
+
16
+ ' Style settings
17
+ skinparam handwritten true
18
+ skinparam backgroundColor white
19
+ skinparam componentStyle uml2
20
+ skinparam defaultFontName Arial
21
+ skinparam arrowColor ARROW_COLOR
22
+ skinparam componentBorderColor BORDER_COLOR
23
+ skinparam component {
24
+ BackgroundColor DEFAULT_NODE_COLOR
25
+ }
26
+
27
+ ' Custom style for toolbox functions
28
+ skinparam label {
29
+ FontSize 10
30
+ FontColor black
31
+ }
32
+
33
+ ' Components
34
+ package "app.py" {
35
+ [UI] as UI
36
+ [Application] as Application
37
+ }
38
+
39
+ package "alfred.py" {
40
+ [Alfred] as Alfred
41
+ [GraphBuilder] as GraphBuilder
42
+ }
43
+
44
+ package "management.py" {
45
+ [Assistant] as Assistant
46
+ [Manager] as Manager
47
+ }
48
+
49
+ ' Relationships
50
+ UI -d-> Application
51
+ Application -d-> Alfred
52
+ Alfred -d-> GraphBuilder
53
+ GraphBuilder -d-> Assistant
54
+ GraphBuilder -d-> Manager
55
+
56
+ ' LangGraph Flow and LlamaIndex Flow positioning
57
+ component "LangGraph Flow" as LangGraphFlow CANVAS_COLOR {
58
+ [Query] as Query
59
+ [Assistant Node] as AssistantNode
60
+ [Manager Node] as ManagerNode
61
+ [<b>Final Answer</b>] as FinalAnswer FINAL_ANSWER_COLOR
62
+
63
+ Query -r-> AssistantNode
64
+ AssistantNode -r-> ManagerNode : requests
65
+ ManagerNode -l-> AssistantNode : solution
66
+ ManagerNode -d-> break_up_recursion
67
+ break_up_recursion -u-> ManagerNode
68
+ AssistantNode -d-> FinalAnswer : problem solved
69
+ }
70
+
71
+ ' Position LlamaIndex Flow with solver.py and toolbox.py - more compact
72
+ component "LlamaIndex Flow" as LlamaIndexFlow CANVAS_COLOR {
73
+ package "solver.py" {
74
+ [Solver] as Solver TODO_COLOR
75
+ [Summarizer] as Summarizer
76
+ [Researcher] as Researcher TODO_COLOR
77
+ [EncryptionExpert] as EncryptionExpert TODO_COLOR
78
+ [MathExpert] as MathExpert TODO_COLOR
79
+ [Reasoner] as Reasoner TODO_COLOR
80
+ [ImageHandler] as ImageHandler TODO_COLOR
81
+ [VideoHandler] as VideoHandler TODO_COLOR
82
+ }
83
+
84
+ package "toolbox.py" {
85
+ node Math TOOLBOX_MATH_COLOR [
86
+ <b>Math</b>
87
+ ----
88
+ symbolic_calc
89
+ ____
90
+ unit_converter
91
+ ]
92
+ node WebSearch TOOLBOX_WEBSEARCH_COLOR [
93
+ <b>WebSearch</b>
94
+ ----
95
+ duck_duck_go_tools
96
+ ]
97
+ node Encryption TOOLBOX_ENCRYPTION_COLOR [
98
+ <b>Encryption</b>
99
+ ----
100
+ <font color=FireBrick><b>ascii_encode/decode</b></font>
101
+ ____
102
+ <font color=FireBrick><b>chr_to_int/int_to_chr</b></font>
103
+ ____
104
+ base64_encode/decode
105
+ ____
106
+ caesar_cipher_encode/decode/<font color=FireBrick><b>brute_force</b></font>
107
+ ____
108
+ reverse_string
109
+ ]
110
+ }
111
+
112
+ Solver -r-> Summarizer
113
+ Solver -d-> Researcher
114
+ Solver -d-> EncryptionExpert
115
+ Solver -d-> MathExpert
116
+ Solver -d-> Reasoner
117
+ Solver -d-> ImageHandler
118
+ Solver -d-> VideoHandler
119
+
120
+ Researcher -d-> WebSearch
121
+ MathExpert -d-> Math
122
+ EncryptionExpert -d-> Encryption
123
+ }
124
+
125
+ ' Adjust the label position to avoid overlap
126
+ GraphBuilder -d-> LangGraphFlow : builds
127
+
128
+ ' Curved connections from Manager to Solver/Summarizer
129
+ Manager -d-> Solver
130
+ Manager -d-> Summarizer
131
+
132
+ ' Bidirectional connection between ManagerNode and Solver
133
+ ManagerNode -r-> Solver : requests
134
+ Solver -l-> ManagerNode : provides solution
135
+
136
+ ' Agents powering the Nodes (dashed, blue color)
137
+ Assistant -[POWERS_ARROW_COLOR,dashed]d-> AssistantNode : powers
138
+ Manager -[POWERS_ARROW_COLOR,dashed]d-> ManagerNode : powers
139
+
140
+ ' Adding a direct connection from Alfred to Query
141
+ Alfred -[TRIGGER_ARROW_COLOR]d..> Query
142
+
143
+ @enduml