Fetii commited on
Commit
4bf306e
·
verified ·
1 Parent(s): 4ef1c50

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +99 -99
app.py CHANGED
@@ -1,99 +1,99 @@
1
- # ==========================================
2
- # FinTalk - Gradio UI
3
- # ==========================================
4
- import gradio as gr
5
- import asyncio
6
- from backend import fintalk_discussion, export_to_pdf, generate_tts_files # senin fonksiyonların
7
-
8
- # -----------------------------------------------------
9
- # Tartışmayı başlatan ana fonksiyon
10
- # -----------------------------------------------------
11
- def run_fintalk(topic_text):
12
- if not topic_text or len(topic_text.strip()) < 10:
13
- return "Please provide a valid economic topic.", "", "", "", "", None, None
14
-
15
- result = fintalk_discussion(topic_text)
16
- result["topic"] = topic_text
17
-
18
- # PDF oluştur
19
- pdf_path = "FinTalk_Report.pdf"
20
- export_to_pdf(result, pdf_path)
21
-
22
- # TTS (async)
23
- try:
24
- asyncio.run(generate_tts_files(result))
25
- except Exception as e:
26
- print("TTS hatası:", e)
27
-
28
- return (
29
- f"🧩 **Moderator:**\n{result['moderator_intro']}",
30
- f"💹 **Bullish Investor:**\n{result['bullish_view']}",
31
- f"📉 **Bearish Economist:**\n{result['bearish_view']}",
32
- f"🎙️ **Moderator Wrap-up:**\n{result['moderator_wrap']}",
33
- f"📊 **GPT Summary:**\n{result['summary']}",
34
- pdf_path,
35
- "moderator_intro.mp3",
36
- "bullish_view.mp3",
37
- "bearish_view.mp3",
38
- "moderator_wrap.mp3"
39
- )
40
-
41
- # -----------------------------------------------------
42
- # Gradio Arayüz
43
- # -----------------------------------------------------
44
- with gr.Blocks(theme=gr.themes.Soft()) as demo:
45
- gr.Markdown(
46
- """
47
- # 📊 **FinTalk — AI Economic Roundtable**
48
- Simulate a live discussion between two economists with opposing views, moderated by Selin.
49
- Enter an economic topic or news headline below and click **Start Discussion**.
50
- """
51
- )
52
-
53
- with gr.Row():
54
- with gr.Column(scale=1):
55
- topic_input = gr.Textbox(
56
- label="Enter an Economic Headline or News",
57
- placeholder="Example: The central bank raised interest rates by 200 basis points.",
58
- lines=4
59
- )
60
- start_btn = gr.Button("🚀 Start Discussion")
61
-
62
- with gr.Column(scale=2):
63
- moderator_output = gr.Markdown(label="Moderator Intro")
64
- bullish_output = gr.Markdown(label="Bullish Investor")
65
- bearish_output = gr.Markdown(label="Bearish Economist")
66
- wrap_output = gr.Markdown(label="Moderator Wrap-up")
67
- summary_output = gr.Markdown(label="GPT Summary")
68
-
69
- pdf_file = gr.File(label="📄 Download PDF Report")
70
-
71
- with gr.Row():
72
- mod_audio = gr.Audio(label="Moderator Voice", interactive=False)
73
- bull_audio = gr.Audio(label="Bullish Voice", interactive=False)
74
- bear_audio = gr.Audio(label="Bearish Voice", interactive=False)
75
- wrap_audio = gr.Audio(label="Moderator Wrap-up", interactive=False)
76
-
77
- start_btn.click(
78
- fn=run_fintalk,
79
- inputs=topic_input,
80
- outputs=[
81
- moderator_output,
82
- bullish_output,
83
- bearish_output,
84
- wrap_output,
85
- summary_output,
86
- pdf_file,
87
- mod_audio,
88
- bull_audio,
89
- bear_audio,
90
- wrap_audio
91
- ]
92
- )
93
-
94
-
95
- # -----------------------------------------------------
96
- # Uygulama Başlat
97
- # -----------------------------------------------------
98
- if __name__ == "__main__":
99
- demo.launch()
 
