Spaces:
Sleeping
Sleeping
| import os | |
| from collections import defaultdict | |
| import logging | |
| import google.generativeai as genai | |
| GEMINI_API_KEY = os.environ.get('GEMINI_API_KEY') | |
| genai.configure(api_key=GEMINI_API_KEY) | |
| model = genai.GenerativeModel('gemini-2.0-flash-exp') | |
| logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') | |
| logger = logging.getLogger(__name__) | |
| def get_comprehensive_analysis(weaknesses, opening_stats, color_stats, total_games): | |
| weakness_text = "\n".join([f"- {w['category']}: {w['count']} marta ({w['percentage']:.1f}%)" for w in weaknesses]) | |
| opening_text = "\n".join([f"- {opening}: {stats['total']} o'yin (G'alabalar: {stats['wins']}, Yutqazishlar: {stats['losses']}, Duranglar: {stats['draws']})" | |
| for opening, stats in list(opening_stats.items())[:5]]) | |
| color_text = f"Oq rangda: {color_stats['white']['wins']}G-{color_stats['white']['losses']}Y-{color_stats['white']['draws']}D\n" | |
| color_text += f"Qora rangda: {color_stats['black']['wins']}G-{color_stats['black']['losses']}Y-{color_stats['black']['draws']}D" | |
| prompt = f"""Siz professional шахмат murabbiy va tahlilchisiz. O'yinchining {total_games} ta o'yinini tahlil qildingiz. | |
| STATISTIKA: | |
| Zaif tomonlar: | |
| {weakness_text} | |
| Eng ko'p o'ynaladigan debyutlar: | |
| {opening_text} | |
| Rang bo'yicha natijalar: | |
| {color_text} | |
| Quyidagilarni taqdim eting: | |
| 1. **ZAIF TOMONLAR TAHLILI**: Har bir zaif tomonni chuqur tahlil qiling va nima uchun bu muammo kelib chiqayotganini tushuntiring. | |
| 2. **SHAXSIY O'QUV REJASI**: Kundalik mashg'ulotlar rejasini tuzing: | |
| - Har kuni nechta masala yechish kerak va qanday turdagi masalalar | |
| - Qaysi debyutlarni o'rganish kerak | |
| - Qaysi o'yin bosqichiga ko'proq e'tibor berish kerak | |
| - Kompyuter yoki botlar bilan qanday mashq qilish kerak | |
| 3. **TAVSIYA ETILGAN RESURSLAR**: | |
| - Kitoblar (muallif va nom bilan) | |
| - Onlayn kurslar (Uzchess, Chess.com, Lichess) | |
| - YouTube kanallari | |
| - Mashq uchun maxsus botlar yoki dasturlar | |
| 4. **DEBYUT TAVSIYALARI**: Statistikaga asoslanib, qaysi debyutlarni davom ettirish va qaysilarini o'zgartirish kerak. | |
| 5. **MOTIVATSION XULOSA**: Qisqa va rag'batlantiruvchi xulosa. | |
| MUHIM: Javobni FAQAT O'ZBEK TILIDA yozing! Aniq va amaliy maslahatlar bering.""" | |
| try: | |
| response = model.generate_content(prompt) | |
| return response.text | |
| except Exception as e: | |
| logger.error(f"AI analysis failed: {str(e)}") | |
| return f"AI tahlil hozircha mavjud emas: {str(e)}" | |