Files changed (1) hide show
  1. app.py +78 -39
app.py CHANGED
@@ -1,80 +1,119 @@
1
  import gradio as gr
2
  import requests
3
  import uuid
 
4
 
 
 
 
5
  N8N_WEBHOOK_URL = "https://eisssa107-testn8n.hf.space/webhook/cf41540b-08b9-40f5-96c4-6ba21d049ad1"
6
-
7
  session_id = str(uuid.uuid4())
8
 
9
- def chat(message, history):
10
-
11
- history = history or []
 
 
 
12
 
13
  try:
14
-
15
  response = requests.post(
16
  N8N_WEBHOOK_URL,
17
  json={
18
- "message": message,
19
  "session_id": session_id
20
  },
21
- timeout=30
22
  )
23
 
24
- # ุงุนุฑุถ ุงู„ู†ุต ุงู„ูƒุงู…ู„ ุงู„ู‚ุงุฏู… ู…ู† n8n
25
- bot_reply = f"""
26
- Status: {response.status_code}
27
-
28
- Response:
29
 
30
- {response.text}
31
- """
 
 
 
32
 
33
- except Exception as e:
34
-
35
- bot_reply = f"ุฎุทุฃ:\n{str(e)}"
36
 
37
- history.append(
38
- (
39
- message,
40
- bot_reply
41
- )
42
- )
43
 
44
- return history, ""
 
 
45
 
 
 
 
46
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  with gr.Blocks(title="ุดุงุชูŠ ุจูˆุช") as demo:
48
 
49
- gr.Markdown("# ๐Ÿค– ุดุงุชูŠ ุจูˆุช\nู…ุณุงุนุฏูƒ ุงู„ุฐูƒูŠ")
50
-
51
- chatbot = gr.Chatbot(height=500)
52
 
53
  msg = gr.Textbox(
54
- placeholder="ุงูƒุชุจ ุฑุณุงู„ุชูƒ...",
55
- label="ุฑุณุงู„ุชูƒ"
 
56
  )
57
 
58
  with gr.Row():
 
 
59
 
60
- send = gr.Button("ุฅุฑุณุงู„ ๐Ÿ“จ")
61
- clear = gr.Button("ู…ุณุญ ๐Ÿ—‘๏ธ")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
 
 
63
  send.click(
64
- chat,
65
- [msg, chatbot],
66
- [chatbot, msg]
67
  )
68
 
69
  msg.submit(
70
- chat,
71
- [msg, chatbot],
72
- [chatbot, msg]
73
  )
74
 
75
  clear.click(
76
- lambda:([],""),
77
- outputs=[chatbot,msg]
78
  )
79
 
