tmmdev commited on
Commit
1d5ad97
·
verified ·
1 Parent(s): 50adc83

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -202
app.py CHANGED
@@ -1,234 +1,54 @@
1
  import os
2
  import sys
3
  import gradio as gr
4
- import ollama
5
- from PIL import Image
6
-
7
- # Add ai-analyzer's src to path
8
- current_dir = os.path.dirname(os.path.abspath(__file__))
9
- sys.path.insert(0, current_dir)
10
-
11
- # Local imports
12
- from src.model.vision_model import ChartVisionModel
13
- from src.analysis.chart_processor import ChartProcessor
14
- from src.analysis.pattern_generator import PatternGenerator
15
- from src.analysis.indicator_generator import IndicatorGenerator
16
- from src.analysis.chart_analyzer import ChartAnalyzer
17
- from src.data.market_data import MarketData
18
-
19
- import os
20
- import sys
21
- import gradio as gr
22
- import ollama
23
- from PIL import Image
24
-
25
- # Add ai-analyzer's src to path
26
- current_dir = os.path.dirname(os.path.abspath(__file__))
27
- sys.path.insert(0, current_dir)
28
-
29
- # Local imports
30
- from src.model.vision_model import ChartVisionModel
31
- from src.analysis.chart_processor import ChartProcessor
32
- from src.analysis.pattern_generator import PatternGenerator
33
- from src.analysis.indicator_generator import IndicatorGenerator
34
- from src.analysis.chart_analyzer import ChartAnalyzer
35
- from src.data.market_data import MarketData
36
-
37
- import os
38
- import sys
39
- import gradio as gr
40
- import ollama
41
- from PIL import Image
42
-
43
- # Add ai-analyzer's src to path
44
- current_dir = os.path.dirname(os.path.abspath(__file__))
45
- sys.path.insert(0, current_dir)
46
-
47
- # Local imports
48
- from src.model.vision_model import ChartVisionModel
49
- from src.analysis.chart_processor import ChartProcessor
50
- from src.analysis.pattern_generator import PatternGenerator
51
- from src.analysis.indicator_generator import IndicatorGenerator
52
- from src.analysis.chart_analyzer import ChartAnalyzer
53
- from src.data.market_data import MarketData
54
-
55
- import os
56
- import sys
57
- import gradio as gr
58
- import ollama
59
- from PIL import Image
60
-
61
- # Add ai-analyzer's src to path
62
- current_dir = os.path.dirname(os.path.abspath(__file__))
63
- sys.path.insert(0, current_dir)
64
-
65
- # Local imports
66
- from src.model.vision_model import ChartVisionModel
67
- from src.analysis.chart_processor import ChartProcessor
68
- from src.analysis.pattern_generator import PatternGenerator
69
- from src.analysis.indicator_generator import IndicatorGenerator
70
- from src.analysis.chart_analyzer import ChartAnalyzer
71
- from src.data.market_data import MarketData
72
-
73
- import os
74
- import sys
75
- import gradio as gr
76
- import ollama
77
- from PIL import Image
78
-
79
- # Add ai-analyzer's src to path
80
- current_dir = os.path.dirname(os.path.abspath(__file__))
81
- sys.path.insert(0, current_dir)
82
-
83
- # Local imports
84
- from src.model.vision_model import ChartVisionModel
85
- from src.analysis.chart_processor import ChartProcessor
86
- from src.analysis.pattern_generator import PatternGenerator
87
- from src.analysis.indicator_generator import IndicatorGenerator
88
- from src.analysis.chart_analyzer import ChartAnalyzer
89
- from src.data.market_data import MarketData
90
-
91
- import os
92
- import sys
93
- import gradio as gr
94
- import ollama
95
- from PIL import Image
96
-
97
- # Add ai-analyzer's src to path
98
- current_dir = os.path.dirname(os.path.abspath(__file__))
99
- sys.path.insert(0, current_dir)
100
-
101
- # Local imports
102
- from src.model.vision_model import ChartVisionModel
103
- from src.analysis.chart_processor import ChartProcessor
104
- from src.analysis.pattern_generator import PatternGenerator
105
- from src.analysis.indicator_generator import IndicatorGenerator
106
- from src.analysis.chart_analyzer import ChartAnalyzer
107
- from src.data.market_data import MarketData
108
-
109
- import os
110
- import sys
111
- import gradio as gr
112
- import ollama
113
  from PIL import Image
