lodgy commited on
Commit
602c9fd
·
verified ·
1 Parent(s): 02adf6b

Upload 6 files

Browse files
Files changed (6) hide show
  1. .gitignore +45 -0
  2. LICENSE +22 -0
  3. README.md +102 -6
  4. app.py +258 -55
  5. chicken_ai.py +290 -0
  6. requirements.txt +5 -1
.gitignore ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ build/
8
+ develop-eggs/
9
+ dist/
10
+ downloads/
11
+ eggs/
12
+ .eggs/
13
+ lib/
14
+ lib64/
15
+ parts/
16
+ sdist/
17
+ var/
18
+ wheels/
19
+ *.egg-info/
20
+ .installed.cfg
21
+ *.egg
22
+ MANIFEST
23
+
24
+ # Virtual environments
25
+ venv/
26
+ env/
27
+ ENV/
28
+
29
+ # IDE
30
+ .vscode/
31
+ .idea/
32
+ *.swp
33
+ *.swo
34
+
35
+ # OS
36
+ .DS_Store
37
+ Thumbs.db
38
+
39
+ # Gradio
40
+ gradio_cached_examples/
41
+ flagged/
42
+
43
+ # Logs
44
+ *.log
45
+
LICENSE ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Manus AI
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
README.md CHANGED
@@ -1,13 +1,109 @@
1
  ---
2
- title: Chicken
3
- emoji: 💬
4
- colorFrom: yellow
5
  colorTo: purple
6
  sdk: gradio
7
- sdk_version: 5.0.1
8
  app_file: app.py
9
  pinned: false
10
- license: apache-2.0
11
  ---
12
 