1
+ # ==========================================
2
+ # FinTalk - Gradio UI
3
+ # ==========================================
4
+ import gradio as gr
5
+ import asyncio
6
+ from backend import fintalk_discussion, export_to_pdf, generate_tts_files # senin fonksiyonların
7
+
8
+ # -----------------------------------------------------
9
+ # Tartışmayı başlatan ana fonksiyon
10
+ # -----------------------------------------------------
11
+ def run_fintalk(topic_text):
12
+ if not topic_text or len(topic_text.strip()) < 10:
13
+ return "Please provide a valid economic topic.", "", "", "", "", None, None
14
+
15
+ result = fintalk_discussion(topic_text)
16
+ result["topic"] = topic_text
17
+
18
+ # PDF oluştur
19
+ pdf_path = "FinTalk_Report.pdf"
20
+ export_to_pdf(result, pdf_path)
21
+
22
+ # TTS (async)
23
+ try:
24
+ asyncio.run(generate_tts_files(result))
25
+ except Exception as e:
26
+ print("TTS hatası:", e)
27
+
28
+ return (
29
+ f"🧩 **Moderator:**\n{result['moderator_intro']}",
30
+ f"💹 **Bullish Investor:**\n{result['bullish_view']}",
31
+ f"📉 **Bearish Economist:**\n{result['bearish_view']}",
32
+ f"🎙️ **Moderator Wrap-up:**\n{result['moderator_wrap']}",
33
+ f"📊 **GPT Summary:**\n{result['summary']}",
34
+ pdf_path,
35
+ "moderator_intro.waw",
36
+ "bullish_view.waw",
37
+ "bearish_view.waw",
38
+ "moderator_wrap.waw"
39
+ )
40
+
41
+ # -----------------------------------------------------
42
+ # Gradio Arayüz
43
+ # -----------------------------------------------------
44
+ with gr.Blocks(theme=gr.themes.Soft()) as demo:
45
+ gr.Markdown(
46
+ """
47
+ # 📊 **FinTalk — AI Economic Roundtable**
48
+ Simulate a live discussion between two economists with opposing views, moderated by Selin.
49
+ Enter an economic topic or news headline below and click **Start Discussion**.
50
+ """
51
+ )
52
+
53
+ with gr.Row():
54
+ with gr.Column(scale=1):
55
+ topic_input = gr.Textbox(
56
+ label="Enter an Economic Headline or News",
57
+ placeholder="Example: The central bank raised interest rates by 200 basis points.",
58
+ lines=4
59
+ )
60
+ start_btn = gr.Button("🚀 Start Discussion")
61
+
62
+ with gr.Column(scale=2):
63
+ moderator_output = gr.Markdown(label="Moderator Intro")
64
+ bullish_output = gr.Markdown(label="Bullish Investor")
65
+ bearish_output = gr.Markdown(label="Bearish Economist")
66
+ wrap_output = gr.Markdown(label="Moderator Wrap-up")
67
+ summary_output = gr.Markdown(label="GPT Summary")
68
+
69
+ pdf_file = gr.File(label="📄 Download PDF Report")
70
+
71
+ with gr.Row():
72
+ mod_audio = gr.Audio(label="Moderator Voice", interactive=False)
73
+ bull_audio = gr.Audio(label="Bullish Voice", interactive=False)
74
+ bear_audio = gr.Audio(label="Bearish Voice", interactive=False)
75
+ wrap_audio = gr.Audio(label="Moderator Wrap-up", interactive=False)
76
+
77
+ start_btn.click(
78
+ fn=run_fintalk,
79
+ inputs=topic_input,
80
+ outputs=[
81
+ moderator_output,
82
+ bullish_output,
83
+ bearish_output,
84
+ wrap_output,
85
+ summary_output,
86
+ pdf_file,
87
+ mod_audio,
88
+ bull_audio,
89
+ bear_audio,
90
+ wrap_audio
91
+ ]
92
+ )
93
+
94
+
95
+ # -----------------------------------------------------
96
+ # Uygulama Başlat
97
+ # -----------------------------------------------------
98
+ if __name__ == "__main__":
99
+ demo.launch()