114
-
115
- # Add ai-analyzer's src to path
116
- current_dir = os.path.dirname(os.path.abspath(__file__))
117
- sys.path.insert(0, current_dir)
118
-
119
- # Local imports
120
- from src.model.vision_model import ChartVisionModel
121
- from src.analysis.chart_processor import ChartProcessor
122
- from src.analysis.pattern_generator import PatternGenerator
123
- from src.analysis.indicator_generator import IndicatorGenerator
124
- from src.analysis.chart_analyzer import ChartAnalyzer
125
- from src.data.market_data import MarketData
126
-
127
- import os
128
- import sys
129
- import gradio as gr
130
  import ollama
131
- from PIL import Image
132
 
133
  # Add ai-analyzer's src to path
134
  current_dir = os.path.dirname(os.path.abspath(__file__))
135
  sys.path.insert(0, current_dir)
136
 
137
- # Local imports
138
- from src.model.vision_model import ChartVisionModel
139
- from src.analysis.chart_processor import ChartProcessor
140
- from src.analysis.pattern_generator import PatternGenerator
141
- from src.analysis.indicator_generator import IndicatorGenerator
142
- from src.analysis.chart_analyzer import ChartAnalyzer
143
- from src.data.market_data import MarketData
144
 
145
- import os
146
- import sys
147
- import gradio as gr
148
- import ollama
149
- from PIL import Image
150
-
151
- # Add ai-analyzer's src to path
152
- current_dir = os.path.dirname(os.path.abspath(__file__))
153
- sys.path.insert(0, current_dir)
154
 
155
  # Local imports
156
  from src.model.vision_model import ChartVisionModel
 
157
  from src.analysis.chart_processor import ChartProcessor
158
  from src.analysis.pattern_generator import PatternGenerator
159
  from src.analysis.indicator_generator import IndicatorGenerator
160
  from src.analysis.chart_analyzer import ChartAnalyzer
161
  from src.data.market_data import MarketData
162
 
163
- import os
164
- import sys
165
- import gradio as gr
166
- import ollama
167
- from PIL import Image
168
-
169
- # Add ai-analyzer's src to path
170
- current_dir = os.path.dirname(os.path.abspath(__file__))
171
- sys.path.insert(0, current_dir)
172
-
173
- # Local imports
174
- from src.model.vision_model import ChartVisionModel
175
- from src.analysis.chart_processor import ChartProcessor
176
- from src.analysis.pattern_generator import PatternGenerator
177
- from src.analysis.indicator_generator import IndicatorGenerator
178
- from src.analysis.chart_analyzer import ChartAnalyzer
179
- from src.data.market_data import MarketData
180
-
181
- import os
182
- import sys
183
- import gradio as gr
184
- import ollama
185
- from PIL import Image
186
-
187
- # Add ai-analyzer's src to path
188
- current_dir = os.path.dirname(os.path.abspath(__file__))
189
- sys.path.insert(0, current_dir)
190
-
191
- # Local imports
192
- from src.model.vision_model import ChartVisionModel
193
- from src.analysis.chart_processor import ChartProcessor
194
- from src.analysis.pattern_generator import PatternGenerator
195
- from src.analysis.indicator_generator import IndicatorGenerator
196
- from src.analysis.chart_analyzer import ChartAnalyzer
197
- from src.data.market_data import MarketData
198
-
199
- import os
200
- import sys
201
- import gradio as gr
202
- import ollama
203
- from PIL import Image
204
-
205
- # Add ai-analyzer's src to path
206
- current_dir = os.path.dirname(os.path.abspath(__file__))
207
- sys.path.insert(0, current_dir)
208
-
209
- # Local imports
210
- from src.model.vision_model import ChartVisionModel
211
- from src.analysis.chart_processor import ChartProcessor
212
- from src.analysis.pattern_generator import PatternGenerator
213
- from src.analysis.indicator_generator import IndicatorGenerator
214
- from src.analysis.chart_analyzer import ChartAnalyzer
215
- from src.data.market_data import MarketData
216
-
217
-
218
  def analyze_full_chart(chart_image, symbol):
 
 
 
 
 
 
 