13
- An example chatbot using [Gradio](https://gradio.app), [`huggingface_hub`](https://huggingface.co/docs/huggingface_hub/v0.22.2/en/index), and the [Hugging Face Inference API](https://huggingface.co/docs/api-inference/index).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ title: مساعد تربية الدجاج الذكي
3
+ emoji: 🐔
4
+ colorFrom: blue
5
  colorTo: purple
6
  sdk: gradio
7
+ sdk_version: 4.0.0
8
  app_file: app.py
9
  pinned: false
10
+ license: mit
11
  ---
12
 
13
+ # 🐔 مساعد تربية الدجاج الذكي
14
+
15
+ مساعد ذكي متخصص في تربية الدجاج البلدي والصناعي، مصمم لمساعدة المربين الصغار والمتوسطين على تحسين إنتاجهم ورعاية دجاجهم بأفضل الطرق العلمية.
16
+
17
+ ## ✨ الميزات الرئيسية
18
+
19
+ ### 🩺 تشخيص الأمراض
20
+ - تشخيص دقيق للأمراض بناءً على الأعراض المدخلة
21
+ - توصيات علاجية مفصلة لكل مرض
22
+ - نصائح الوقاية والنظافة
23
+ - تغطية شاملة لأكثر من 10 أمراض شائعة
24
+
25
+ ### 🌾 خطط التغذية المخصصة
26
+ - خطط تغذية مناسبة لكل مرحلة عمرية
27
+ - تغذية متخصصة للدجاج البياض واللاحم
28
+ - خطط خاصة للدجاج المريض وفترة النقاهة
29
+ - توصيات للمكملات الغذائية والفيتامينات
30
+
31
+ ### ❓ استشارات عامة
32
+ - إجابات فورية على أسئلة تربية الدجاج
33
+ - نصائح حول الماء والتغذية والنظافة
34
+ - إرشادات حول التحصين والوقاية
35
+ - معلومات عن إدارة الحظائر والبيئة
36
+
37
+ ### 💡 نصائح يومية
38
+ - نصائح يومية للرعاية والوقاية
39
+ - تذكيرات مهمة للمربين
40
+ - أفضل الممارسات في تربية الدجاج
41
+
42
+ ## 🎯 الفئة المستهدفة
43
+
44
+ - المربين الصغار والمتوسطين
45
+ - المبتدئين في تربية الدجاج
46
+ - أصحاب المزارع المنزلية
47
+ - الطلاب والباحثين في مجال الدواجن
48
+
49
+ ## 🔬 التقنيات المستخدمة
50
+
51
+ - **الواجهة**: Gradio للتفاعل السهل والبديهي
52
+ - **اللغة**: Python مع خوارزميات ذكية للتشخيص
53
+ - **قاعدة المعرفة**: شاملة ومحدثة بأحدث المعلومات العلمية
54
+ - **التصميم**: واجهة عربية متجاوبة وسهلة الاستخدام
55
+
56
+ ## 📋 كيفية الاستخدام
57
+
58
+ ### تشخيص الأمراض
59
+ 1. انتقل إلى تبويب "تشخيص الأمراض"
60
+ 2. اكتب الأعراض التي تلاحظها (افصل بينها بفاصلة)
61
+ 3. اضغط "تشخيص المرض"
62
+ 4. ستحصل على التشخيص المحتمل مع العلاج والوقاية
63
+
64
+ ### إنشاء خطة تغذية
65
+ 1. انتقل إلى تبويب "خطط التغذية"
66
+ 2. أدخل عمر الدجاج بالأسابيع
67
+ 3. اختر نوع الدجاج (بياض/لاحم/مختلط)
68
+ 4. حدد حالة الدجاج (صحي/مريض/نقاهة)
69
+ 5. اضغط "إنشاء خطة التغذية"
70
+
71
+ ### الاستشارات العامة
72
+ 1. انتقل إلى تبويب "استشارات عامة"
73
+ 2. اكتب سؤالك بوضوح
74
+ 3. اضغط "اسأل"
75
+ 4. ستحصل على إجابة شاملة ومفيدة
76
+
77
+ ## ⚠️ تنبيهات مهمة
78
+
79
+ - هذا المساعد يقدم نصائح استرشادية فقط
80
+ - في الحالات الشديدة، يُنصح بمراجعة طبيب بيطري
81
+ - اتبع برامج التحصين الموصى بها في منطقتك
82
+ - احتفظ بسجلات للعلاجات والتحصينات
83
+
84
+ ## 📞 للطوارئ
85
+
86
+ - اعزل الطيور المريضة فوراً
87
+ - لا تخلط الأدوية بدون استشارة
88
+ - التزم بفترات السحب للأدوية
89
+
90
+ ## 🤝 المساهمة
91
+
92
+ نرحب بمساهماتكم لتحسين هذا المساعد:
93
+ - اقتراح ميزات جديدة
94
+ - تحسين دقة التشخيص
95
+ - إضافة أمراض أو معلومات جديدة
96
+ - تحسين واجهة المستخدم
97
+
98
+ ## 📄 الترخيص
99
+
100
+ هذا المشروع مرخص تحت رخصة MIT - انظر ملف [LICENSE](LICENSE) للتفاصيل.
101
+
102
+ ## 👨‍💻 المطور
103
+
104
+ تم تطوير هذا المساعد بواسطة **Manus AI** بهدف مساعدة مربي الدجاج على تحسين إنتاجهم ورعاية دجاجهم بأفضل الطرق العلمية.
105
+
106
+ ---
107
+
108
+ **ملاحظة**: هذا التطبيق تعليمي واسترشادي، ولا يغني عن استشارة الطبيب البيطري في الحالات الشديدة.
109
+
app.py CHANGED
@@ -1,64 +1,267 @@
1
  import gradio as gr
2
- from huggingface_hub import InferenceClient
 
3
 
4
- """
5
- For more information on `huggingface_hub` Inference API support, please check the docs: https://huggingface.co/docs/huggingface_hub/v0.22.2/en/guides/inference
6
- """
7
- client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
 
10
- def respond(
11
- message,
12
- history: list[tuple[str, str]],
13
- system_message,
14
- max_tokens,
15
- temperature,
16
- top_p,
17
- ):
18
- messages = [{"role": "system", "content": system_message}]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
 
20
- for val in history:
21
- if val[0]:
22
- messages.append({"role": "user", "content": val[0]})
23
- if val[1]:
24
- messages.append({"role": "assistant", "content": val[1]})
 
 
25
 
26
- messages.append({"role": "user", "content": message})
27
-
28
- response = ""
29
-
30
- for message in client.chat_completion(
31
- messages,
32
- max_tokens=max_tokens,
33
- stream=True,
34
- temperature=temperature,
35
- top_p=top_p,
36
- ):
37
- token = message.choices[0].delta.content
38
-
39
- response += token
40
- yield response
41
-
42
-
43
- """
44
- For information on how to customize the ChatInterface, peruse the gradio docs: https://www.gradio.app/docs/chatinterface
45
- """
46
- demo = gr.ChatInterface(
47
- respond,
48
- additional_inputs=[
49
- gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
50
- gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
51
- gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
52
- gr.Slider(
53
- minimum=0.1,
54
- maximum=1.0,
55
- value=0.95,
56
- step=0.05,
57
- label="Top-p (nucleus sampling)",
58
- ),
59
- ],
60
- )
61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
 
 
63
  if __name__ == "__main__":
64
- demo.launch()
 
 
 
 
 
 
 
1
  import gradio as gr
2
+ import json
3
+ from chicken_ai import ChickenAI
4
 
5
+ # إنشاء مثيل من المساعد الذكي
6
+ ai_assistant = ChickenAI()
 
 
7
 
8
+ def diagnose_symptoms(symptoms_text):
9
+ """تشخيص الأمراض بناءً على الأعراض"""
10
+ if not symptoms_text.strip():
11
+ return "يرجى إدخال الأعراض التي تلاحظها على الدجاج."
12
+
13
+ # تقسيم الأعراض
14
+ symptoms = [s.strip() for s in symptoms_text.split(',') if s.strip()]
15
+
16
+ # التشخيص
17
+ diagnoses = ai_assistant.diagnose_disease(symptoms)
18
+
19
+ if not diagnoses:
20
+ return "لم أتمكن من تحديد مرض محتمل بناءً على الأعراض المذكورة. يرجى مراجعة طبيب بيطري."
21
+
22
+ result = "## التشخيص المحتمل:\n\n"
23
+
24
+ for i, (disease, confidence) in enumerate(diagnoses, 1):
25
+ percentage = int(confidence * 100)
26
+ result += f"### {i}. {disease.name} (احتمالية: {percentage}%)\n\n"
27
+ result += f"**العلاج المقترح:**\n{disease.treatment}\n\n"
28
+ result += f"**الوقاية:**\n{disease.prevention}\n\n"
29
+ result += f"**النظافة:**\n{disease.hygiene}\n\n"
30
+ result += "---\n\n"
31
+
32
+ result += "⚠️ **تنبيه:** هذا التشخيص استرشادي فقط. يُنصح بمراجعة طبيب بيطري للحالات الشديدة."
33
+
34
+ return result
35
 
36
+ def generate_feeding_plan(age_weeks, chicken_type, condition):
37
+ """توليد خطة تغذية"""
38
+ try:
39
+ age = int(age_weeks)
40
+ except:
41
+ return "يرجى إدخال عمر صحيح بالأسابيع."
42
+
43
+ plan = ai_assistant.generate_nutrition_plan(age, chicken_type, condition)
44
+
45
+ if not plan:
46
+ return "لم أتمكن من إنشاء خطة تغذية مناسبة. يرجى التحقق من البيانات المدخلة."
47
+
48
+ result = f"## خطة التغذية المقترحة\n\n"
49
+ result += f"**نوع العلف:** {plan.feed_type}\n\n"
50
+ result += f"**الكمية اليومية:** {plan.daily_amount}\n\n"
51
+ result += f"**عدد الوجبات:** {plan.meals_per_day}\n\n"
52
+ result += f"**كمية الماء:** {plan.water_amount}\n\n"
53
+ result += f"**إضافات مهمة:** {plan.supplements}\n\n"
54
+
55
+ # إضافة نصائح عامة
56
+ result += "### نصائح إضافية:\n\n"
57
+ result += "• تأكد من نظافة المعالف والمشارب يومياً\n"
58
+ result += "• وفر الماء النظيف باستمرار\n"
59
+ result += "• راقب استهلاك العلف والماء يومياً\n"
60
+ result += "• تدرج في تغيير نوع العلف خلال 7-10 أيام\n"
61
+
62
+ return result
63
 
64
+ def answer_general_question(question):
65
+ """الإجابة على الأسئلة العامة"""
66
+ if not question.strip():
67
+ return "يرجى كتابة سؤالك."
68
+
69
+ answer = ai_assistant.answer_question(question)
70
+ return answer
71
 
72
+ def get_daily_tips():
73
+ """الحصول على نصائح يومية"""
74
+ tip = ai_assistant.get_daily_tip()
75
+ prevention_tip = ai_assistant.get_prevention_tip()
76
+
77
+ result = "## نصيحة اليوم 💡\n\n"
78
+ result += f"**الرعاية اليومية:** {tip}\n\n"
79
+ result += f"**ال��قاية:** {prevention_tip}\n\n"
80
+ result += "---\n\n"
81
+ result += "💡 **تذكر:** الوقاية خير من العلاج!"
82
+
83
+ return result
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
84
 
85
+ # تصميم الواجهة
86
+ with gr.Blocks(
87
+ title="مساعد تربية الدجاج الذكي",
88
+ theme=gr.themes.Soft(),
89
+ css="""
90
+ .gradio-container {
91
+ font-family: 'Arial', sans-serif;
92
+ direction: rtl;
93
+ text-align: right;
94
+ }
95
+ .gr-button {
96
+ background: linear-gradient(45deg, #4CAF50, #45a049);
97
+ border: none;
98
+ color: white;
99
+ font-weight: bold;
100
+ }
101
+ .gr-button:hover {
102
+ background: linear-gradient(45deg, #45a049, #4CAF50);
103
+ }
104
+ .header {
105
+ text-align: center;
106
+ padding: 20px;
107
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
108
+ color: white;
109
+ border-radius: 10px;
110
+ margin-bottom: 20px;
111
+ }
112
+ """
113
+ ) as app:
114
+
115
+ # العنوان الرئيسي
116
+ gr.HTML("""
117
+ <div class="header">
118
+ <h1>🐔 مساعد تربية الدجاج الذكي</h1>
119
+ <p>مساعدك المتخصص في تربية الدجاج البلدي والصناعي</p>
120
+ <p>تشخيص الأمراض • خطط التغذية • نصائح الرعاية • استشارات عامة</p>
121
+ </div>
122
+ """)
123
+
124
+ with gr.Tabs():
125
+
126
+ # تبويب تشخيص الأمراض
127
+ with gr.Tab("🩺 تشخيص الأمراض"):
128
+ gr.Markdown("### اكتب الأعراض التي تلاحظها على الدجاج (افصل بينها بفاصلة)")
129
+
130
+ with gr.Row():
131
+ with gr.Column(scale=2):
132
+ symptoms_input = gr.Textbox(
133
+ label="الأعراض",
134
+ placeholder="مثال: خمول، فقدان شهية، إسهال، صعوبة في التنفس",
135
+ lines=3,
136
+ rtl=True
137
+ )
138
+ diagnose_btn = gr.Button("تشخيص المرض", variant="primary")
139
+
140
+ with gr.Column(scale=1):
141
+ gr.Markdown("""
142
+ **أمثلة على الأعراض:**
143
+ - خمول وكسل
144
+ - فقدان الشهية
145
+ - إسهال (أبيض، أخضر، دموي)
146
+ - صعوبة في التنفس
147
+ - عطس وسعال
148
+ - تورم الوجه
149
+ - انخفاض إنتاج البيض
150
+ """)
151
+
152
+ diagnosis_output = gr.Markdown(label="نتيجة التشخيص")
153
+ diagnose_btn.click(diagnose_symptoms, inputs=symptoms_input, outputs=diagnosis_output)
154
+
155
+ # تبويب خطط التغذية
156
+ with gr.Tab("🌾 خطط التغذية"):
157
+ gr.Markdown("### أدخل معلومات الدجاج لإنشاء خطة تغذية مناسبة")
158
+
159
+ with gr.Row():
160
+ age_input = gr.Number(
161
+ label="العمر بالأسابيع",
162
+ value=10,
163
+ minimum=1,
164
+ maximum=100
165
+ )
166
+ type_input = gr.Dropdown(
167
+ label="نوع الدجاج",
168
+ choices=["بياض", "لاحم", "مختلط"],
169
+ value="بياض"
170
+ )
171
+ condition_input = gr.Dropdown(
172
+ label="حالة الدجاج",
173
+ choices=["صحي", "مريض", "نقاهة"],
174
+ value="صحي"
175
+ )
176
+
177
+ feeding_btn = gr.Button("إنشاء خطة التغذية", variant="primary")
178
+ feeding_output = gr.Markdown(label="خطة التغذية")
179
+ feeding_btn.click(
180
+ generate_feeding_plan,
181
+ inputs=[age_input, type_input, condition_input],
182
+ outputs=feeding_output
183
+ )
184
+
185
+ # تبويب الأسئلة العامة
186
+ with gr.Tab("❓ استشارات عامة"):
187
+ gr.Markdown("### اسأل أي سؤال حول تربية الدجاج")
188
+
189
+ with gr.Row():
190
+ with gr.Column(scale=2):
191
+ question_input = gr.Textbox(
192
+ label="سؤالك",
193
+ placeholder="مثال: كيف أزيد من إنتاج البيض؟",
194
+ lines=2,
195
+ rtl=True
196
+ )
197
+ ask_btn = gr.Button("اسأل", variant="primary")
198
+
199
+ with gr.Column(scale=1):
200
+ gr.Markdown("""
201
+ **أمثلة على الأسئلة:**
202
+ - كيف أزيد من إنتاج البيض؟
203
+ - ما هي أفضل طريقة لتنظيف الحظيرة؟
204
+ - كم مرة أغير الماء؟
205
+ - متى أحصن الدجاج؟
206
+ - ما هي علامات الدجاج الصحي؟
207
+ """)
208
+
209
+ answer_output = gr.Markdown(label="الإجابة")
210
+ ask_btn.click(answer_general_question, inputs=question_input, outputs=answer_output)
211
+
212
+ # تبويب النصائح اليومية
213
+ with gr.Tab("💡 نصائح يومية"):
214
+ gr.Markdown("### احصل على نصائح يومية لرعاية دجاجك")
215
+
216
+ tips_btn = gr.Button("احصل على نصيحة اليوم", variant="primary")
217
+ tips_output = gr.Markdown(label="نصائح اليوم")
218
+ tips_btn.click(get_daily_tips, outputs=tips_output)
219
+
220
+ # عرض بعض النصائح الثابتة
221
+ gr.Markdown("""
222
+ ### نصائح سريعة:
223
+
224
+ 🔹 **الماء النظيف:** غير الماء مرتين يومياً على الأقل
225
+
226
+ 🔹 **التهوية:** تأكد من وجود تهوية جيدة دون تيارات هوائية مباشرة
227
+
228
+ 🔹 **النظافة:** قلب الفرشة يومياً وأزل المبللة منها
229
+
230
+ 🔹 **المراقبة:** افحص الدجاج يومياً لملاحظة أي تغييرات
231
+
232
+ 🔹 **التغذية:** استخدم علف مناسب للمرحلة العمرية
233
+
234
+ 🔹 **الإضاءة:** وفر 14-16 ساعة إضاءة للدجاج البياض
235
+ """)
236
+
237
+ # معلومات إضافية
238
+ gr.Markdown("""
239
+ ---
240
+
241
+ ### ⚠️ تنبيهات مهمة:
242
+
243
+ - هذا المساعد يقدم نصائح استرشادية فقط
244
+ - في الحالات الشديدة، يُنصح بمراجعة طبيب بيطري
245
+ - اتبع برامج التحصين الموصى بها في منطقتك
246
+ - احتفظ بسجلات للعلاجات والتحصينات
247
+
248
+ ### 📞 للطوارئ:
249
+ - اعزل الطيور المريضة فوراً
250
+ - لا تخلط الأدوية بدون استشارة
251
+ - التزم بفترات السحب للأدوية
252
+
253
+ ---
254
+
255
+ **تم تطوير هذا المساعد بواسطة:** Manus AI
256
+ **الهدف:** مساعدة مربي الدجاج الصغار والمتوسطين على تحسين إنتاجهم ورعاية دجاجهم
257
+ """)
258
 
259
+ # تشغيل التطبيق
260
  if __name__ == "__main__":
261
+ app.launch(
262
+ server_name="0.0.0.0",
263
+ server_port=7860,
264
+ share=False,
265
+ show_error=True
266
+ )
267
+
chicken_ai.py ADDED
@@ -0,0 +1,290 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import re
3
+ from typing import Dict, List, Tuple, Optional
4
+ from dataclasses import dataclass
5
+ from datetime import datetime
6
+
7
+ @dataclass
8
+ class Disease:
9
+ name: str
10
+ symptoms: List[str]
11
+ treatment: str
12
+ prevention: str
13
+ hygiene: str
14
+
15
+ @dataclass
16
+ class NutritionPlan:
17
+ age_weeks: int
18
+ chicken_type: str
19
+ feed_type: str
20
+ daily_amount: str
21
+ meals_per_day: str
22
+ water_amount: str
23
+ supplements: str
24
+
25
+ class ChickenAI:
26
+ def __init__(self):
27
+ self.diseases = self._load_diseases()
28
+ self.nutrition_plans = self._load_nutrition_plans()
29
+ self.daily_tips = self._load_daily_tips()
30
+ self.prevention_tips = self._load_prevention_tips()
31
+
32
+ def _load_diseases(self) -> List[Disease]:
33
+ """تحميل قاعدة بيانات الأمراض"""
34
+ diseases = [
35
+ Disease(
36
+ name="نيوكاسل",
37
+ symptoms=["خمول شديد", "فقدان شهية", "إسهال مائي أخضر", "صعوبة في التنفس", "عطس", "سعال", "تورم الوجه والرأس", "شلل الأجنحة والأرجل", "التواء الرقبة", "انخفاض حاد في إنتاج البيض"],
38
+ treatment="لا يوجد علاج فعال للمرض نفسه، ولكن يمكن تقديم مضادات حيوية للوقاية من العدوى البكتيرية الثانوية. التركيز على الرعاية الداعمة (توفير الماء والغذاء).",
39
+ prevention="التحصين المنتظم (لقاحات حية وميتة)، عزل الطيور الجديدة، نظافة وتطهير الحظائر بشكل دوري، التحكم في حركة الزوار.",
40
+ hygiene="تطهير شامل للمعدات والحظائر بمطهرات فعالة بعد تفشي المرض."
41
+ ),
42
+ Disease(
43
+ name="الكوكسيديا",
44
+ symptoms=["خمول", "كششان", "فقدان شهية", "إسهال دموي أو مخاطي", "شحوب العرف والدلايات", "انخفاض النمو أو إنتاج البيض"],
45
+ treatment="أدوية مضادة للكوكسيديا (مثل الأمبروليوم، السلفا)، يمكن إضافتها لماء الشرب أو العلف.",
46
+ prevention="استخدام علف يحتوي على مضادات كوكسيديا، نظافة الفرشة الجيدة والجافة، تجنب الرطوبة الزائدة، توفير مساحة كافية للطيور.",
47
+ hygiene="إزالة الفرشة المبللة والمتسخة بانتظام، تطهير المعالف والمشارب."
48
+ ),
49
+ Disease(
50
+ name="الإسهال الأبيض",
51
+ symptoms=["خمول", "تكتل الريش حول فتحة المجمع", "إسهال أبيض طباشيري", "صعوبة في التنفس", "ارتفاع معدل النفوق"],
52
+ treatment="مضادات حيوية مثل السلفا أو الفلورفينيكول.",
53
+ prevention="شراء كتاكيت من مصادر موثوقة وخالية من المرض، اختبار الطيور الأم، نظافة وتطهير الفقاسات والحظائر.",
54
+ hygiene="تطهير شامل للمعدات والحظائر، التخلص السليم من الطيور النافقة."
55
+ ),
56
+ Disease(
57
+ name="جدري الدجاج",
58
+ symptoms=["ظهور بثور أو تقرحات على الأجزاء غير المريشة", "تقرحات على العرف والدلايات", "تقرحات حول العينين", "تقرحات داخل الفم والحلق"],
59
+ treatment="لا يوجد علاج محدد، ولكن يمكن استخدام المطهرات الموضعية للبثور الخارجية، ومضادات حيوية للوقاية من العدوى الثانوية.",
60
+ prevention="التحصين (لقاح الجدري)، مكافحة الحشرات (الناموس) التي تنقل المرض.",
61
+ hygiene="تطهير الحظائر والمعدات، التخلص من الطيور المصابة بشدة."
62
+ ),
63
+ Disease(
64
+ name="التهاب الشعب الهوائية المعدي",
65
+ symptoms=["عطس", "سعال", "رشح أنفي", "صعوبة في التنفس", "انخفاض حاد في إنتاج البيض", "بيض مشوه أو رقيق القشرة", "انخفاض جودة البيض"],
66
+ treatment="لا يوجد علاج محدد للفيروس، ولكن يمكن استخدام مضادات حيوية للسيطرة على العدوى البكتيرية الثانوية، وفيتامينات لدعم الطيور.",
67
+ prevention="التحصين المنتظم، تحسين التهوية، تقليل الإجهاد.",
68
+ hygiene="نظافة وتطهير الحظائر والمعدات بانتظام."
69
+ ),
70
+ Disease(
71
+ name="المايكوبلازما",
72
+ symptoms=["سعال", "عطس", "رشح أنفي", "تورم الجيوب الأنفية", "التهاب العين", "صعوبة في التنفس", "انخفاض النمو وإنتاج البيض"],
73
+ treatment="مضادات حيوية مثل التايلوزين، التيلمايكوسين، أو الدوكسيسايكلين.",
74
+ prevention="شراء كتاكيت من قطعان خالية من المايكوبلازما، نظافة الحظائر، تقليل الغبار والأمونيا.",
75
+ hygiene="تطهير شامل للحظائر والمعدات بعد كل دورة إنتاج."
76
+ ),
77
+ Disease(
78
+ name="الكوليرا",
79
+ symptoms=["نفوق مفاجئ", "خمول", "فقدان شهية", "إسهال أخضر مصفر", "تورم المفاصل والعرف والدلايات", "صعوبة في التنفس"],
80
+ treatment="مضادات حيوية مثل السلفا أو التتراسيكلين.",
81
+ prevention="التحصين، مكافحة القوارض والطيور البرية، نظافة الحظائر ومصادر المياه.",
82
+ hygiene="تطهير شامل للحظائر والمعدات، التخلص السليم من الطيور النافقة."
83
+ ),
84
+ Disease(
85
+ name="ماريك",
86
+ symptoms=["شلل تدريجي في الأجنحة والأرجل", "أورام داخلية", "شلل العين", "العين الرمادية", "نفوق"],
87
+ treatment="لا يوجد علاج.",
88
+ prevention="التحصين في عمر يوم واحد (ضروري جداً)، شراء كتاكيت من مصادر موثوقة.",
89
+ hygiene="نظافة وتطهير الحظائر بشكل جيد."
90
+ ),
91
+ Disease(
92
+ name="التهاب الأمعاء النخري",
93
+ symptoms=["خمول", "كششان", "إسهال", "نفوق مفاجئ", "انتفاخ البطن", "ريش منتفش"],
94
+ treatment="مضادات حيوية مثل الأموكسيسيلين أو الباسيتراسين.",
95
+ prevention="إدارة جيدة للفرشة، تجنب التغيرات المفاجئة في العلف، استخدام البروبيوتيك.",
96
+ hygiene="إزالة الفرشة المبللة، تطهير الحظائر."
97
+ ),
98
+ Disease(
99
+ name="الإجهاد الحراري",
100
+ symptoms=["لهث شديد", "فتح الفم للتنفس", "رفع الأجنحة بعيداً عن الجسم", "انخفاض استهلاك العلف", "انخفاض إنتاج البيض", "نفوق"],
101
+ treatment="تبريد الحظيرة (رش الماء، مراوح)، توفير ماء بارد ونظيف، إضافة فيتامينات وأملاح معدنية لماء الشرب.",
102
+ prevention="توفير تهوية جيدة، عزل الحظائر، توفير الظل، تقليل كثافة الطيور.",
103
+ hygiene="الحفاظ على بيئة نظيفة يقلل من الإجهاد العام."
104
+ )
105
+ ]
106
+ return diseases
107
+
108
+ def _load_nutrition_plans(self) -> Dict[str, List[NutritionPlan]]:
109
+ """تحميل خطط التغذية"""
110
+ plans = {
111
+ "كتاكيت": [
112
+ NutritionPlan(1, "كتاكيت", "علف بادئ بروتين 22-24%", "10-15 جرام يومياً", "6-8 وجبات", "30-50 مل", "فيتامينات ومعادن، جلوكوز 5%"),
113
+ NutritionPlan(2, "كتاكيت", "علف بادئ بروتين 20-22%", "20-25 جرام يومياً", "5-6 وجبات", "50-80 مل", "فيتامينات مرة أسبوعياً"),
114
+ NutritionPlan(3, "كتاكيت", "علف بادئ بروتين 18-20%", "35-45 جرام يومياً", "4-5 وجبات", "80-120 مل", "خضروات مقطعة صغيرة"),
115
+ NutritionPlan(4, "كتاكيت", "علف بادئ بروتين 18-20%", "35-45 جرام يومياً", "4-5 وجبات", "80-120 مل", "خضروات مقطعة صغيرة"),
116
+ NutritionPlan(5, "كتاكيت", "علف نامي بروتين 16-18%", "50-70 جرام يومياً", "3-4 وجبات", "120-150 مل", "حبوب مخلوطة"),
117
+ NutritionPlan(6, "كتاكيت", "علف نامي بروتين 16-18%", "50-70 جرام يومياً", "3-4 وجبات", "120-150 مل", "حبوب مخلوطة")
118
+ ],
119
+ "نامي": [
120
+ NutritionPlan(8, "نامي", "علف نامي بروتين 16-18%", "70-90 جرام يومياً", "3 وجبات", "150-200 مل", "حبوب مخلوطة 20%"),
121
+ NutritionPlan(12, "نامي", "علف نامي بروتين 14-16%", "90-110 جرام يومياً", "2-3 وجبات", "200-250 مل", "خضروات وفواكه، حصى صغيرة"),
122
+ NutritionPlan(16, "نامي", "علف نامي بروتين 14-16%", "90-110 جرام يومياً", "2-3 وجبات", "200-250 مل", "خضروات وفواكه، حصى صغيرة")
123
+ ],
124
+ "بياض": [
125
+ NutritionPlan(20, "بياض", "علف بياض بروتين 16-18%، كالسيوم 3.5-4%", "110-130 جرام يومياً", "2-3 وجبات", "250-300 مل", "مصادر كالسيوم إضافية، خضروات ورقية، حبوب مخلوطة 30%")
126
+ ],
127
+ "لاحم": [
128
+ NutritionPlan(20, "لاحم", "علف تسمين بروتين 18-22%", "150-200 جرام يومياً", "3-4 وجبات", "300-400 مل", "تركيز على الطاقة والبروتين")
129
+ ],
130
+ "مريض": [
131
+ NutritionPlan(0, "مريض", "علف مطحون ناعم، مبلل قليلاً", "50-70% من الكمية العادية", "حسب الحالة", "ماء + فيتامينات + أملاح", "حسب نوع المرض")
132
+ ]
133
+ }
134
+ return plans
135
+
136
+ def _load_daily_tips(self) -> List[str]:
137
+ """تحميل النصائح اليومية"""
138
+ return [
139
+ "تغيير الماء في المشارب مرتين يومياً على الأقل، أو أكثر في الأيام الحارة",
140
+ "توفير فتحات تهوية مناسبة تسمح بدخول الهواء النقي وخروج الهواء الفاسد",
141
+ "للدجاج البياض: توفير 14-16 ساعة إضاءة يومياً",
142
+ "تقليب الفرشة يومياً للحفاظ على جفافها ومنع تكون الكتل",
143
+ "فحص الدجاج يومياً لملاحظة أي تغييرات في السلوك",
144
+ "سد جميع الفتحات في الحظيرة لمنع دخول القوارض",
145
+ "تنظيف وتطهير المعالف والمشارب بانتظام"
146
+ ]
147
+
148
+ def _load_prevention_tips(self) -> List[str]:
149
+ """تحميل نصائح الوقاية"""
150
+ return [
151
+ "تقييد دخول الزوار والمركبات إلى المزرعة",
152
+ "وضع الطيور الجديدة في حجر صحي لمدة 2-4 أسابيع",
153
+ "الحفاظ على درجة حرارة مناسبة داخل الحظيرة",
154
+ "تجنب الاكتظاظ في الحظيرة",
155
+ "استخدام علف عالي الجودة ومناسب للمرحلة العمرية",
156
+ "الفحص اليومي للقطيع لاكتشاف المشاكل مبكراً",
157
+ "التشخيص الدقيق قبل استخدام الأدوية"
158
+ ]
159
+
160
+ def diagnose_disease(self, symptoms: List[str]) -> List[Tuple[Disease, float]]:
161
+ """تشخيص المرض بناءً على الأعراض"""
162
+ results = []
163
+
164
+ for disease in self.diseases:
165
+ # حساب نسبة التطابق
166
+ matching_symptoms = 0
167
+ for symptom in symptoms:
168
+ for disease_symptom in disease.symptoms:
169
+ if self._symptoms_match(symptom, disease_symptom):
170
+ matching_symptoms += 1
171
+ break
172
+
173
+ if matching_symptoms > 0:
174
+ confidence = matching_symptoms / len(disease.symptoms)
175
+ results.append((disease, confidence))
176
+
177
+ # ترتيب النتائج حسب نسبة التطابق
178
+ results.sort(key=lambda x: x[1], reverse=True)
179
+ return results[:3] # أفضل 3 تشخيصات
180
+
181
+ def _symptoms_match(self, user_symptom: str, disease_symptom: str) -> bool:
182
+ """فحص تطابق الأعراض"""
183
+ user_words = set(user_symptom.lower().split())
184
+ disease_words = set(disease_symptom.lower().split())
185
+
186
+ # إذا كان هناك تطابق في كلمة واحدة على الأقل
187
+ return len(user_words.intersection(disease_words)) > 0
188
+
189
+ def generate_nutrition_plan(self, age_weeks: int, chicken_type: str, condition: str = "صحي") -> Optional[NutritionPlan]:
190
+ """توليد خطة تغذية"""
191
+ if condition == "مريض":
192
+ return self.nutrition_plans["مريض"][0]
193
+
194
+ # تحديد نوع الدجاج بناءً على العمر والنوع
195
+ if age_weeks <= 6:
196
+ category = "كتاكيت"
197
+ elif age_weeks <= 18:
198
+ category = "نامي"
199
+ elif chicken_type == "بياض":
200
+ category = "بياض"
201
+ else:
202
+ category = "لاحم"
203
+
204
+ if category in self.nutrition_plans:
205
+ plans = self.nutrition_plans[category]
206
+ # العثور على أقرب خطة للعمر المطلوب
207
+ best_plan = min(plans, key=lambda p: abs(p.age_weeks - age_weeks))
208
+ return best_plan
209
+
210
+ return None
211
+
212
+ def answer_question(self, question: str) -> str:
213
+ """الإجابة على الأسئلة العامة"""
214
+ question_lower = question.lower()
215
+
216
+ # أسئلة حول الماء
217
+ if any(word in question_lower for word in ["ماء", "شرب", "مياه"]):
218
+ return """الماء هو العنصر الأكثر أهمية لصحة الدجاج:
219
+
220
+ • يجب تغيير الماء مرتين يومياً على الأقل
221
+ • توفير ماء نظيف وعذب باستمرار
222
+ • في الشتاء، تأكد من أن الماء ليس بارداً جداً
223
+ • الدجاجة الواحدة تحتاج 250-300 مل ماء يومياً
224
+ • نظف المشارب بانتظام لمنع نمو البكتيريا"""
225
+
226
+ # أسئلة حول البيض
227
+ elif any(word in question_lower for word in ["بيض", "إنتاج", "وضع"]):
228
+ return """لزيادة إنتاج البيض:
229
+
230
+ • توفير علف بياض عالي الجودة (بروتين 16-18%)
231
+ • إضافة مصادر كالسيوم (قشر المحار، قشر البيض المطحون)
232
+ • توفير 14-16 ساعة إضاءة يومياً
233
+ • تقليل الإجهاد والحفاظ على بيئة هادئة
234
+ • توفير خضروات ورقية خضراء
235
+ • الحفاظ على درجة حرارة مناسبة (18-24°م)"""
236
+
237
+ # أسئلة حول التغذية
238
+ elif any(word in question_lower for word in ["علف", "طعام", "تغذية", "أكل"]):
239
+ return """نصائح التغذية السليمة:
240
+
241
+ • استخدم علف مناسب للمرحلة العمرية
242
+ • الكتاكيت: علف بادئ عالي البروتين (20-24%)
243
+ • الدجاج البالغ: علف بياض أو تسمين حسب الغرض
244
+ • أضف خضروات وفواكه كمكملات (20-30% من الوجبة)
245
+ • تجنب الطعام المتعفن أو المالح
246
+ • وفر حصى صغيرة للهضم"""
247
+
248
+ # أسئلة حول النظافة
249
+ elif any(word in question_lower for word in ["نظافة", "تنظيف", "فرشة", "كوشة"]):
250
+ return """نصائح النظافة:
251
+
252
+ • قلب الفرشة يومياً للحفاظ على جفافها
253
+ • أضف طبقة جديدة من الفرشة بانتظام
254
+ • أزل الفرشة المبللة والمتسخة فوراً
255
+ • نظف المعالف والمشارب يومياً
256
+ • طهر الحظيرة بالكامل بين الدورات
257
+ • تخلص من الطيور النافقة بطريقة آمنة"""
258
+
259
+ # أسئلة حول الأمراض
260
+ elif any(word in question_lower for word in ["مرض", "علاج", "دواء", "مضاد"]):
261
+ return """نصائح عامة للأمراض:
262
+
263
+ • اعزل الطيور المريضة فوراً
264
+ • لا تخلط الأدوية مع بعضها إلا بإشراف طبيب بيطري
265
+ • أكمل مدة العلاج كاملة حتى لو تحسنت الأعراض
266
+ • التزم بفترة السحب للأدوية قبل تسويق المنتجات
267
+ • احتفظ بسجلات للعلاجات المستخدمة
268
+ • الوقاية أفضل من العلاج - اتبع برنامج التحصين"""
269
+
270
+ else:
271
+ return """أهلاً بك! أنا مساعدك المتخصص في تربية الدجاج.
272
+
273
+ يمكنني مساعدتك في:
274
+ • تشخيص الأمراض بناءً على الأعراض
275
+ • وضع خطط تغذية مناسبة
276
+ • تقديم نصائح الرعاية اليومية
277
+ • الإجابة على أسئلتك حول تربية الدجاج
278
+
279
+ كيف يمكنني مساعدتك اليوم؟"""
280
+
281
+ def get_daily_tip(self) -> str:
282
+ """الحصول على نصيحة يومية"""
283
+ import random
284
+ return random.choice(self.daily_tips)
285
+
286
+ def get_prevention_tip(self) -> str:
287
+ """الحصول على نصيحة وقاية"""
288
+ import random
289
+ return random.choice(self.prevention_tips)
290
+
requirements.txt CHANGED
@@ -1 +1,5 @@
1
- huggingface_hub==0.25.2
 
 
 
 
 
1
+ gradio>=4.0.0
2
+ python-multipart
3
+ uvicorn
4
+ fastapi
5
+