Nonabzbssbbsbs commited on
Commit
a0ca0a9
·
verified ·
1 Parent(s): 24f094e

Delete app.py

Browse files
Files changed (1) hide show
  1. app.py +0 -99
app.py DELETED
@@ -1,99 +0,0 @@
1
- import gradio as gr
2
- from transformers import pipeline
3
- from PIL import Image
4
- import torch
5
-
6
- # GPU болса қолдану, болмаса CPU.
7
- device = "cuda:0" if torch.cuda.is_available() else "cpu"
8
-
9
- # Модельдерді жүктеу үшін орын дайындау
10
- waste_classifier = None
11
- plant_classifier = None
12
-
13
- # --- Қазақшаға аударуға арналған сөздіктер ---
14
- # ⭐️ Жаңа қоқыс моделінің жауаптарына сәйкестендірілген сөздік
15
- WASTE_LABELS_KZ = {
16
- "cardboard": {"name": "📦 Картон", "recyclable": True, "description": "Бұл материал қайта өңдеуге жарамды. Таза және құрғақ күйінде арнайы қоқыс жәшігіне салыңыз."},
17
- "glass": {"name": "🍾 Шыны", "recyclable": True, "description": "Шыны бөтелкелер мен банкалар қайта өңделеді. Қағаз жапсырмасын алып тастаудың қажеті жоқ."},
18
- "metal": {"name": "🔩 Металл", "recyclable": True, "description": "Алюминий және қаңылтыр банкалар сияқты металл заттар қайта өңдеуге жатады."},
19
- "paper": {"name": "📄 Қағаз", "recyclable": True, "description": "Газеттер, журналдар және кеңсе қағаздары қайта өңделеді. Ластанған немесе майланған қағазды тастамаңыз."},
20
- "plastic": {"name": "🧴 Пластик", "recyclable": True, "description": "Көптеген пластик бөтелкелер мен контейнерлер қайта өңделеді. Таңбасына (♻️) назар аударыңыз."},
21
- "trash": {"name": "🗑️ Басқа қоқыс", "recyclable": False, "description": "Бұл зат қайта өңдеуге жарамсыз. Жалпы қоқыс жәшігіне тастаңыз."}
22
- }
23
-
24
- # ⭐️ Жаңа өсімдік моделінің жауаптарына сәйкестендірілген сөздік
25
- PLANT_LABELS_KZ = {
26
- "Apple__Apple_scab": {"name": "🍎 Алманың қотыр ауруы", "description": "Жапырақтар мен жемістерде қара дақтар пайда болады. Фунгицидтермен өңдеу және түскен жапырақтарды жинау қажет."},
27
- "Apple__healthy": {"name": "🍏 Сау алма ағашы", "description": "Ауру белгілері байқалмайды. Өсімдік сау."},
28
- "Tomato__Bacterial_spot": {"name": "🍅 Қызанақтың бактериялық дағы", "description": "Жапырақтарда, сабақтарда және жемістерде ұсақ, сулы дақтар пайда болады. Мыс негізіндегі спрейлер көмектесе алады."},
29
- "Tomato__healthy": {"name": "🍅 Сау қызанақ", "description": "Ауру белгілері жоқ. Өсімдік жақсы өсіп жатыр."},
30
- "Potato__Early_blight": {"name": "🥔 Картоптың ерте фитофторозы", "description": "Жапырақтарда сары жиектері бар қара концентрлі дақтар пайда болады. Ауруға төзімді сорттарды отырғызып, фунгицидтер қолданыңыз."},
31
- "Potato__healthy": {"name": "🥔 Сау картоп", "description": "Өсімдікте ауру белгілері жоқ. Жағдайы жақсы."}
32
- }
33
-
34
- # Суретті талдау функциясы
35
- def analyze_image(mode, image):
36
- global waste_classifier, plant_classifier
37
- try:
38
- if mode == "♻️ Қоқыс":
39
- if waste_classifier is None:
40
- print("Жаңа қоқыс тану моделін жүктеу...")
41
- # ⭐️ ҚАТЕНІ ЖӨНДЕУ: Жаңа, жұмыс істейтін модельге ауыстыру
42
- waste_classifier = pipeline("image-classification", model="yangy50/garbage-classification", device=device)
43
-
44
- predictions = waste_classifier(image)
45
- top_prediction = predictions[0]
46
- label_en = top_prediction['label']
47
-
48
- result_kz = WASTE_LABELS_KZ.get(label_en, {"name": "❓ Белгісіз зат", "recyclable": False, "description": "Бұл заттың түрін анықтай алмадым."})
49
- status = "✅ Қайта өңделеді" if result_kz['recyclable'] else "❌ Өңделмейді"
50
- score_percent = top_prediction['score'] * 100
51
-
52
- return (f"**Нәтиже:** {result_kz['name']}\n\n"
53
- f"**Статус:** {status}\n\n"
54
- f"**Сипаттама:** {result_kz['description']}\n\n"
55
- f"_(Сенімділік: {score_percent:.2f}%)_")
56
-
57
- elif mode == "🌿 Өсімдік":
58
- if plant_classifier is None:
59
- print("Жаңа өсімдік ауруларын тану моделін жүктеу...")
60
- # ⭐️ ЖАҢАРТУ: Бұрынғы модель жақсы, бірақ одан да танымал баламасын қолданамыз
61
- plant_classifier = pipeline("image-classification", model="nicksttn/plant-disease-detector", device=device)
62
-
63
- predictions = plant_classifier(image)
64
- top_prediction = predictions[0]
65
- label_en = top_prediction['label']
66
-
67
- result_kz = PLANT_LABELS_KZ.get(label_en, {"name": "❓ Белгісіз ауру", "description": "Ауру түрін анықтай алмадым немесе сөздікте жоқ."})
68
- score_percent = top_prediction['score'] * 100
69
-
70
- return (f"**Диагноз:** {result_kz['name']}\n\n"
71
- f"**Сипаттама:** {result_kz['description']}\n\n"
72
- f"_(Сенімділік: {score_percent:.2f}%)_")
73
-
74
- except Exception as e:
75
- return f"Қате: {str(e)}"
76
-
77
- # --- Ықшамдалған Gradio интерфейсі (өзгеріссіз) ---
78
- with gr.Blocks(theme=gr.themes.Soft(), title="AI Assistant") as demo:
79
- gr.Markdown("## 🌌 AI Көмекші")
80
-
81
- with gr.Row():
82
- mode = gr.Radio(
83
- ["♻️ Қоқыс", "🌿 Өсімдік"],
84
- label="Режим",
85
- value="♻️ Қоқыс"
86
- )
87
-
88
- image_input = gr.Image(type="pil", label="Сурет")
89
-
90
- btn = gr.Button("🔍 Талдау", variant="primary")
91
-
92
- output_text = gr.Markdown(label="Нәтиже")
93
-
94
- btn.click(analyze_image, inputs=[mode, image_input], outputs=output_text)
95
-
96
- # Мысалдарды уақытша алып тастауға болады, егер examples папкасы жоқ болса
97
- # gr.Examples(...)
98
-
99
- demo.launch()