219
  market_data = MarketData()
220
  historical_data = market_data.fetch_ohlcv(symbol)
221
 
 
222
  pattern_gen = PatternGenerator()
223
  pattern_images = pattern_gen.generate_all_patterns(chart_image, historical_data)
224
 
 
225
  indicator_gen = IndicatorGenerator()
226
  indicator_charts = indicator_gen.generate_all_indicators(historical_data)
227
 
228
-
229
  processor = ChartProcessor()
230
- results = processor.process_chart(chart_image)
231
-
 
232
  analyzer = ChartAnalyzer()
233
  analysis_results = analyzer.analyze_full(
234
  chart_image=chart_image,
@@ -242,7 +62,8 @@ def analyze_full_chart(chart_image, symbol):
242
  'indicator_analysis': analysis_results.indicators,
243
  'predictions': analysis_results.predictions,
244
  'interactive_charts': indicator_charts,
245
- 'chart_analysis':results,
 
246
  }
247
 
248
  interface = gr.Interface(
@@ -259,4 +80,5 @@ interface = gr.Interface(
259
  ]
260
  )
261
 
262
- interface.launch()
 
 
1
  import os
2
  import sys
3
  import gradio as gr
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  from PIL import Image
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  import ollama
6
+ from lightweight_charts import Chart
7
 
8
  # Add ai-analyzer's src to path
9
  current_dir = os.path.dirname(os.path.abspath(__file__))
10
  sys.path.insert(0, current_dir)
11
 
12
+ # Initialize both AI models
13
+ vision_client = ollama.Client()
14
+ code_client = ollama.Client()
 
 
 
 
15
 
16
+ VISION_MODEL = "llama3.2-vision:latest"
17
+ CODE_MODEL = "codellama:latest"
 
 
 
 
 
 
 
18
 
19
  # Local imports
20
  from src.model.vision_model import ChartVisionModel
21
+ from src.model.chart_generator import ChartGeneratorModel
22
  from src.analysis.chart_processor import ChartProcessor
23
  from src.analysis.pattern_generator import PatternGenerator
24
  from src.analysis.indicator_generator import IndicatorGenerator
25
  from src.analysis.chart_analyzer import ChartAnalyzer
26
  from src.data.market_data import MarketData
27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  def analyze_full_chart(chart_image, symbol):
29
+ # Vision analysis using ChartVisionModel
30
+ vision_model = ChartVisionModel()
31
+ vision_analysis = vision_model.analyze_chart(chart_image)
32
+
33
+ # Chart generation using ChartGeneratorModel
34
+ chart_generator = ChartGeneratorModel()
35
+
36
  market_data = MarketData()
37
  historical_data = market_data.fetch_ohlcv(symbol)
38
 
39
+ # Pattern Generation
40
  pattern_gen = PatternGenerator()
41
  pattern_images = pattern_gen.generate_all_patterns(chart_image, historical_data)
42
 
43
+ # Indicator Generation
44
  indicator_gen = IndicatorGenerator()
45
  indicator_charts = indicator_gen.generate_all_indicators(historical_data)
46
 
47
+ # Process chart
48
  processor = ChartProcessor()
49
+ processed_results = processor.process_chart(chart_image)
50
+
51
+ # Full chart analysis
52
  analyzer = ChartAnalyzer()
53
  analysis_results = analyzer.analyze_full(
54
  chart_image=chart_image,
 
62
  'indicator_analysis': analysis_results.indicators,
63
  'predictions': analysis_results.predictions,
64
  'interactive_charts': indicator_charts,
65
+ 'chart_analysis': processed_results,
66
+ 'vision_results': vision_analysis
67
  }
68
 
69
  interface = gr.Interface(
 
80
  ]
81
  )
82
 
83
+ if __name__ == "__main__":
84
+ interface.launch()