import sys import os current_dir = os.path.dirname(os.path.abspath(__file__)) project_root = os.path.dirname(current_dir) sys.path.append(project_root) sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) import gradio as gr 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): market_data = MarketData() historical_data = market_data.fetch_ohlcv(symbol) pattern_gen = PatternGenerator() pattern_images = pattern_gen.generate_all_patterns(chart_image, historical_data) indicator_gen = IndicatorGenerator() indicator_charts = indicator_gen.generate_all_indicators(historical_data) processor = ChartProcessor() results = processor.process_chart(chart_image) 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':results, } 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") ] ) interface.launch()