Spaces:
No application file
No application file
| import os | |
| import sys | |
| import gradio as gr | |
| from PIL import Image | |
| import ollama | |
| from lightweight_charts import Chart | |
| # Add ai-analyzer's src to path | |
| current_dir = os.path.dirname(os.path.abspath(__file__)) | |
| sys.path.insert(0, current_dir) | |
| # Initialize both AI models | |
| vision_client = ollama.Client() | |
| code_client = ollama.Client() | |
| VISION_MODEL = "llama3.2-vision:latest" | |
| CODE_MODEL = "codellama:latest" | |
| # Local imports | |
| from src.model.vision_model import ChartVisionModel | |
| from src.model.chart_generator import ChartGeneratorModel | |
| from src.analysis.chart_processor import ChartProcessor | |
| from src.analysis.pattern_generator import PatternGenerator | |
| from src.analysis.indicator_generator import IndicatorGenerator | |
| from src.analysis.chart_analyzer import ChartAnalyzer | |
| from src.data.market_data import MarketData | |
| def analyze_full_chart(chart_image, symbol): | |
| # Vision analysis using ChartVisionModel | |
| vision_model = ChartVisionModel() | |
| vision_analysis = vision_model.analyze_chart(chart_image) | |
| # Chart generation using ChartGeneratorModel | |
| chart_generator = ChartGeneratorModel() | |
| market_data = MarketData() | |
| historical_data = market_data.fetch_ohlcv(symbol) | |
| # Pattern Generation | |
| pattern_gen = PatternGenerator() | |
| pattern_images = pattern_gen.generate_all_patterns(chart_image, historical_data) | |
| # Indicator Generation | |
| indicator_gen = IndicatorGenerator() | |
| indicator_charts = indicator_gen.generate_all_indicators(historical_data) | |
| # Process chart | |
| processor = ChartProcessor() | |
| processed_results = processor.process_chart(chart_image) | |
| # Full chart analysis | |
| analyzer = ChartAnalyzer() | |
| analysis_results = analyzer.analyze_full( | |
| chart_image=chart_image, | |
| pattern_images=pattern_images, | |
| indicator_charts=indicator_charts, | |
| historical_data=historical_data | |
| ) | |
| return { | |
| 'pattern_analysis': analysis_results.patterns, | |
| 'indicator_analysis': analysis_results.indicators, | |
| 'predictions': analysis_results.predictions, | |
| 'interactive_charts': indicator_charts, | |
| 'chart_analysis': processed_results, | |
| 'vision_results': vision_analysis | |
| } | |
| interface = gr.Interface( | |
| fn=analyze_full_chart, | |
| inputs=[ | |
| gr.Image(type="pil", label="Chart Image"), | |
| gr.Textbox(label="Symbol") | |
| ], | |
| outputs=[ | |
| gr.Gallery(label="Pattern Overlays"), | |
| gr.Gallery(label="Indicator Charts"), | |
| gr.JSON(label="Analysis Results"), | |
| gr.Plot(label="Interactive Indicators") | |
| ] | |
| ) | |
| if __name__ == "__main__": | |
| interface.launch() | |