MrSimple07 commited on
Commit
1849320
Β·
1 Parent(s): d10024d

removed unnecessary parts

Browse files
Files changed (1) hide show
  1. app.py +4 -173
app.py CHANGED
@@ -8,7 +8,6 @@ genai.configure(api_key=os.environ.get('GOOGLE_API_KEY'))
8
  model = genai.GenerativeModel('gemini-2.5-flash')
9
 
10
  def get_counter_debuts(opponent_debuts, user_color, user_repertoire, analysis_depth):
11
- """Raqib debyutlariga qarshi eng yaxshi debyutlarni olish"""
12
 
13
  if not opponent_debuts or not opponent_debuts.strip():
14
  return "❌ Iltimos, kamida bitta debyt kiriting!"
@@ -96,70 +95,6 @@ def get_counter_debuts(opponent_debuts, user_color, user_repertoire, analysis_de
96
  except Exception as e:
97
  return f"❌ Xatolik yuz berdi: {str(e)}\n\nIltimos, GOOGLE_API_KEY to'g'ri o'rnatilganligini tekshiring."
98
 
99
- def analyze_game(pgn_input):
100
- """O'yin PGN ni tahlil qilish"""
101
- if not pgn_input or not pgn_input.strip():
102
- return "❌ Iltimos, PGN ni kiriting!"
103
-
104
- prompt = f"""
105
- Quyidagi shaxmat o'yinini tahlil qiling:
106
-
107
- {pgn_input}
108
-
109
- Tahlilda quyidagilarni bering:
110
- 1. O'yin haqida umumiy fikr
111
- 2. Asosiy yurishlar va tanqidiy momentlar
112
- 3. Har bir tomon uchun xatolar
113
- 4. Yaxshilanish bo'yicha tavsiyalar
114
-
115
- Javobni o'zbek tilida, toza markdown formatida bering.
116
- """
117
-
118
- try:
119
- response = model.generate_content(prompt)
120
- return f"""# πŸ“Š O'YIN TAHLILI
121
-
122
- {response.text.strip()}
123
-
124
- ---
125
- βœ… Tahlil tugallandi!
126
- """
127
- except Exception as e:
128
- return f"❌ Xatolik: {str(e)}"
129
-
130
- def get_training_plan(skill_level, time_available, weak_points):
131
- """Mashq rejasini yaratish"""
132
- if not skill_level or not time_available:
133
- return "❌ Iltimos, barcha maydonlarni to'ldiring!"
134
-
135
- prompt = f"""
136
- Shaxmat o'yinchisi uchun mashq rejasi tuzing:
137
-
138
- **Daraja:** {skill_level}
139
- **Mavjud Vaqt:** {time_available}
140
- **Zaif Tomonlar:** {weak_points if weak_points else "Ko'rsatilmagan"}
141
-
142
- Haftalik mashq rejasini tuzing:
143
- - Har kun nima ustida ishlash kerak
144
- - Qanday mashqlar bajarish kerak
145
- - Qaysi resurslardan foydalanish kerak
146
- - Qanday natijalarni kutish mumkin
147
-
148
- Javobni o'zbek tilida, aniq va amaliy ko'rsatmalar bilan bering.
149
- """
150
-
151
- try:
152
- response = model.generate_content(prompt)
153
- return f"""# πŸ“š SHAXSIY MASHQ REJASI
154
-
155
- {response.text.strip()}
156
-
157
- ---
158
- βœ… Muvaffaqiyatlar tilaymiz!
159
- """
160
- except Exception as e:
161
- return f"❌ Xatolik: {str(e)}"
162
-
163
  # Gradio interfeysi
164
  def create_interface():
165
  with gr.Blocks(theme=gr.themes.Soft(), title="Shaxmat AI Maslahatchi", css="""
@@ -202,12 +137,6 @@ def create_interface():
202
  info="Sizning afzal ko'rgan debyutlaringiz"
203
  )
204
 
205
- analysis_depth = gr.Radio(
206
- choices=["Tez", "O'rtacha", "Batafsil"],
207
- value="O'rtacha",
208
- label="πŸ” Tahlil Chuqurligi"
209
- )
210
-
211
  analyze_btn1 = gr.Button("⚑ Tahlil Qilish", variant="primary", size="lg")
212
 
213
  with gr.Column(scale=2):
@@ -219,116 +148,18 @@ def create_interface():
219
  ["Qora", "d4, c4", "d4 ga qarshi Grunfeld, e4 ga qarshi Karo-Kann", "Batafsil"],
220
  ["Oq", "e4, Ispancha partiya", "", "Tez"],
221
  ],
222
- inputs=[user_color, opponent_debuts, user_repertoire, analysis_depth],
223
  label="πŸ’‘ Misollar"
224
  )
225
-
226
- # Tab 2: O'yin Tahlili
227
- with gr.Tab("🎲 O'yin Tahlili"):
228
- gr.Markdown("### O'yinlaringizni tahlil qiling va xatolaringizni toping")
229
-
230
- with gr.Row():
231
- with gr.Column():
232
- pgn_input = gr.Textbox(
233
- label="πŸ“ PGN (o'yin yozuvi)",
234
- placeholder="1. e4 e5 2. Nf3 Nc6 ...",
235
- lines=8,
236
- info="Chess.com yoki Lichess dan PGN ni ko'chiring"
237
- )
238
- analyze_btn2 = gr.Button("πŸ” Tahlil Qilish", variant="primary", size="lg")
239
-
240
- with gr.Column():
241
- output2 = gr.Markdown(label="πŸ“Š Tahlil Natijasi")
242
-
243
- # Tab 3: Mashq Rejasi
244
- with gr.Tab("πŸ“š Mashq Rejasi"):
245
- gr.Markdown("### Shaxsiy mashq rejangizni yarating")
246
-
247
- with gr.Row():
248
- with gr.Column():
249
- skill_level = gr.Dropdown(
250
- choices=["Boshlang'ich", "O'rta", "Yuqori", "Master"],
251
- value="O'rta",
252
- label="🎯 Sizning Darajangiz"
253
- )
254
-
255
- time_available = gr.Dropdown(
256
- choices=["Kuniga 30 daqiqa", "Kuniga 1 soat", "Kuniga 2 soat", "3+ soat"],
257
- value="Kuniga 1 soat",
258
- label="⏰ Mavjud Vaqt"
259
- )
260
-
261
- weak_points = gr.Textbox(
262
- label="⚠️ Zaif Tomonlar (ixtiyoriy)",
263
- placeholder="Misol: Endshpil, taktika, vaqt boshqaruvi",
264
- lines=3
265
- )
266
-
267
- analyze_btn3 = gr.Button("πŸ“‹ Reja Yaratish", variant="primary", size="lg")
268
-
269
- with gr.Column():
270
- output3 = gr.Markdown(label="πŸ“š Mashq Rejasi")
271
-
272
- # Tab 4: Qo'llanma
273
- with gr.Tab("ℹ️ Qo'llanma"):
274
- gr.Markdown("""
275
- ## πŸ“– Foydalanish Qo'llanmasi
276
-
277
- ### 🎯 Debyut Tahlili
278
- 1. Sizning rangingizni tanlang (Oq yoki Qora)
279
- 2. Raqibingiz o'ynaydigan debyutlarni kiriting
280
- 3. (Ixtiyoriy) O'zingizning repertuaringizni kiriting
281
- 4. Tahlil chuqurligini tanlang
282
- 5. "Tahlil Qilish" tugmasini bosing
283
-
284
- ### 🎲 O'yin Tahlili
285
- 1. O'yinning PGN formatini kiriting
286
- 2. Chess.com yoki Lichess dan PGN ni ko'chirib olishingiz mumkin
287
- 3. Tahlil natijasini o'qing va xatolaringizni o'rganing
288
-
289
- ### πŸ“š Mashq Rejasi
290
- 1. O'z darajangizni tanlang
291
- 2. Qancha vaqtingiz borligini ko'rsating
292
- 3. Zaif tomonlaringizni yozing (agar bilsangiz)
293
- 4. Shaxsiy mashq rejangizni oling
294
-
295
- ### πŸ’‘ Maslahatlar
296
- - **Muntazam mashq qiling**: Har kuni kamida 15-30 daqiqa
297
- - **O'yinlaringizni tahlil qiling**: Har bir o'yindan saboq oling
298
- - **Debyutlarni o'rganing**: 2-3 ta ishonchli debyutga ega bo'ling
299
- - **Taktika yechish**: Kuniga 10-15 ta masala
300
- - **Endshpilni o'rganing**: Bu juda muhim!
301
-
302
- ### πŸ”— Foydali Resurslar
303
- - **Lichess.org**: Bepul mashq va o'rganish
304
- - **Chess.com**: Darslar va turnirlar
305
- - **YouTube**: "GothamChess", "Daniel Naroditsky" kanallari
306
- - **Kitoblar**: "Shaxmat maktabi" kitoblar seriyasi
307
-
308
- ---
309
-
310
- **Muammo bormi?** GOOGLE_API_KEY ni to'g'ri sozlaganingizni tekshiring.
311
- """)
312
 
313
  # Event handlers
314
  analyze_btn1.click(
315
  fn=get_counter_debuts,
316
- inputs=[opponent_debuts, user_color, user_repertoire, analysis_depth],
317
  outputs=output1
318
  )
319
-
320
- analyze_btn2.click(
321
- fn=analyze_game,
322
- inputs=pgn_input,
323
- outputs=output2
324
- )
325
-
326
- analyze_btn3.click(
327
- fn=get_training_plan,
328
- inputs=[skill_level, time_available, weak_points],
329
- outputs=output3
330
- )
331
-
332
  return demo
333
 
334
  if __name__ == "__main__":
 
8
  model = genai.GenerativeModel('gemini-2.5-flash')
9
 
10
  def get_counter_debuts(opponent_debuts, user_color, user_repertoire, analysis_depth):
 
11
 
12
  if not opponent_debuts or not opponent_debuts.strip():
13
  return "❌ Iltimos, kamida bitta debyt kiriting!"
 
95
  except Exception as e:
96
  return f"❌ Xatolik yuz berdi: {str(e)}\n\nIltimos, GOOGLE_API_KEY to'g'ri o'rnatilganligini tekshiring."
97
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98
  # Gradio interfeysi
99
  def create_interface():
100
  with gr.Blocks(theme=gr.themes.Soft(), title="Shaxmat AI Maslahatchi", css="""
 
137
  info="Sizning afzal ko'rgan debyutlaringiz"
138
  )
139
 
 
 
 
 
 
 
140
  analyze_btn1 = gr.Button("⚑ Tahlil Qilish", variant="primary", size="lg")
141
 
142
  with gr.Column(scale=2):
 
148
  ["Qora", "d4, c4", "d4 ga qarshi Grunfeld, e4 ga qarshi Karo-Kann", "Batafsil"],
149
  ["Oq", "e4, Ispancha partiya", "", "Tez"],
150
  ],
151
+ inputs=[user_color, opponent_debuts, user_repertoire],
152
  label="πŸ’‘ Misollar"
153
  )
154
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
155
 
156
  # Event handlers
157
  analyze_btn1.click(
158
  fn=get_counter_debuts,
159
+ inputs=[opponent_debuts, user_color, user_repertoire],
160
  outputs=output1
161
  )
162
+
 
 
 
 
 
 
 
 
 
 
 
 
163
  return demo
164
 
165
  if __name__ == "__main__":