80
  demo.launch(
 
1
  import gradio as gr
2
  import requests
3
  import uuid
4
+ import json
5
 
6
+ # โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
7
+ # ุฅุนุฏุงุฏุงุช
8
+ # โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
9
  N8N_WEBHOOK_URL = "https://eisssa107-testn8n.hf.space/webhook/cf41540b-08b9-40f5-96c4-6ba21d049ad1"
 
10
  session_id = str(uuid.uuid4())
11
 
12
+ # โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
13
+ # ุฏุงู„ุฉ ุงู„ุฅุฑุณุงู„
14
+ # โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
15
+ def chat(message):
16
+ if not message or not message.strip():
17
+ return "", "", "โš ๏ธ ุงูƒุชุจ ุฑุณุงู„ุฉ ุฃูˆู„ุงู‹"
18
 
19
  try:
 
20
  response = requests.post(
21
  N8N_WEBHOOK_URL,
22
  json={
23
+ "message": message.strip(),
24
  "session_id": session_id
25
  },
26
+ timeout=60
27
  )
28
 
29
+ if response.status_code != 200:
30
+ err = f"โŒ ุฎุทุฃ HTTP {response.status_code}"
31
+ return err, err, f"Status: {response.status_code}"
 
 
32
 
33
+ try:
34
+ data = response.json()
35
+ except Exception:
36
+ raw = response.text[:500]
37
+ return raw, raw, "โš ๏ธ ุงู„ุฑุฏ ู…ุด JSON"
38
 
39
+ groq_reply = data.get("groq_reply", "ู„ุง ูŠูˆุฌุฏ ุฑุฏ ู…ู† Groq")
40
+ kimi_reply = data.get("kimi_reply", "ู„ุง ูŠูˆุฌุฏ ุฑุฏ ู…ู† Kimi")
41
+ status = f"โœ… ุชู… | Session: {session_id[:8]}..."
42
 
43
+ return groq_reply, kimi_reply, status
 
 
 
 
 
44
 
45
+ except requests.exceptions.Timeout:
46
+ err = "โฑ๏ธ ุงู†ุชู‡ุช ู…ู‡ู„ุฉ ุงู„ุงู†ุชุธุงุฑ โ€” ุฌุฑุจ ู…ุฑุฉ ุซุงู†ูŠุฉ"
47
+ return err, err, "Timeout"
48
 
49
+ except requests.exceptions.ConnectionError:
50
+ err = "โŒ ุชุนุฐุฑ ุงู„ุงุชุตุงู„ ุจู€ n8n"
51
+ return err, err, "Connection Error"
52
 
53
+ except Exception as e:
54
+ err = f"โŒ ุฎุทุฃ: {str(e)}"
55
+ return err, err, "Error"
56
+
57
+ # โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
58
+ # ุฏุงู„ุฉ ุงู„ู…ุณุญ
59
+ # โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
60
+ def clear_all():
61
+ return "", "", "", "๐Ÿ”„ ุชู… ุงู„ู…ุณุญ"
62
+
63
+ # โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
64
+ # ูˆุงุฌู‡ุฉ Gradio
65
+ # โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
66
  with gr.Blocks(title="ุดุงุชูŠ ุจูˆุช") as demo:
67
 
68
+ gr.Markdown("# ๐Ÿค– ุดุงุชูŠ ุจูˆุช")
69
+ gr.Markdown("ูŠุนู…ู„ ุจู†ู…ูˆุฐุฌูŠ **Groq** ูˆ **Kimi** ุจุงู„ุชูˆุงุฒูŠ")
 
70
 
71
  msg = gr.Textbox(
72
+ placeholder="ุงูƒุชุจ ุฑุณุงู„ุชูƒ ู‡ู†ุง...",
73
+ label="๐Ÿ’ฌ ุฑุณุงู„ุชูƒ",
74
+ lines=3
75
  )
76
 
77
  with gr.Row():
78
+ send = gr.Button("๐Ÿš€ ุฅุฑุณุงู„", variant="primary")
79
+ clear = gr.Button("๐Ÿ—‘๏ธ ู…ุณุญ", variant="secondary")
80
 
81
+ with gr.Row():
82
+ groq_out = gr.Textbox(
83
+ label="๐ŸŸข Groq Response",
84
+ lines=8,
85
+ interactive=False,
86
+ show_copy_button=True
87
+ )
88
+ kimi_out = gr.Textbox(
89
+ label="๐Ÿ”ต Kimi Response",
90
+ lines=8,
91
+ interactive=False,
92
+ show_copy_button=True
93
+ )
94
+
95
+ status = gr.Textbox(
96
+ label="๐Ÿ“Š ุงู„ุญุงู„ุฉ",
97
+ interactive=False,
98
+ value=f"โณ ุฌุงู‡ุฒ | Session: {session_id[:8]}..."
99
+ )
100
 
101
+ # โ”€โ”€โ”€ ุงู„ุฃุญุฏุงุซ โ”€โ”€โ”€
102
  send.click(
103
+ fn=chat,
104
+ inputs=[msg],
105
+ outputs=[groq_out, kimi_out, status]
106
  )
107
 
108
  msg.submit(
109
+ fn=chat,
110
+ inputs=[msg],
111
+ outputs=[groq_out, kimi_out, status]
112
  )
113
 
114
  clear.click(
115
+ fn=clear_all,
116
+ outputs=[msg, groq_out, kimi_out, status]
117
  )
118
 
119
  demo.launch(