Ritesh-hf commited on
Commit
3d0d4d5
1 Parent(s): 5b96473

initial commit

Browse files
.gitattributes CHANGED
@@ -33,3 +33,8 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ faiss_word_doc_index/index.pkl filter=lfs diff=lfs merge=lfs -text
37
+ faiss_word_doc_index/index.faiss filter=lfs diff=lfs merge=lfs -text
38
+ faiss_excel_doc_index/index.pkl filter=lfs diff=lfs merge=lfs -text
39
+ faiss_excel_doc_index/index.faiss filter=lfs diff=lfs merge=lfs -text
40
+ combined_keyword_retriever.pkl filter=lfs diff=lfs merge=lfs -text
app.py CHANGED
@@ -83,4 +83,5 @@ with gr.Blocks() as demo:
83
  chatbot = gr.Chatbot(placeholder="<strong>ADAFSA-RAG Chatbot</strong>")
84
  gr.ChatInterface(fn=get_response, chatbot=chatbot)
85
 
86
- demo.launch()
 
 
83
  chatbot = gr.Chatbot(placeholder="<strong>ADAFSA-RAG Chatbot</strong>")
84
  gr.ChatInterface(fn=get_response, chatbot=chatbot)
85
 
86
+ demo.launch()
87
+
combined_keyword_retriever.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7140d76a4ccec7a7174e176a88252284e42fb67da36c3eefab4dc206023f106f
3
+ size 6353686
data_loader.ipynb ADDED
@@ -0,0 +1,406 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {},
6
+ "source": [
7
+ "# Excel Data Loading"
8
+ ]
9
+ },
10
+ {
11
+ "cell_type": "code",
12
+ "execution_count": null,
13
+ "metadata": {},
14
+ "outputs": [],
15
+ "source": [
16
+ "import os\n",
17
+ "import pandas as pd\n",
18
+ "\n",
19
+ "def convert_xlsx_to_json(folder_path):\n",
20
+ " counter = 0\n",
21
+ " for root, dirs, files in os.walk(folder_path):\n",
22
+ " for file in files:\n",
23
+ " if file.endswith(\".xlsx\"):\n",
24
+ " df = pd.read_excel(os.path.join(root, file))\n",
25
+ " file_name = file.replace(\".xlsx\", \".json\")\n",
26
+ " df.to_json(\"data/json_files/\"+file_name, orient='records', date_format='iso', force_ascii=False, indent=4)\n",
27
+ " counter += 1\n",
28
+ " print(f\"{counter} .xlsx files converted to .json\")\n",
29
+ "\n",
30
+ "# Usage\n",
31
+ "folder_path = '/home/fahadkhan/Desktop/ADAFSA_Project/data' # Replace with your folder path\n",
32
+ "convert_xlsx_to_json(folder_path)"
33
+ ]
34
+ },
35
+ {
36
+ "cell_type": "code",
37
+ "execution_count": 15,
38
+ "metadata": {},
39
+ "outputs": [],
40
+ "source": [
41
+ "# from langchain_community.document_loaders import JSONLoader\n",
42
+ "from langchain_core.documents import Document\n",
43
+ "import os\n",
44
+ "import json\n",
45
+ "\n",
46
+ "DATA_DIR = \"./data/json_files\"\n",
47
+ "\n",
48
+ "json_files = os.listdir(DATA_DIR)\n",
49
+ "documents = []\n",
50
+ "\n",
51
+ "for fle in json_files:\n",
52
+ " file_path = os.path.join(DATA_DIR, fle)\n",
53
+ "\n",
54
+ " with open(file_path, 'r') as json_file:\n",
55
+ " json_data = json.load(json_file)\n",
56
+ "\n",
57
+ " file_name = fle.replace(\".json\", \"\")\n",
58
+ "\n",
59
+ " metadata = {\n",
60
+ " \"source\": file_path,\n",
61
+ " \"table_heading\": file_name,\n",
62
+ " }\n",
63
+ "\n",
64
+ " for i in range(0, len(json_data)): \n",
65
+ " doc = Document(\n",
66
+ " page_content=json.dumps(json_data[i], ensure_ascii=False),\n",
67
+ " metadata=metadata\n",
68
+ " )\n",
69
+ " documents.append(doc)\n"
70
+ ]
71
+ },
72
+ {
73
+ "cell_type": "code",
74
+ "execution_count": 17,
75
+ "metadata": {},
76
+ "outputs": [
77
+ {
78
+ "name": "stdout",
79
+ "output_type": "stream",
80
+ "text": [
81
+ "143730\n",
82
+ "page_content='{\"Year\": 2022, \"Region\": \"منطقة أبوظبي\", \"Section\": \"العينات\", \"Table name\": \"عدد العينات المطابقة والغير مطابقة بحسب المنطقة\", \"Category\": \"عدد العينات المطابقة\", \"Number\": 5604}' metadata={'source': './data/json_files/583-عدد العينات المطابقة والغير مطابقة بحسب المنطقة 2022.json', 'table_heading': '583-عدد العينات المطابقة والغير مطابقة بحسب المنطقة 2022'}\n"
83
+ ]
84
+ }
85
+ ],
86
+ "source": [
87
+ "print(len(documents))\n",
88
+ "print(documents[0])"
89
+ ]
90
+ },
91
+ {
92
+ "cell_type": "code",
93
+ "execution_count": 16,
94
+ "metadata": {},
95
+ "outputs": [],
96
+ "source": [
97
+ "from langchain_huggingface.embeddings import HuggingFaceEmbeddings\n",
98
+ "from langchain_community.vectorstores import FAISS\n",
99
+ "from langchain.retrievers import BM25Retriever"
100
+ ]
101
+ },
102
+ {
103
+ "cell_type": "code",
104
+ "execution_count": 20,
105
+ "metadata": {},
106
+ "outputs": [
107
+ {
108
+ "name": "stderr",
109
+ "output_type": "stream",
110
+ "text": [
111
+ "Some weights of the model checkpoint at Alibaba-NLP/gte-multilingual-base were not used when initializing NewModel: ['classifier.bias', 'classifier.weight']\n",
112
+ "- This IS expected if you are initializing NewModel from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n",
113
+ "- This IS NOT expected if you are initializing NewModel from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n"
114
+ ]
115
+ }
116
+ ],
117
+ "source": [
118
+ "embed_model = HuggingFaceEmbeddings(model_name=\"Alibaba-NLP/gte-multilingual-base\", model_kwargs={\"trust_remote_code\":True})"
119
+ ]
120
+ },
121
+ {
122
+ "cell_type": "code",
123
+ "execution_count": 5,
124
+ "metadata": {},
125
+ "outputs": [],
126
+ "source": [
127
+ "excel_vectorstore = FAISS.from_documents(documents, embed_model)\n",
128
+ "excel_vectorstore.save_local(\"faiss_excel_doc_index\")"
129
+ ]
130
+ },
131
+ {
132
+ "cell_type": "code",
133
+ "execution_count": 6,
134
+ "metadata": {},
135
+ "outputs": [],
136
+ "source": [
137
+ "keyword_retriever = BM25Retriever.from_documents(documents)\n",
138
+ "keyword_retriever.k = 10\n",
139
+ "\n",
140
+ "import pickle\n",
141
+ "with open('excel_keyword_retriever.pkl', \"wb\") as f:\n",
142
+ " pickle.dump(keyword_retriever, f)"
143
+ ]
144
+ },
145
+ {
146
+ "cell_type": "code",
147
+ "execution_count": null,
148
+ "metadata": {},
149
+ "outputs": [],
150
+ "source": []
151
+ },
152
+ {
153
+ "cell_type": "code",
154
+ "execution_count": null,
155
+ "metadata": {},
156
+ "outputs": [],
157
+ "source": []
158
+ },
159
+ {
160
+ "cell_type": "code",
161
+ "execution_count": null,
162
+ "metadata": {},
163
+ "outputs": [],
164
+ "source": []
165
+ },
166
+ {
167
+ "cell_type": "markdown",
168
+ "metadata": {},
169
+ "source": [
170
+ "# Word Data Loading"
171
+ ]
172
+ },
173
+ {
174
+ "cell_type": "code",
175
+ "execution_count": 18,
176
+ "metadata": {},
177
+ "outputs": [],
178
+ "source": [
179
+ "from langchain_community.document_loaders import Docx2txtLoader\n",
180
+ "from langchain_community.document_loaders import DirectoryLoader\n",
181
+ "\n",
182
+ "loader = DirectoryLoader('./data', glob=\"**/*.docx\", loader_cls=Docx2txtLoader)\n",
183
+ "docx_documents = loader.load()"
184
+ ]
185
+ },
186
+ {
187
+ "cell_type": "code",
188
+ "execution_count": null,
189
+ "metadata": {},
190
+ "outputs": [],
191
+ "source": [
192
+ "print(len(docx_documents))\n",
193
+ "docx_documents[0]"
194
+ ]
195
+ },
196
+ {
197
+ "cell_type": "code",
198
+ "execution_count": 21,
199
+ "metadata": {},
200
+ "outputs": [],
201
+ "source": [
202
+ "from langchain_experimental.text_splitter import SemanticChunker\n",
203
+ "\n",
204
+ "text_splitter = SemanticChunker(embeddings=embed_model, breakpoint_threshold_type=\"gradient\")\n",
205
+ "split_documents = text_splitter.split_documents(docx_documents)"
206
+ ]
207
+ },
208
+ {
209
+ "cell_type": "code",
210
+ "execution_count": null,
211
+ "metadata": {},
212
+ "outputs": [],
213
+ "source": [
214
+ "vectorstore = FAISS.from_documents(split_documents, embed_model)\n",
215
+ "vectorstore.save_local(\"faiss_word_doc_index\")"
216
+ ]
217
+ },
218
+ {
219
+ "cell_type": "code",
220
+ "execution_count": 22,
221
+ "metadata": {},
222
+ "outputs": [],
223
+ "source": [
224
+ "keyword_retriever = BM25Retriever.from_documents(split_documents)\n",
225
+ "keyword_retriever.k = 10\n",
226
+ "\n",
227
+ "import pickle\n",
228
+ "with open('word_keyword_retriever.pkl', \"wb\") as f:\n",
229
+ " pickle.dump(keyword_retriever, f)"
230
+ ]
231
+ },
232
+ {
233
+ "cell_type": "code",
234
+ "execution_count": null,
235
+ "metadata": {},
236
+ "outputs": [],
237
+ "source": []
238
+ },
239
+ {
240
+ "cell_type": "code",
241
+ "execution_count": null,
242
+ "metadata": {},
243
+ "outputs": [],
244
+ "source": []
245
+ },
246
+ {
247
+ "cell_type": "code",
248
+ "execution_count": null,
249
+ "metadata": {},
250
+ "outputs": [],
251
+ "source": []
252
+ },
253
+ {
254
+ "cell_type": "code",
255
+ "execution_count": null,
256
+ "metadata": {},
257
+ "outputs": [],
258
+ "source": []
259
+ },
260
+ {
261
+ "cell_type": "code",
262
+ "execution_count": null,
263
+ "metadata": {},
264
+ "outputs": [],
265
+ "source": []
266
+ },
267
+ {
268
+ "cell_type": "markdown",
269
+ "metadata": {},
270
+ "source": [
271
+ "# Combined Keyword Retriever"
272
+ ]
273
+ },
274
+ {
275
+ "cell_type": "code",
276
+ "execution_count": 23,
277
+ "metadata": {},
278
+ "outputs": [
279
+ {
280
+ "data": {
281
+ "text/plain": [
282
+ "[Document(metadata={'source': './data/json_files/583-عدد العينات المطابقة والغير مطابقة بحسب المنطقة 2022.json', 'table_heading': '583-عدد العينات المطابقة والغير مطابقة بحسب المنطقة 2022'}, page_content='{\"Year\": 2022, \"Region\": \"منطقة أبوظبي\", \"Section\": \"العينات\", \"Table name\": \"عدد العينات المطابقة والغير مطابقة بحسب المنطقة\", \"Category\": \"عدد العينات المطابقة\", \"Number\": 5604}'),\n",
283
+ " Document(metadata={'source': './data/json_files/583-عدد العينات المطابقة والغير مطابقة بحسب المنطقة 2022.json', 'table_heading': '583-عدد العينات المطابقة والغير مطابقة بحسب المنطقة 2022'}, page_content='{\"Year\": 2022, \"Region\": \"منطقة أبوظبي\", \"Section\": \"العينات\", \"Table name\": \"عدد العينات المطابقة والغير مطابقة بحسب المنطقة\", \"Category\": \"عدد العينات الغير مطابقة\", \"Number\": 1178}'),\n",
284
+ " Document(metadata={'source': './data/json_files/583-عدد العينات المطابقة والغير مطابقة بحسب المنطقة 2022.json', 'table_heading': '583-عدد العينات المطابقة والغير مطابقة بحسب المنطقة 2022'}, page_content='{\"Year\": 2022, \"Region\": \"منطقة العين\", \"Section\": \"العينات\", \"Table name\": \"عدد العينات المطابقة والغير مطابقة بحسب المنطقة\", \"Category\": \"عدد العينات المطابقة\", \"Number\": 2289}'),\n",
285
+ " Document(metadata={'source': './data/json_files/583-عدد العينات المطابقة والغير مطابقة بحسب المنطقة 2022.json', 'table_heading': '583-عدد العينات المطابقة والغير مطابقة بحسب المنطقة 2022'}, page_content='{\"Year\": 2022, \"Region\": \"منطقة العين\", \"Section\": \"العينات\", \"Table name\": \"عدد العينات المط��بقة والغير مطابقة بحسب المنطقة\", \"Category\": \"عدد العينات الغير مطابقة\", \"Number\": 543}'),\n",
286
+ " Document(metadata={'source': './data/json_files/583-عدد العينات المطابقة والغير مطابقة بحسب المنطقة 2022.json', 'table_heading': '583-عدد العينات المطابقة والغير مطابقة بحسب المنطقة 2022'}, page_content='{\"Year\": 2021, \"Region\": \"منطقة أبوظبي\", \"Section\": \"العينات\", \"Table name\": \"عدد العينات المطابقة والغير مطابقة بحسب المنطقة\", \"Category\": \"عدد العينات المطابقة\", \"Number\": 5390}')]"
287
+ ]
288
+ },
289
+ "execution_count": 23,
290
+ "metadata": {},
291
+ "output_type": "execute_result"
292
+ }
293
+ ],
294
+ "source": [
295
+ "documents[:5]"
296
+ ]
297
+ },
298
+ {
299
+ "cell_type": "code",
300
+ "execution_count": 24,
301
+ "metadata": {},
302
+ "outputs": [
303
+ {
304
+ "data": {
305
+ "text/plain": [
306
+ "[Document(metadata={'source': 'data/الموسوعة الزراعية - مشاركة/الموسوعة - النخيل.docx'}, page_content='الموسوعة الزراعية\\n\\n\\t\\n\\n\\n\\n\\n\\n\\n\\n\\t\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\nالزراعة\\n\\n\\n\\n\\n\\n\\n\\nأشجار النخيل\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\nالزراعة\\n\\nالمواسم المناسبة لزراعة الفسائل في دولة الإمارات: \\n\\nربيعي (منتصف فبراير - نهاية أبريل): يتميز بالدفء والحرارة المعتدلة مما يساعد على سرعة النمو.'),\n",
307
+ " Document(metadata={'source': 'data/الموسوعة الزراعية - مشاركة/الموسوعة - النخيل.docx'}, page_content='خريفي (أواخر أغسطس - نهاية أكتوبر): يتميز بتوفر فترة أطول للنبات لتثبيت نفسه قبل حلول فصل الصيف الحار كما أن التربة تكون أكثر احتفاظاً بالرطوبة. يفضل تجنب موسم الصيف الذي يكون فيها الجو شديد الحرارة والجفاف. اختيار الفسائل:\\n\\nيفضل مراعاة النصائح التالية عند زراعة الفسائل:\\n\\nاختيار الصنف الذي يتميز بإنتاجيته وجودته العالية، وذو قيمة تسويقية مرتفعة. شراء الفسائل من مصدر موثوق لضمان مطابقة الفسيلة للصنف المطلوب. يفضل أن تكون بعمر لا يقل عن أربع سنوات، وبوزن لا يقل عن 20-30 كجم عند فصلها عن الأم\\n\\nيجب خلو الفسيلة من الآفات وخصوصاً سوسة النخيل الحمراء وحفار العذوق ومرض اللفحة السوداء. مواصفات الفسيلة المعدة للزراعة \\n\\nالوصف\\n\\nالشروط\\n\\nالحالة الفسائل\\n\\nخالية من الأمراض والآفات\\n\\nخالية من الثقوب\\n\\nذات مجموع خضري جيد\\n\\nعمر الفسيلة\\n\\n3-4 سنوات بجانب الأم\\n\\nوزن الفسيلة\\n\\nلا يقل عن 20 كغم\\n\\nقطر الفسيلة\\n\\nلا يقل عن 30 سم (تختلف حسب الصنف)\\n\\nالمجموع الجذري\\n\\nجيد وقوي وسليم وخال من الأمراض الفطرية والنيماتودا\\n\\n\\n\\n\\n\\nقلع الفسائل: \\n\\nيقطع السعف اليابس إن وجد ويضم سعف الفسيلة إلى بعضه ويربط بحبل لتسهيل عملية القلع. ويقطع بارتفاع مناسب بحيث لا يلحق الضرر بقلب الفسيلة، وغالباً بمسافة (1- 1.5) متر من قلب الفسيلة \\n\\nينبغي قلع الفسائل بعناية بالغة من قبل عامل متمرس بواسطة العتلة المخصصة؛ على أن يكون (الهيب) حاد النهاية ويكون القطع في منطقة (الفطيم) وهي منطقة اتصال الفسيلة بالأم وبأقل مساحة ممكنة. بحيث تتم المحافظة على سلامة الأم والفسيلة. ويجب معاملة موقع القطع بأحد المبيدات الحشرية تفادياً للإصابة بالسوسة. قبل الزراعة يجب تغطيس المجموع الجذري للفسيلة بمحلول أحد المبيدات الحشرية، ويفضل أن يكون معه مبيد فطري وبتركيز مضاعف ولمدة ساعة إلى ساعتين، ضماناً لسلامتها من المسببات المرضية والحشرية. يفضل زراعة الفسائل بعد فصلها مباشرة، وإذا أراد تأخير زراعتها بمدة لا تزيد عن ثلاثة أيام فينبغي وضعها في الظل وتغطيتها بالخيش المبلل؛ لمنع تبخ�� وجفاف أوراقها وترطيبها. زراعة الفسائل:\\n\\nعند إنشاء المزارع الحديثة يفضل غرس الفسائل بصفوف مستقيمة بمسافة 7 إلى 10 متر بين النخلة والأخرى. يجب أن تتناسب أبعاد الحفرة مع حجم الفسيلة، ويفضل أن تكون الأبعاد 1x1x1 متر عمقا (أو حسب حجم الفسيلة). وفي الترب التي تغلب عليها الطبيعة الصخرية أو الحصوية تستبدل تربة الحفرة بتربة جيدة وتخلط مع السماد العضوي المتحلل والمعامل حرارياً بنسبة 1:2 (2 تربة + 1 سماد عضوي). وينبغي الالتزام بعدم إضافة السماد إلى الفسائل عند الزراعة إلا إذا كان متحللاً ومعامل حرارياً. توضع الفسيلة داخل الحفرة \\xa0على ان يكون قلب الفسيلة مرتفع عن سطح الأرض قليلا لمنع وصول الماء إلى قلب الفسيلة. ويجب إحاطة جذع الفسيلة بالتربة على شكل حلقة لمنع ملامسة مياه الري لجذع الفسيلة لحمايتها من الإصابة بالآفات. وبعد الزراعة لابد من كبس التربة جيداً حول الفسيلة لملء الفراغات بالتراب والتي قد تمتلئ بالماء فتسبب التعفن. بعد\\xa0غرس الفسيلة في الموقع\\xa0الدائم يتم تغطيتها بالخيش لحمايتها من أشعة الشمس في الصيف، ومن البرد شتاءً. على أن يرفع من أسفل حتى لا يتبلل ويزيد الرطوبة على الفسيلة، ويترك الجزء العلوي منه مفتوح للتهوية. ثم تروى دون إبطاء ويوالي الري صيفاً في التربة الرملية أو الخفيفة يومياً. ري الفسائل:\\n\\nيجب إعطاء الفسيلة رية غزيرة بعد زراعتها مباشرة، على أن ينظم الري بعد ذلك حسب طبيعة التربة والظروف الجوية بحيث تكون التربة رطبة حول منطقة الجذور لمدة 40 يوم بعد الزراعة. إن السبب الرئيسي لانخفاض نسب النجاح في زراعة الفسائل هو كثرة الري، ولذا فإن الاعتناء بري الفسائل يرفع نسب نجاحها بشكل كبير. حماية الفسائل:\\n\\nتُلف الفسائل بالخيش أو تُحاط بالسعف؛ لحمايتها من الظروف البيئية القاسية، على أن يُرفع بعد نجاح زراعتها، وظهور نمو جديد وعادة بعد 6-12 شهر. أهم العمليات المتعلقة بالنخيل خلال السنة\\n\\n12\\n\\n11\\n\\n10\\n\\n9\\n\\n8\\n\\n7\\n\\n6\\n\\n5\\n\\n4\\n\\n3\\n\\n2\\n\\n1\\n\\nالعملية/الشهر\\n\\n\\n\\n●\\n\\n●\\n\\n●\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n●\\n\\n●\\n\\n●\\n\\nزراعة الفسائل\\n\\n●\\n\\n●\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nالتسميد العضوي\\n\\n●\\n\\n●\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n●\\n\\n●\\n\\n●\\n\\n●\\n\\nالتسميد الكيميائي\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n●\\n\\n●\\n\\n●\\n\\nالتنبيت\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n●\\n\\n●\\n\\n●\\n\\n\\n\\nالخف\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n●\\n\\n●\\n\\n\\n\\n\\n\\n●\\n\\n●\\n\\n\\n\\nالتكميم\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n●\\n\\n●\\n\\n\\n\\n\\n\\nالتفريد\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n●\\n\\n●\\n\\n●\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nالتحدير\\n\\n●\\n\\n●\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nالتقليم\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nإزالة الرواكيب\\n\\n\\n\\n●\\n\\n●\\n\\n●\\n\\n●\\n\\n●\\n\\n●\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nجني وحصاد الثمار\\n\\nملاحظة: الجدول الزمني يختلف بناء على الصنف والمناطق الجغرافية. الري \\n\\nأمور يجب مراعاتها في عمليات ري النخيل\\n\\nالتوازن في عملية الري وإضافة كميات المياه المناسبة لأشجار النخيل وفي الأوقات المناسبة. تتوزع جذور أشجار النخيل في طبقات التربة بتدرج معين بحيث يقل توزيعها بزيادة عمق التربة بحيث تقع أغلب الجذور الفعالة في المنطقة العلوية من التربة. تمتد جذور أشجار النخيل وتنتشر إلى أسفل وفي جوانبها بنصف قطر قدره\\xa0مترين أو أكثر. أن النخلة تمتص من نسب مختلفة من الماء حسب اختلاف الأعماق التي توجد بها جذ��رها، كما هو موضح في الجدول أدناه\\n\\nتمتص أشجار النخيل البالغة ما نسبته 70% من المياه المضافة إليها عن طريق الجذور المنتشرة في المنطقة العلوية من التربة وحتى عمق 100 سم. عمق التربة (سم)\\n\\nنسبة ما يمتص من الماء\\n\\n0-60\\xa0\\n\\n50%\\n\\n60-120\\xa0\\n\\n30%\\n\\n120-180\\n\\n15%\\n\\n180-240 \\xa0\\n\\n5%\\n\\n\\n\\n\\n\\nنظام الري \\n\\nيجب أن يستخدم نظام ري ذو كفاءة عالية، وينصح باستخدام نظام الأنابيب ذات قطارات خارجية وذات نوعية جيدة، ومنظمة للضغط ويفضل استخدام قطارات قليلة التدفق وتوزيع القطارات حول الشجرة لترطيب أكبر للمساحة المزروعة ولمدة أطول. وفي الجدول التالي مثال لنظام ري مقترح:\\n\\nخيارات نظام الري\\n\\nعدد القطارات للشجرة\\n\\nتدفق القطارة\\n\\n(لتر في الساعة)\\n\\n\\tمسافات الزراعة (متر)\\n\\n\\n\\n\\n\\n\\n\\nالطول\\n\\nالعرض\\n\\nالخيار الأول\\n\\n12 قطارة\\n\\n25\\n\\n7\\n\\n7\\n\\nالخيار الثاني\\n\\n2 ببلر\\n\\n220\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nالاحتياجات المائية وجدولة الري\\n\\nيؤثر برنامج الري على مواصفات الثمار وحجمها. ولكل مرحلة من مراحل نمو الثمار احتياجات مائية مختلفة عن الأخرى. حيث تتميز مرحلة الكمري بالنمو السريع للثمار (وبالتالي الاحتياجات المائية تكون أكبر). بينما تبدأ الثمار بفقد الماء في مرحلة الرطب نتيجة لتبخره (تكون الاحتياجات المائية أقل)، وعليه لابد من تقليل مياه الري حتى موعد الحصاد. والجدول التالي يوضح متوسط الاحتياج اليومي التقديري للنخيل في أشهر السنة المختلفة لدولة الإمارات:\\n\\nمدة الري (دقيقة)\\n\\nمتوسط الاستهلاك اليومي (لتر للشجرة)\\n\\nالشهر\\n\\nلنظام بعدد 2 ببلر للشجرة، وبتدفق 220 لتر/الساعة، ومسافات زراعة 7x7 متر\\n\\nلنظام بعدد 12 قطارة للشجرة، وبتدفق 25 لتر/الساعة، ومسافات زراعة 7x7 متر\\n\\nبافتراض أن كفاءة نظام الري 85%، ونسبة غسيل أملاح التربة 15%\\n\\nالصافي\\n\\n\\n\\n20\\n\\n29\\n\\n145\\n\\n105\\n\\nيناير\\n\\n26\\n\\n39\\n\\n193\\n\\n139\\n\\nفبراير\\n\\n34\\n\\n50\\n\\n249\\n\\n180\\n\\nمارس\\n\\n41\\n\\n60\\n\\n298\\n\\n216\\n\\nإبريل\\n\\n50\\n\\n73\\n\\n365\\n\\n264\\n\\nمايو\\n\\n56\\n\\n82\\n\\n409\\n\\n295\\n\\nيونيو\\n\\n50\\n\\n73\\n\\n366\\n\\n265\\n\\nيوليو\\n\\n43\\n\\n63\\n\\n316\\n\\n228\\n\\nأغسطس\\n\\n39\\n\\n58\\n\\n290\\n\\n209\\n\\nسبتمبر\\n\\n30\\n\\n44\\n\\n218\\n\\n157\\n\\nأكتوبر\\n\\n24\\n\\n36\\n\\n178\\n\\n129\\n\\nنوفمبر\\n\\n19\\n\\n28\\n\\n141\\n\\n102\\n\\nديسمبر\\n\\n\\n\\n275\\n\\n199\\n\\nالمتوسط\\n\\n\\n\\n100,430\\n\\n72,561\\n\\nالمجموع\\n\\nملاحظات: \\n\\nالاحتياج المائي السنوي 2,050 متر مكعب للدونم\\n\\nقطر المحبس والأنبوب الرئيسي لري مساحة واحد دونم هي 1.5 إنش\\n\\n\\n\\nملاحظات على المعلومات أعلاه:\\n\\nالاحتياجات أعلاه للأشجار مكتملة النمو وتروى بالتنقيط وبنسبة تظليل 70%. وإن اختلفت نسبة التظليل للشجرة وذلك بحسب عمر الشجرة والصنف والنمو، يجب تقدير كميات الاحتياج المائي بالضرب بمعامل 0.1 إذا كان التظليل أقل من 10%، وبمعامل 1.3 إذا وصلت نسب ة التضليل إلى 100%. الاحتياجات المائية أعلاه تقديرية واسترشادية وقد تختلف بحسب الظروف الجوية وظروف الزراعة. يجب إضافة كمية من المياه لتعويض كفاءة توزيع شبكة الري وذلك بحسب وضع شبكة الري الفعلي في المزرعة. وقد تم استخدام قيمة 85% كرقم تقديري لكفاءة الري في الجدول أعلاه. ويمكن معرفة المزيد عن كيفية تقدير كفاءة الري في الإرشادات العامة للري ملحق\\n\\nيجب إضافة كمية من المياه لغسيل الأملاح المتراكمة في التربة في حال وجود ملوحة في مياه الري. وقد تم استخدام قيمة 15% كرقم تقديري لنسبة غسيل الملوحة في التربة في الجدول أعلاه. ويمكن معرفة المزيد عن كيفية تقدي�� الكمية اللازمة لغسيل أملاح التربة في الإرشادات العامة للري. ملحق\\n\\nالفترات بين الري تختلف بحسب طبيعة وقوام التربة، في حال الترب الرملية، يفضل الري بشكل يومي بسبب ضعف قدرة التربة على الاحتفاظ بالمياه. وفي حال وجود نسب من الطين والسلت أو الكتش وبحسب النسب الموجودة يمكن الري كل عدة أيام بحسب الحالة والوقت من السنة. يتم حساب مدة الري بحسب عدد القطارات أو الببلر وبحسب تدفق نظام الري المستخدم في المزرعة. وفي الجدول أعلاه مثال لدقائق الري اللازمة بحسب نظام الري المقترح. التسميد: \\n\\nأشجار النخيل التي تسمد بالأسمدة الكيمياوية والعضوية بشكل سنوي تتميز بسماكة الجذع، وطول وكثافة الخوص، وإنتاج عالي وذو جودة ممتازة. عكس أشجار النخيل التي لا تسمد حيث تكون ضعيفة النمو، شاحبة الخوص، وذات إنتاج قليل ومتردي النوعية. كما تكون أكثر عرضة للإصابة بالآفات والأمراض ويعتمد التسميد على درجة الملوحة والرقم الهيدروجيني لكل من مياه الري والتربة لذا يجب دائما فحص التربة والمياه قبل وضع برنامج التسميد في المزرعة. أولا: التسميد العضــوي (نوفمبر & ديسمبر) \\n\\nمواصفات السماد العضوي:\\n\\nيعتبر السماد العضوي غير المختمر من أهم مصادر الإصابة بالآفات مثل حفار العذوق (العاقور) والأمراض الفطرية والنيماتودا والأعشاب الضارة مما يؤدي الى إصابة أشجار النخيل بالعديد من الآفات الزراعية التي تؤدي في الغالب لخسارة النخلة او ضعف الإنتاج لذا يجب دائما إضافة شراء الأسمدة العضوية المختمرة او المعاملة حراريا ضمن المواصفات التالية: \\n\\nأن يكون معاملاً حرارياً؛ لضمان سلامته من المسببات المرضية والحشرية والنيماتودا وبذور الأعشاب الضارة. أن يكون متحللاً بشكل كامل ليتم الاستفادة منه بحد أقصى. أن يتم تخزينه وحفظه في أكياس محكمة الاغلاق وفي أماكن مظلله ولا يترك مكشوفاً لمنع تلوثه بالآفات وحتى لا تقل فعاليته بسبب العوامل الجوية شراء السماد من مصادر موثوقة ومرخصه وان يحتوي على بطاقة بيان وان لا تقل نسبة المادة العضوية فيه عن 50%\\n\\nطريقة التسميد: \\n\\nيضاف السماد العضوي المعقم والمعامل حراريا بمعدل 5-10 كيلوجرام لكل سنة من عمر النخلة وذلك بعمل خندق دائري حول جذع النخلة بقطر 30 سم وعمق 30 سم وبعيد عن الجذع بمسافة 40سم وينثر داخل الحفرة وتردم مباشرة بعد إضافة السماد. وتثبيت الكمية بعد مرور 10 سنوات من عمر النخلة \\n\\n\\n\\n\\n\\nثانياً: التسميد الكيميائي (نوفمبر - إبريل)\\n\\n\\n\\nطريقة التسميد:\\n\\n\\n\\n\\n\\nنخيل عمر 1- 10 سنوات\\n\\nنخيل أكبر من 10 سنوات\\n\\nموعد الإضافة\\n\\nسماد عضوي\\n\\nكجم/نخلة\\n\\nعن كل سنة \\n\\nNPK 15-15-15\\n\\nجم/نخلة\\n\\nعن كل سنة \\n\\nسماد عضوي\\n\\nكجم/نخلة\\n\\nNPK 15-15-15\\n\\nجم/نخلة\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nيناير\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nفبراير\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nمارس\\n\\n5-50\\n\\n150-1500\\n\\n50 وأكثر\\n\\n1500\\n\\nابريل\\n\\n\\n\\n150-1500\\n\\n\\n\\n1500\\n\\nمايو\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nاكتوبر\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nنوفمبر\\n\\n5-50\\n\\n150-1500\\n\\n50 وأكثر\\n\\n1500\\n\\nديسمبر\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\tملاحظات: \\n\\n\\tيتم اضافة 5 كجم عضوي عن كل سنة من عمر النخلة، كما يضاف كذلك 150 جم مركب عن كل سنة من عمر النخلة. عمل خندق حول جذع النخلة على بعد 1.5 متر وتخلط الاسمدة مع التربة بعد كل اضافة. يجب الري بعد إضافة الأسمدة مباشرة لأن الماء هو الوسط المذيب للأسمدة والناقل للعناصر من التربة إلى الأشجار. هناك مجموعة عوامل منها عمر الأشجار، ومسافات الزراعة، ونوعية ا��تربة، وطريقة الري لأبد أن توضع في الاعتبار. خدمة أشجار النخيل\\n\\nالتنبيت الآلي أو اليدوي (يناير-مارس)\\n\\n\\n\\nطريقة التنبيت الآلي:\\n\\nتعفير او رش راس النخلة الانثوية بخليط من حبوب اللقاح العالية الحيوية مع مادة حاملة وغالبا ما تكون بودرة التلك أو طحين القمح رقم واحد وبنسبة 1 الى 7 او 9 وباستخدام الملقحات الآلية (العفارات)\\n\\nتجهز الخلطة بنسبة (6:1)، بخلط 1 غرام حبوب لقاح مع 6 غرام طحين رقم 1. يوضع الخليط داخل ماكينة التلقيح الآلية أو اليدوية (العفارات). يعفر الطلع الأنثوي للنخلة بالخليط ثلاث مرات على مدى 3-4 أيام. طريقة التنبيت اليدوي: \\n\\nإن عقد الثمار في غالبية الأصناف يحصل نتيجة للتلقيح الذي يجري بعد انشقاق غلاف الطلعة بثلاثة او أربعة أيام لذا لضمان العقد بشكل جيد يجب اتباع ما يلي: \\n\\nيوضع 6-4 من الشماريخ الذكرية مقلوبة في وسط كل اغريض منفتح او الذي على وشك التفتح بعد ان يفتحه العامل بيده. بشكل معكوس داخل الشماريخ الأنثوية بحيث يتراوح عددها بين 6-30 شمروخ حسب الصنف. ويمكن أن يزيد العدد لأصناف الخلاص والبرحى والنسيجي. ينصح بقطع أطراف الشماريخ الانثوية عند اجراء التنبيت\\n\\nيتفقد المزارع أشجار النخيل كل ثلاثة او أربعة أيام مرة ليلقح الاغاريض الانثوية المتفتحة وقد تكييس الاغاريض الانثوية بعد التلقيح مباشرة بأكياس ورقية مثقبة لحمايتها من الامطار والرياح وكذلك لرفع درجة الحرارة داخل الكيس مما يزيد من نسبة الاخصاب وبالتالي عقد الثمار والإنتاجية. ينصح بإزالة الاكياس بعد 10-13 يوما من التلقيح لتجنب الإصابة بالعناكب او الفطريات نتيجة للرطوبة داخل الكيس. يفضل تلقيح 10-12 طلعة من الأدوار الوسطى للنخلة وإزالة باقي العذوق. 1\\n\\n1\\n\\nحفظ حبوب اللقاح:\\n\\nيفضل دائماً استخدام حبوب اللقاح الحديثة حيث تعطي نتائج جيدة، لكن في بعض الأحيان يتم حفظ حبوب اللقاح للعام التالي للأسباب التالية:\\n\\nندرة حبوب اللقاح في الموعد المناسب للتلقيح نظرا لتبكير النخيل المؤنث \\n\\nتخزين حبوب اللقاح من الأفحل ذات الحيوية العالية في درجة حرارة -18 م o ونظرا لعدم توفر أفحل جيدة في بعض المناطق \\n\\nحفظ حبوب اللقاح لأن بعض الإناث تتأخر في الإزهار بفره طويلة عن الإزهار في الأغاريض المذكرة. وتوصي الدراسات بتعريض حبوب اللقاح المجففة إلى أشعة الميكروويف لمدة 10-20 ثانية قبل التخزين، حيث يؤدي ذلك إلى المحافظة على حيويتها لتصل إلى 81% بعد سنة من التخزين. حيث تؤدي أشعة الميكروويف إلى تعقيم الحبوب وقتل الفطريات والميكروبات. كيفية حفظ حبوب اللقاح:\\n\\nيتم قطع الأغاريض المذكرة (الفحول) بعد اكتمال النمو وقبل انشقاقها وتفتحها. يفضل تجفيف الطلع ولا ينصح باستخدامه مباشرة بعد قطعه من الشجرة\\n\\nتفتح الأغلفة الجلدية الخارجية وتستخرج منه الشماريخ الذكرية كل على حدة. فصل كل مجموعة من الشماريخ من النورة في حدود (2-3) شمراخ ويتم تفريدها ونشرها على ورق جاف وفي مكان مظلل وبعيد عن التيارات الهوائية حتى تجف. ويجب المحافظة على تقليب الشماريخ لأنها تكون مليئة بالرطوبة مما قد يؤدي إلى تعفن الشماريخ الداخلية. بعد الجفاف تتساقط حبوب اللقاح على الورق، وتجمع حبوب اللقاح المتساقطة على الاوراق او تستخلص آليا ويمكن تسريع تساقطها عن طريق الهز. يتم بعد ذلك جمع حبوب اللقاح في أكياس من الورق الجاف وتوضع في زجاجات جافة تماماً حتى موعد استخدامها لتجنب إصابتها بالفطريات أو الحشرات. يجب ��لحذر عند عملية التجفيف من تعرض الشماريخ الزهرية المذكرة لأشعة الشمس أو الحرارة العالية حتى لا تضعف من حيوية حبوب اللقاح. يمكن حفظ حبوب اللقاح بعد وضعها في زجاجات في الثلاجة مع الحذر من تعرضها للرطوبة حتى لا تتعفن. نصائح وإرشادات عامة للتنبيت:\\n\\nلمعرفة الطلع الناضج، يمكن سماع صوت فرقعة خفيفة عند الضغط على الجزء السفلي من الأغريض. يجب قطع الأغاريض المذكرة عند ملاحظة بدء انشقاقها وقبل انشقاقها كاملة وذلك للمحافظة على حبوب اللقاح. ينصح بأن تتم عملية التنبيت في الفترة الصباحية (بين الساعة 9:00-12:00 ظهراَ). وذلك لتفادي الرطوبة في الصباح الباكر، والحرارة وأشعة الشمس بعد الظهر. يفضل بعد التنبيت بوضع أكياس ورقية حول الأغاريض المؤنثة وخصوصا في بعض الأصناف التي تقل فيها نسبة عقد الثمار. يجب إعادة التنبيت عند سقوط الأمطار على النخيل الملقح. الخف (فبراير & مارس & إبريل): \\n\\nتتم عملية خف العذوق بإزالة عدد محدد من الازهار او الثمار من كل شمراخ او بقطع أطراف الشماريخ او قطع عدد من الشماريخ الوسطية من كل عذق. ينصح ان لا تقل نسبة الخف عن نصف المجموع الكلي من حمل الشجرة اعتمادا على حجم العذوق وطبيعة نمو الشجرة والمجموع الخضري من عدد السعف في قمة النخلة. تعتبر النخيل من الأشجار المعاومة (حمل غزير في موسم يتبعه حمل خفيف في الموسم التالي). وعليه فإن عملية خف الثمار تهدف إلى الموازنة بين حمل النخلة وتحسين جودة وكمية الإنتاج. يفضل بأن يكون الخف مبكراً حيث إن تأخيره يؤدي إلى استنزاف طاقة أشجار النخيل في ثمار لا يتم الاستفادة منها. أوقات الخف: \\n\\nالخف الأول (فبراير): تجرى عملية الخف الأول قبل التنبيت مباشرة؛ وذلك بقطع 25% من نهاية الشماريخ. الخف الثاني (مـارس): تجرى عملية الخف الثاني بعد ضمان العقد؛ وذلك بتقليل عدد ثمار الشماريخ بنسبة 25%-50% حسب الصنف. الخف الثالث (أبريل): تجري أثناء عملية التفريد وذلك بقطع ربع أو ثلث الشماريخ الوسطية من العذق مع تخفيف عدد العذوق من 6-8 حسب عمر وحجم النخلة. فوائد الخف:\\n\\nانتظام عملية تلون وتناسق قوام الثمار وتماثل أحجامها\\n\\nزيادة نسبة السكريات\\n\\nانتظام حجم العذوق واكتمال نموها في وقت واحد\\n\\nزيادة حجم الثمار وسرعة نموها والتبكير في نضجها\\n\\nالحد من ظاهرة تساقط الثمار\\n\\nزيادة التهوية وقليل الإصابة بالأمراض\\n\\n\\n\\nالتكميم أو التكييس (فبراير-مارس & يونيو-يوليو)\\n\\nالتكميم أو التكييس الورقي (فبراير): \\n\\nيتم تغطية الطلعة الأنثوية بالكيس الورقي المثقب مباشرة بعد التنبيت وتترك لمدة 30 إلى 45 يوم تقريبا. ينصح بعد اجراء عملية التلقيح مباشرة بلف الطلعة الملقحة بالأكياس الورقية المثقبة ولمدة تتراوح بين 30 الى 35) يوما والغرض من ذلك ضمان العقد وتقليل تساقط الازهار ويجب ازالتها بعد هذه الفترة لتجنب الإصابة بالعناكب او الفطريات نتيجة للرطوبة داخل الكيس وذلك لضمان زيادة نسبة العقد وتساهم في التبكير في النضج، وتحسين جودة الثمار وتنظيم التلوين. تشير نتائج الدراسات بأن تكييس النورات الزهرية الانثوية بعد التلقيح مباشرة بأكياس ورقية مثقبة يؤدي إلى زيادة حجم الثمار والتبكير في النضج، وذلك لأنه يؤدي إلى حماية الطلع من التيارات الهوائية التي تتسبب في جفافها وفشل عملية التلقيح. كما أن التكييس يؤدي إلى المحافظة على درجة الحرارة بشكل عام وحمايتها من التقلبات الجوية. التكميم أو التكييس البلاستيكي المشبك (يوليو): \\n\\nيجري التكميم بعد بدء دور البسر (الخلال) فاذا كممت العذوق قبل ذلك ازداد الضرر من ظاهرتي: الوشم والذنب الأسود لان الاغطية لا تحفظ الثمار من رطوبة الجو العالية، بل تزيدها لأنها لا تمنع تخلخل الرياح بداخلها. يتم تغطية العذوق بالكيس البلاستيكي المشبك قبل بداية التلوين؛ لضمان عدم تساقط الثمار وحمايتها من الطيور والدبابير. كما أنه يسهل عملية جني الثمار عن طريق هز العذق داخل الأكياس لتجميع الثمار. التفريد (مارس & إبريل)\\n\\nسحب العذوق من بين السعف والخوص والأشواك وإعادة توزيعها بشكل دائري منتظم حول رأس النخلة. وتتم هذه العملية عندما تكون العذوق غير متصلبة (6-8 أسابيع بعد العقد). التحدير (مايو-يوليو)\\n\\nتدلية العذوق إلى أسفل مع ربط حامل العذق عند بداية تفرع الشماريخ بسعفة أو بحبل. وتتم هذه العملية في نهاية مرحلة الكمري وحتى بداية مرحلة الرطب. وتهدف إلى:\\n\\nتفادي تعرض العذق للكسر\\n\\nتسهيل عملية جني الثمار\\n\\nتعريض العذق للتيارات الهوائية للإسراع في نضج الثمار وتجفيفها. الحد من تشوه الثمار وتساقطها بسبب كثرة حركة العذق واحتكاكه بالسعف\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nالتقليم (التسعيف والتكريب (\\n\\nتنـظـيف رأس النخلة:\\n\\nتزال أغلفة الطلع وبقايا العراجين للموسم السابق من رأس النخلة نظراً لكونها تشكل مصدراً للإصابة بالآفات وخاصة الأمراض الفطرية، وكذلك للحفاظ على المظهر العام لرأس النخلة. تزال الأشواك لتسهيل الصعود إلى رأس النخلة أثناء عمليات الخدمة (التنبيت والتفريد والتنظيف). تنظيف بقايا الثمار العالقة بين الكرب وفي قمة النخلة حيث ان معظمها يحتوي على افات حشرية أو عناكبية . عـملــية التـسعــيف: هي قطع السعف (الزور) اليابس والمصفر في منطقة الأشواك. يتفاوت عدد السعف الجديد الذي تكونه النخلة حسب الصنف ومستوى الرعاية التي تتلقاها. وفي الغالب تجرى هذه العملية سنوياً بعد الجني أو عند عملية التحدير. عملــية التكريب:\\n\\nعملية إزالة الكرب او الكرانيف او قواعد السعف مع الليف الذي يتخللها. يجب أن يكون قطع الكربة مائلا وفي المنطقة أو الخط الذي يمثل أقصى تحدبها وبحيث يشكل سطحها مع الجذع زاوية تقرب من 120 درجة من الجذع باتجاه الخارج. ويمكن معرفة هذا الخط بالطرق باستخدام الداس على هذه المنطقة حيث يعطي الجزء السفلي صوتاً يختلف عن الصوت الناجم عن الطرق على الجزء الأعلى منه وهو الأكثر جفافا وعندئذ يتم تحديد موقع القطع \\n\\nلابد من تفادي ترك أي جرح عند القطع حتى لا تكون مصدراً للإصابة بالآفات. موعد التكريب:\\n\\nيجرى التكريب عادة عند الانتهاء من جني المحصول وبفترات تتراوح بين 2-4 سنة حسب نشاط النخلة وسرعة نموها. يترك خطين أو ثلاثة خطوط من الكرب دون تكريب حفاظاً على قلب النخلة من الظروف البيئية القاسية ولتوفير حماية ودعم للسعف الأخضر من الخلع\\xa0(نتيجة وزن العذوق) وإجراء عمليات الخدمة. يفضل عدم تكريب النخيل حديث النمو إلا بعد اكتمال نموها ويكون الجذع قد أخذ حجمه الطبيعي وغالباً عندما يصل ارتفاعها نصف متر من القاعدة. يجب عند إجراء عملية التكريب مراعاة النقاط التالية:\\n\\nيتم قطع قواعد السعف أفقياً وبشكل مائل إلى الخارج ومتدرج بحيث تنتهي كل درجة عند بداية قاعدة الكربة التي تليها من الأعلى، حتى لا تتجمع المياه والتمر المتساقط بين قاعدة السعف والجذع. يجب عدم جرح الجذع عند قطع الكربة لأن ذلك يؤدي إلى التعفن والإصابة بسوسة النخ��ل الحمراء. حصر التكريب في الكرب الجاف فقط وابقاء ما لا يقل عن (4-6) أدوار من الكرب بعيدا عن السعف الأخضر لان تكريب السعف الأخضر يعرض قواعد الكرب التي لا زالت رطبة للتشقق والتعفن. طــرق التـكـريب:\\n\\nالتكريب اليدوي: وتتم إما باستخدام المنشار اليدوي أو المخلب (الداس) (عبارة عن سكين معقوفة وحادة جدا) أو الشكنة والمطرقة. التكريب الميكانيكي: وتتم باستخدام المنشار الكهربائي الذي يعمل بالبطارية القابلة للشحن وقد أثبتت هذه الطريقة كفاءتها. وهناك مناشير تعمل بالكهرباء مع أهمية اتخاذ إجراءات السلامة والأمان، ولكن يفضل المنشار الذي يعمل بالبطارية لسهولة العمل وتوفر نواحي الأمان فيه أيضاً. وتمتاز هذه الطريقة عن الطريقة اليدوية بأنها تقلل من عدد العمال المطلوبين للتكريب بجانب سرعة الإنجاز، وتوفير الوقت، والجهد والمال. ما بعد التكريب: \\n\\nبعد انتهاء عملية التكريب يصبح من الواجب معاملة الجذع بمادة تعمل على منع انبعاث روائح الكرمونات من الجذع (نتيجة القطع) لأنها مواد جاذبة للسوسة ويتم ذلك بما يلي:\\n\\nيفضل رش الجذع بأحد المبيدات الحشرية للحماية من الحشرات خاصة سوسة النخيل. تعفير الجذع بالكبريت الزراعي 95%\\n\\nإذا وجدت إصابة بسوسة النخيل الحمراء أو الحفارات فلابد من العمل على معالجتها باستخدام المبيدات المناسبة. إزالة الرواكيب (الكواريب)\\n\\nينبغي إزالة الرواكيب وعدم تركها تستنزف المواد الغذائية من الأم. كما لابد من تحديد عدد الفسائل بما لا يتجاوز 4-5 فسائل صغيرة على شجرة النخيل حيث أنها تؤثر سلباً على كمية ونوع التمر وتكون أكثر عرضة للإصابة بالآفات. فوائد عمليتي التسعيف والتكريب:\\n\\nإن موقع القطع مهم جداً؛ لأنه يحدد الحجم المقطوع من الكربة وإزالة هذا الحجم يؤدي إلى التقليل من فرص إصابتها بالآفات. حيث أن هذه المنطقة تشكل بيئة مفضلة للحشرات للاختباء فيها أو قضاء أحد أطوار نموها كما هو الحال في حشرة حفار العذوق وحشرة حفار الساق وسوسة النخيل الحمراء. وهذه العملية تعتبر من أهم الإجراءات التي تضمن نجاح برنامج المكافحة المتكاملة لهذه الآفات والقضاء عليها حيث تقلل طريقة القطع في هذه المنطقة بشكل كبير المسافة بين الكربة والجذع مما يحد من فرص الإصابة بالآفات. يساعد في تسهيل تسلق النخلة لإجراء عمليات خدمتها الأخرى كالتنبيت والتفريد والتحدير والجني. يمكن الاستفادة من مخلفات التقليم في بعض الصناعات اليدوية مثل الحصير والسلال وإنتاج الخشب المضغوط أو لإنتاج العلف الحيواني بعد إمرارها بعمليات الطحن والتخمير. الحصاد وعمليات ما بعد الحصاد\\n\\nطرق التعرف على الموعد المناسب للحصاد:\\n\\nسهولة انفصال الثمار من الشماريخ. تغير لون الثمار حسب الصنف هي دلائل يمكن الاعتماد عليها في تحديد اكتمال النمو والنضج، ولكن سيكون فيها طعم قابض في هذه المرحلة. بالنسبة للأصناف التي تقطف في مرحلة الرطب، تقطف الثمار في مرحلة النضج الجزئي أو عندما تكون قريبة من نضجها الكامل، \\n\\nيتم قطف الجزء الأكبر من الثمار في مرحلة الرطب ومرحلة التمر عندما يكون بها قدر أكبر من السكريات ومستوى أقل من الرطوبة والتانينات. في بعض الأصناف ليونة أنسجة الثمار بحيث تكون طرية عند وصولها لمرحلة النضج. ويمكن معرفة ذلك بالضغط الخفيف باليد على الثمرة لمعرفة تماسك لحم الثمرة (ثمرة متماسكة). علامات جودة الثمار: \\n\\nالعلامات تؤثر على جودة الثمار تشمل حجم الثمرة، ا��لون، القوام، النظافة.'),\n",
308
+ " Document(metadata={'source': 'data/الموسوعة الزراعية - مشاركة/الموسوعة - النخيل.docx'}, page_content='خلو الثمار من العيوب مثل (أكل الطيور، لسعة الشمس، أضرار ناتجة عن الحشرات، هجرة السكر من سطح الثمرة والتخمر). وكذلك خلوها من العفن الناتج عن المسببات المرضية. ينصح بأن يكون الحصاد بعد شروق الشمس مع الابتعاد عن وقت تجمع قطرات الندى حتى لا تتعرض الثمار للتخمر بعد التعبئة. عدم تعريض الثمار التي تم حصادها لأشعة الشمس المباشرة بقدر الإمكان. نقل وتخزين الثمار بعد حصادها وفرزها ونظافتها بأسرع ما يمكن في غرف التبريد. جني الثمار (يوليو-نوفمبر)\\n\\nجني الرطب:\\n\\nبالحبة: يتم جني الثمار بالحبة؛ وذلك في مرحلة الرطب (الجارين) وتوضع داخل العبوات الكرتونية أو البلاستيكية. قطع الشماريخ: يتم قطع الشماريخ وذلك في مرحلة الرطب (الجارين) وتوضع داخل العبوات الكرتونية أو البلاستيكية. جني التمر:\\n\\nالجني المتعدد: ننفض العذوق من على النخلة بنسبة 80-85% في مرحلة الرطب الهامد. قطع العذوق في مرحلة الرطب الهامد: تقطع العذوق وتترك على النخلة من 3-5 أيام حسب الصنف ويتم تنزيلها من النخلة. قطع العذوق عند جفاف التمور: تقطع العذوق ويتم تنزيلها بشكل مباشر. التجفيف\\n\\nيمكن استخدام أحد الطرق التالية في التجفيف:\\n\\nغرف التجفيف الشمسي المصنوعة من مادة البولي كربونيت. الغرف الزجاجية. الغرف البلاستيكية. خطوات التجفيف:\\n\\nفرز التمور حسب المواصفات. نثر التمور في مرحلة الجارين أو الرطب الهامد على الإطارات (الصواني المشبكة)\\n\\nنقل الإطارات داخل غرف التجفيف. ترك الإطارات داخل غرف التجفيف ما بين يومين إلى ثلاثة أيام وبنسبة رطوبة من 18-22%. ويتوقف ذلك حسب نوع الصنف. تعبئة التمور داخل الصناديق البلاستيكية. تخزين التمور داخل غرف مبردة. -18-0 oC\\n\\n-18-0 oC\\n\\nالتبريد المبدئي السريع:\\n\\nيجب الإسراع بإجراء التبريد السريع وخفض درجة حرارة الثمار مباشرة بعد الحصاد وخلال مدة 1-3 ساعات من وقت الحصاد. يهدف التبريد المبدئي لسرعة التخلص من حرارة الحقل وبالتالي الحفاظ على جودة الثمار والحد من التدهور وتقليل الفاقد منها، وإطالة مدة حفظ وتخزين الثمار. درجة الحرارة المثلى لحفظ ثمار الرطب هي من صفر درجة مئوية. يمكن إنشاء غرف تبريد رخيصة التكاليف CoolBot (مزيد من المعلومات وتفاصيل التركيب في الملحق). الشروط الموصى بها لإطالة فترات التخزين:\\n\\n\\n\\nالمحصول\\n\\nدرجة حرارة التخزين\\n\\n(درجة مئوية)\\n\\nالرطوبة النسبية المثلى\\n\\nأقصى درجة تبريد ممكنة (درجة مئوية)\\n\\nمدة التخزين المتوقعة*\\n\\nالرطب\\n\\n-18صفر -\\n\\n70 - 75%\\n\\n-15.7\\n\\n6 - 12 شهر\\n\\nالتمور الطرية\\n\\nصفر - 5\\n\\n85%\\n\\n\\n\\n6 - 12 شهر\\n\\nالتمور النصف جافة\\n\\nصفر - 5\\n\\n75 - 80%\\n\\n\\n\\n6 - 12 شهر\\n\\nالتمور الجافة\\n\\nصفر - 5\\n\\n60%\\n\\n\\n\\n6 - 12 شهر\\n\\n*المدة المتوقعة تختلف حسب الصنف. التصنيع\\n\\nبالحبة:\\n\\nتفرز التمور بالحبة كدرجة أولى وثانية ومن ثم تعبأ بعبوات بلاستيكية أو كرتونية أو تغلف بالحبة. بالكبس:\\n\\nتعبأ التمور في الأكياس البلاستيكية. تنقل التمور إلى المكبس لإجراء عملية الكبس. توضع أكياس التمور المكبوسة داخل جهاز شفط الهواء (Vacuum) لسحب الهواء من داخلها. معدلات التنفس:\\n\\nالمرحلة\\n\\nمعدل التنفس (مل CO2/كجم x ساعة) عند 20 م°\\n\\nالخلال\\n\\nأقل من 25\\n\\nالرطب والتمر\\n\\nأقل من 5\\n\\n\\n\\nولحساب الحرارة الناتجة يتم ضرب معدل التنفس:\\n\\nمل CO2 كجم x ساعة x 440 للحصول على الوحدات الحرارية البريطانيةBTU /طن/يوم.'),\n",
309
+ " Document(metadata={'source': 'data/الموسوعة الزراعية - مشاركة/الموسوعة - النخيل.docx'}, page_content='أو يضرب في 122 للحصول على الحرارة بالكيلو كالوري/طن متري/يوم. الاستجابة للإيثلين:\\n\\nالثمار الناضجة لا تستجيب للإيثلين، ولكن تمتص رائحة المنتجات الأخرى. وعليه لا ينصح بتخزينها مع ثمار الثوم، البصل، البطاطا أو أي محصول أو سلعة تنتج روائح قوية. معدلات إنتاج الإيثلين:\\n\\n\\n\\nالمرحلة\\n\\nمعدل إنتاج الإيثلين (ميكروليتر إيثلين/كجم x ساعة)\\n\\nدرجة الحرارة (درجة مئوية)\\n\\nالخلال\\n\\nأقل من 0.5\\n\\n20\\n\\nالرطب والتمر\\n\\nأقل من 0.1\\n\\n20\\n\\n\\n\\nالاستجابة للجو المتحكم فيه:\\n\\nالتعبئة تحت النيتروجين (استبعاد الأوكسجين) يقلل من حدوث اللون الداكن في الثمار ويحد من الإصابة بالحشرات. الأضرار الطبيعية والفسيولوجية:\\n\\nاللون الداكن: تحدث عمليات تلون بني في الرطب (أنزيمية أو غير أنزيمية) وتزداد مع ارتفاع نسبة الرطوبة والحرارة. ويمكن تثبيط التلون البني الأنزيمي عن طريق خفض تركيز الأوكسجين. الطعم الحامضي المتخمر: يحدث التخمر بفعل الخميرة ويؤدي إلى الطعم المتخمر اللاذع في الثمار وخاصة عندما تزداد الرطوبة بها عن 15%. البقع السكرية: في الأصناف الطرية يتبلور السكر تحت جلد الثمار وفي اللحم، وعلى الرغم من أن هذه الظاهرة لا تؤثر على الطعم ولكنها تعمل على تغيير القوام والمظهر. ويمكن تخزين الثمار على درجات الحرارة الموصى بها لتقليل من هذه الظاهرة والتي تحدث أساسا في الأصناف التي يسود بها الجلكوز والفركتوز. الأضرار المرضية:\\n\\nإن الأضرار والتلف الميكروبي يمكن الحدوث عن طريق الخميرة والتي تعد أهم مشكلة. وكذلك عن طريق الفطريات والبكتيريا. وتعتبر خميرة Zygosaccharomyces أكثر الخمائر مقاومة لتراكيز السكر العالية. وتكتسب الثمار المصابة بالخميرة برائحة كحولية. وأما باقي الفطريات كفطر Alternaria،Aspergillus ، Penicillium فيمكن أن تنمو على الثمار ذات الرطوبة المرتفعة خاصة التي تجمع بعد هطول الأمطار. مقاومة أمراض ما بعد الحصاد:\\n\\nلابد من المقاومة الجيدة لأمراض ما قبل الحصاد \\n\\nيفضل إجراء عمليات التبخير بمواد مصرح بها لقتل حشرات المخازن ومن ثم تعبئة الثمار في عبوات غير منفذة للحشرات. وبالنسبة للثمار العضوية، فيمكن معاملتها بثاني أكسيد الكربون بتركيز 100% ولمدة 1-2 يوم. تجفيف الثمار إلى 20% رطوبة أو أقل لتقليل الإصابة بالفطريات والخمائر. يجب المحافظة على النظافة الشديدة لعبوات الجمع والنقل وغرف التخزين. من المهم تداول الثمار بعناية شديدة لتلافي الكدمات والتشققات والأضرار الطبيعية الأخرى. تخزين الثمار على درجة حرارة أقل من 13 درجة مئوية سيحد من الأضرار الناتجة عن أكل الحشرات أو تكاثرها. كما يمكن مقاومة الإصابة بالحشرات بالتخزين على درجة حرارة أقل من 5 درجات مئوية. تلافي تذبذب درجات الحرارة والرطوبة الموصى بها طوال فترة التداول. لابد من إجراء التبريد السريع إلى صفر درجة مئوية مع المحافظة على سلسلة التبريد Cold Chain خلال فترة التداول حتى تصل إلى المستهلك. أصناف النخيل\\n\\nتتباين أصناف النخيل حسب اختلاف توزيع المناطق الجغرافية، حيث يتميز الصنف بصفات تختلف عن نفس الصنف في منطقة أخرى. ويعود ذلك التباين إلى مدى تكييف كل صنف للظروف البيئية السائدة في كل منطقة. فنجد أصناف تجود في المناطق الجافة وأصناف أخرى تكون أكثر نجاحاً في المناطق الساحلية ذات الر��وبة النسبية المرتفعة. تم تقسيم الأصناف التجارية بناء على ما هو معتمد بشركة الفوعة. تم تقسيم الأصناف الأكثر تداولاً بناء على كميات وجودة الإنتاج. أصناف النخيل التجارية بناء على ما هو معتمد بشركة الفوعة:\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\t\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\nالأصناف الأكثر تداولاً بناء على الكميات وجودة الإنتاج:\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n\\t\\n\\nالوقاية ومكافحة الآفات\\n\\n\\t\\n\\nالآفات وطرق مكافحتها\\n\\n\\n\\nالأعشاب الضارة\\n\\nتمثل الأعشاب عائلاً للحشرات ومسببات للأمراض. كما تعمل على منافسة الأشجار على الاحتياجات الغذائية والماء. لذلك من المهم جداً مكافحة الأعشاب الضارة في حوض الشجرة وقبل الوصول إلى مرحلة المنافسة الحرجة، ويفضل مكافحتها في المراحل الأولى من نموها يدويا أو ميكانيكيا بالحراثة، على أن تكون المكافحة الكيميائية خيار أخير. المكافحة الكيميائية:\\n\\nيمكن أن تكون مبيدات الأعشاب انتقائية أو متخصصة (تقتل الأعشاب الضارة دون أن تؤذي المحاصيل) أو غير انتقائية للأعشاب الضارة ذات الأوراق العريضة والأعشاب رفيعة الأوراق. يمكن أن تتلف مبيدات الأعشاب الأشجار إذا لم يتم استخدامها بالطرق الصحيحة. يرجى التواصل مع ضابط الإرشاد إذا كان لديك أي استفسار بشأن استخدام مبيدات الأعشاب. امثله لبعض مبيدات الأعشاب:\\n\\n\\n\\nالاسم التجاري\\n\\nالمادة الفعالة\\n\\nالإجراء\\n\\nالانتقائية\\n\\nMONUMENT 75 WG \\n\\nTrifloxysulfuron Sodium 75% W/W\\n\\nرشا على الأعشاب\\n\\nالحشائش عريضة الأوراق\\n\\nTenacity\\n\\nMesotrione 40% W/W (480 g/l)\\n\\nرشا على الأعشاب\\n\\nالحشائش النجيلية\\n\\nBarricade 65 WG\\n\\nProdiamine 65%\\n\\nرشا على الأعشاب\\n\\nحشائش عريضة الأوراق\\n\\nSENCOR SC 600\\n\\nMetribuzin 600 g/l\\n\\nرشا على الأعشاب\\n\\nالحشائش عريضة الأوراق\\n\\n\\n\\n\\n\\nحشرة البق الدقيقي في النخيل\\n\\nللحشرة 8 أجيال في السنة ومدة الجيل من 30-95 يوم. تهاجر حشرة البق الدقيقي خلال فصل الشتاء إلى منطقة الجذور بالنخيل حيث تعيش وتتغذي على الجذور بامتصاص العصارة. وعند ارتفاع درجة الحرارة وملائمة الظروف الجوية فإن أفراد البق الدقيقي تعود مرة أخرى إلى قواعد الجريد لتتغذي عليها. تضع أنثى حشرة البق الدقيقي أعداداً كبيرة من البيض قد يصل عددها إلى عدة آلاف. وتقوم بتغطية البيض بإفرازاتها الشمعية البيضاء اللون. يتغذى البق الدقيقي على قواعد الجريد ومن النادر وجودها على الخوص، حيث تمتص عصـارة السعف والثمار وتتسبب بتجعدها وجفافها. ويصاحب الإصابة إفرازات قطنية بيضاء اللون يسيل منها الندوة العسلية حيث تنمو عليه فطريات العفن الأسود.'),\n",
310
+ " Document(metadata={'source': 'data/الموسوعة الزراعية - مشاركة/الموسوعة - النخيل.docx'}, page_content='وتكثر الإصابة في الأماكن المظللة والرطبـة. إدارة الآفة:\\n\\nالاهتمام بنظافة المزرعة. تكريب النخيل. الإدارة الجيدة للري والتسميد. إزالة الفسائل من حول الأمهات.')]"
311
+ ]
312
+ },
313
+ "execution_count": 24,
314
+ "metadata": {},
315
+ "output_type": "execute_result"
316
+ }
317
+ ],
318
+ "source": [
319
+ "split_documents[:5]"
320
+ ]
321
+ },
322
+ {
323
+ "cell_type": "code",
324
+ "execution_count": 25,
325
+ "metadata": {},
326
+ "outputs": [
327
+ {
328
+ "name": "stdout",
329
+ "output_type": "stream",
330
+ "text": [
331
+ "143730\n",
332
+ "832\n"
333
+ ]
334
+ }
335
+ ],
336
+ "source": [
337
+ "print(len(documents))\n",
338
+ "print(len(split_documents))"
339
+ ]
340
+ },
341
+ {
342
+ "cell_type": "code",
343
+ "execution_count": 26,
344
+ "metadata": {},
345
+ "outputs": [],
346
+ "source": [
347
+ "combined_documents = documents + split_documents"
348
+ ]
349
+ },
350
+ {
351
+ "cell_type": "code",
352
+ "execution_count": 27,
353
+ "metadata": {},
354
+ "outputs": [
355
+ {
356
+ "data": {
357
+ "text/plain": [
358
+ "144562"
359
+ ]
360
+ },
361
+ "execution_count": 27,
362
+ "metadata": {},
363
+ "output_type": "execute_result"
364
+ }
365
+ ],
366
+ "source": [
367
+ "len(combined_documents)"
368
+ ]
369
+ },
370
+ {
371
+ "cell_type": "code",
372
+ "execution_count": 28,
373
+ "metadata": {},
374
+ "outputs": [],
375
+ "source": [
376
+ "combined_keyword_retriever = BM25Retriever.from_documents(split_documents)\n",
377
+ "combined_keyword_retriever.k = 20\n",
378
+ "\n",
379
+ "import pickle\n",
380
+ "with open('combined_keyword_retriever.pkl', \"wb\") as f:\n",
381
+ " pickle.dump(combined_keyword_retriever, f)"
382
+ ]
383
+ }
384
+ ],
385
+ "metadata": {
386
+ "kernelspec": {
387
+ "display_name": "adafsa_env",
388
+ "language": "python",
389
+ "name": "python3"
390
+ },
391
+ "language_info": {
392
+ "codemirror_mode": {
393
+ "name": "ipython",
394
+ "version": 3
395
+ },
396
+ "file_extension": ".py",
397
+ "mimetype": "text/x-python",
398
+ "name": "python",
399
+ "nbconvert_exporter": "python",
400
+ "pygments_lexer": "ipython3",
401
+ "version": "3.8.10"
402
+ }
403
+ },
404
+ "nbformat": 4,
405
+ "nbformat_minor": 2
406
+ }
faiss_excel_doc_index/index.faiss ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:93af2db742f688ef046e298394b29bb6124c97bc01c841aa9e7d11d95ace38d3
3
+ size 441538605
faiss_excel_doc_index/index.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:79bf3786db209a1e32e72906d3ab7edce408ff000728b7af28b55bc729c02285
3
+ size 58044220
faiss_word_doc_index/index.faiss ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:11f8421c1c0bef4e50cd8eb13ae3f9c22102fb9132e3cba75815c8959594dca3
3
+ size 2555949
faiss_word_doc_index/index.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:00e66a13dd78e6fe5d3246865431124fa7e3c450d8a59d13da3306b1c33cc1bd
3
+ size 3226204
rag_pipeline.ipynb ADDED
@@ -0,0 +1,259 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "metadata": {},
7
+ "outputs": [
8
+ {
9
+ "name": "stderr",
10
+ "output_type": "stream",
11
+ "text": [
12
+ "[nltk_data] Downloading package averaged_perceptron_tagger_eng to\n",
13
+ "[nltk_data] /home/fahadkhan/nltk_data...\n",
14
+ "[nltk_data] Package averaged_perceptron_tagger_eng is already up-to-\n",
15
+ "[nltk_data] date!\n"
16
+ ]
17
+ },
18
+ {
19
+ "data": {
20
+ "text/plain": [
21
+ "True"
22
+ ]
23
+ },
24
+ "execution_count": 1,
25
+ "metadata": {},
26
+ "output_type": "execute_result"
27
+ }
28
+ ],
29
+ "source": [
30
+ "import nltk\n",
31
+ "nltk.download('averaged_perceptron_tagger_eng')"
32
+ ]
33
+ },
34
+ {
35
+ "cell_type": "code",
36
+ "execution_count": 1,
37
+ "metadata": {},
38
+ "outputs": [],
39
+ "source": [
40
+ "from langchain_core.prompts import ChatPromptTemplate\n",
41
+ "from langchain_core.output_parsers import StrOutputParser\n",
42
+ "from langchain_core.runnables import RunnablePassthrough\n",
43
+ "from langchain_huggingface.embeddings import HuggingFaceEmbeddings\n",
44
+ "from langchain_community.vectorstores import FAISS\n",
45
+ "from langchain_groq import ChatGroq\n",
46
+ "import pickle\n",
47
+ "import os\n",
48
+ "\n",
49
+ "GROQ_API_KEY=\"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\"\n",
50
+ "os.environ['GROQ_API_KEY'] = GROQ_API_KEY"
51
+ ]
52
+ },
53
+ {
54
+ "cell_type": "code",
55
+ "execution_count": 2,
56
+ "metadata": {},
57
+ "outputs": [
58
+ {
59
+ "name": "stderr",
60
+ "output_type": "stream",
61
+ "text": [
62
+ "/home/fahadkhan/Desktop/ADAFSA_Project/adafsa_env/lib/python3.8/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
63
+ " from .autonotebook import tqdm as notebook_tqdm\n",
64
+ "Some weights of the model checkpoint at Alibaba-NLP/gte-multilingual-base were not used when initializing NewModel: ['classifier.bias', 'classifier.weight']\n",
65
+ "- This IS expected if you are initializing NewModel from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n",
66
+ "- This IS NOT expected if you are initializing NewModel from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n"
67
+ ]
68
+ }
69
+ ],
70
+ "source": [
71
+ "embed_model = HuggingFaceEmbeddings(model_name=\"Alibaba-NLP/gte-multilingual-base\", model_kwargs={\"trust_remote_code\":True})"
72
+ ]
73
+ },
74
+ {
75
+ "cell_type": "code",
76
+ "execution_count": 3,
77
+ "metadata": {},
78
+ "outputs": [],
79
+ "source": [
80
+ "excel_vectorstore = FAISS.load_local(folder_path=\"./faiss_excel_doc_index\", embeddings=embed_model, allow_dangerous_deserialization=True)\n",
81
+ "word_vectorstore = FAISS.load_local(folder_path=\"./faiss_word_doc_index\", embeddings=embed_model, allow_dangerous_deserialization=True)"
82
+ ]
83
+ },
84
+ {
85
+ "cell_type": "code",
86
+ "execution_count": 4,
87
+ "metadata": {},
88
+ "outputs": [],
89
+ "source": [
90
+ "excel_vectorstore.merge_from(word_vectorstore)"
91
+ ]
92
+ },
93
+ {
94
+ "cell_type": "code",
95
+ "execution_count": 5,
96
+ "metadata": {},
97
+ "outputs": [],
98
+ "source": [
99
+ "combined_vectorstore = excel_vectorstore"
100
+ ]
101
+ },
102
+ {
103
+ "cell_type": "code",
104
+ "execution_count": 48,
105
+ "metadata": {},
106
+ "outputs": [],
107
+ "source": [
108
+ "with open('combined_keyword_retriever.pkl', 'rb') as f:\n",
109
+ " combined_keyword_retriever = pickle.load(f)\n",
110
+ " combined_keyword_retriever.k = 10"
111
+ ]
112
+ },
113
+ {
114
+ "cell_type": "code",
115
+ "execution_count": 49,
116
+ "metadata": {},
117
+ "outputs": [],
118
+ "source": [
119
+ "semantic_retriever = combined_vectorstore.as_retriever(search_type=\"mmr\", search_kwargs={'k': 10, 'lambda_mult': 0.25})"
120
+ ]
121
+ },
122
+ {
123
+ "cell_type": "code",
124
+ "execution_count": 50,
125
+ "metadata": {},
126
+ "outputs": [],
127
+ "source": [
128
+ "from langchain.retrievers import EnsembleRetriever\n",
129
+ "\n",
130
+ "# initialize the ensemble retriever\n",
131
+ "ensemble_retriever = EnsembleRetriever(\n",
132
+ " retrievers=[combined_keyword_retriever, semantic_retriever], weights=[0.5, 0.5]\n",
133
+ ")"
134
+ ]
135
+ },
136
+ {
137
+ "cell_type": "code",
138
+ "execution_count": 51,
139
+ "metadata": {},
140
+ "outputs": [],
141
+ "source": [
142
+ "from langchain.retrievers.document_compressors import EmbeddingsFilter\n",
143
+ "from langchain.retrievers import ContextualCompressionRetriever\n",
144
+ "\n",
145
+ "embeddings_filter = EmbeddingsFilter(embeddings=embed_model, similarity_threshold=0.6)\n",
146
+ "compression_retriever = ContextualCompressionRetriever(\n",
147
+ " base_compressor=embeddings_filter, base_retriever=ensemble_retriever\n",
148
+ ")"
149
+ ]
150
+ },
151
+ {
152
+ "cell_type": "code",
153
+ "execution_count": 55,
154
+ "metadata": {},
155
+ "outputs": [],
156
+ "source": [
157
+ "llm = ChatGroq(\n",
158
+ " model=\"llama-3.1-8b-instant\", \n",
159
+ " temperature=0.0,\n",
160
+ " max_tokens=1024, \n",
161
+ " max_retries=2\n",
162
+ ")"
163
+ ]
164
+ },
165
+ {
166
+ "cell_type": "code",
167
+ "execution_count": 53,
168
+ "metadata": {},
169
+ "outputs": [
170
+ {
171
+ "name": "stderr",
172
+ "output_type": "stream",
173
+ "text": [
174
+ "/home/fahadkhan/Desktop/ADAFSA_Project/adafsa_env/lib/python3.8/site-packages/langsmith/client.py:312: LangSmithMissingAPIKeyWarning: API key must be provided when using hosted LangSmith API\n",
175
+ " warnings.warn(\n"
176
+ ]
177
+ }
178
+ ],
179
+ "source": [
180
+ "from langchain import hub\n",
181
+ "\n",
182
+ "prompt = hub.pull(\"rlm/rag-prompt\")"
183
+ ]
184
+ },
185
+ {
186
+ "cell_type": "code",
187
+ "execution_count": 56,
188
+ "metadata": {},
189
+ "outputs": [],
190
+ "source": [
191
+ "from langchain_core.output_parsers import StrOutputParser\n",
192
+ "from langchain_core.runnables import RunnablePassthrough\n",
193
+ "\n",
194
+ "\n",
195
+ "def format_docs(docs):\n",
196
+ " return \"\\n\\n\".join(doc.page_content for doc in docs)\n",
197
+ "\n",
198
+ "\n",
199
+ "rag_chain = (\n",
200
+ " {\"context\": compression_retriever | format_docs, \"question\": RunnablePassthrough()}\n",
201
+ " | prompt\n",
202
+ " | llm\n",
203
+ " | StrOutputParser()\n",
204
+ ")\n"
205
+ ]
206
+ },
207
+ {
208
+ "cell_type": "code",
209
+ "execution_count": 47,
210
+ "metadata": {},
211
+ "outputs": [
212
+ {
213
+ "data": {
214
+ "text/plain": [
215
+ "'شروط اختيار مكان منحل العسل: \\n\\n1. أن يكون موقع المنحل في منطقة زراعية تتنوع فيها النباتات أو الأشجار النحلية المزهرة كمصدر متعدد للرحيق وحبوب اللقاح.\\n2. يفضل وضع المنحل بعيداً عن أماكن السكن وأماكن لعب الأطفال والأماكن المضيئة ليلاً.\\n3. يجب أن يكون المنحل بعيداً عن حظائر الأبقار والأغنام والدواجن لأن الروائح الكريهة تؤذي نحل العسل.'"
216
+ ]
217
+ },
218
+ "execution_count": 47,
219
+ "metadata": {},
220
+ "output_type": "execute_result"
221
+ }
222
+ ],
223
+ "source": [
224
+ "rag_chain.invoke(\"شروط اختيار مكان منحل العسل؟\")"
225
+ ]
226
+ },
227
+ {
228
+ "cell_type": "code",
229
+ "execution_count": 44,
230
+ "metadata": {},
231
+ "outputs": [],
232
+ "source": [
233
+ "# for chunk in rag_chain.stream(\"ما هي الاحتياجات المائية وجدولة الري ؟\"):\n",
234
+ "# print(chunk, end=\"\", flush=True)"
235
+ ]
236
+ }
237
+ ],
238
+ "metadata": {
239
+ "kernelspec": {
240
+ "display_name": "rag",
241
+ "language": "python",
242
+ "name": "python3"
243
+ },
244
+ "language_info": {
245
+ "codemirror_mode": {
246
+ "name": "ipython",
247
+ "version": 3
248
+ },
249
+ "file_extension": ".py",
250
+ "mimetype": "text/x-python",
251
+ "name": "python",
252
+ "nbconvert_exporter": "python",
253
+ "pygments_lexer": "ipython3",
254
+ "version": "3.8.10"
255
+ }
256
+ },
257
+ "nbformat": 4,
258
+ "nbformat_minor": 2
259
+ }
requirements.txt ADDED
@@ -0,0 +1,253 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ aiofiles==23.2.1
2
+ aiohappyeyeballs==2.4.0
3
+ aiohttp==3.9.1
4
+ aiosignal==1.3.1
5
+ annotated-types==0.7.0
6
+ antiorm==1.2.1
7
+ anyio==4.4.0
8
+ asgiref==3.8.1
9
+ asttokens==2.4.1
10
+ async-timeout==4.0.3
11
+ attrs==24.2.0
12
+ backcall==0.2.0
13
+ backoff==2.2.1
14
+ bcrypt==4.2.0
15
+ beautifulsoup4==4.12.3
16
+ bitarray==2.9.2
17
+ blinker==1.8.2
18
+ bm25s==0.1.10
19
+ build==1.2.1
20
+ cachetools==5.5.0
21
+ catalogue==2.0.10
22
+ certifi==2024.8.30
23
+ chardet==5.2.0
24
+ charset-normalizer==3.3.2
25
+ chroma-hnswlib==0.7.3
26
+ chromadb==0.5.3
27
+ click==8.1.7
28
+ colbert-ai==0.2.19
29
+ coloredlogs==15.0.1
30
+ comm==0.2.2
31
+ contourpy==1.1.1
32
+ cycler==0.12.1
33
+ dataclasses-json==0.6.7
34
+ datasets==2.21.0
35
+ db==0.1.1
36
+ db-sqlite3==0.0.1
37
+ debugpy==1.8.5
38
+ decorator==5.1.1
39
+ deepdiff==8.0.1
40
+ Deprecated==1.2.14
41
+ dill==0.3.8
42
+ dirtyjson==1.0.8
43
+ distro==1.9.0
44
+ docx2txt==0.8
45
+ emoji==2.12.1
46
+ et-xmlfile==1.1.0
47
+ exceptiongroup==1.2.2
48
+ executing==2.1.0
49
+ faiss-cpu==1.8.0.post1
50
+ fastapi==0.112.2
51
+ ffmpy==0.4.0
52
+ filelock==3.15.4
53
+ filetype==1.2.0
54
+ flask==3.0.3
55
+ flatbuffers==24.3.25
56
+ fonttools==4.53.1
57
+ frozenlist==1.4.1
58
+ fsspec==2024.9.0
59
+ git-python==1.0.3
60
+ gitdb==4.0.11
61
+ GitPython==3.1.43
62
+ google-auth==2.34.0
63
+ googleapis-common-protos==1.65.0
64
+ gradio==4.44.0
65
+ gradio-client==1.3.0
66
+ graphlib-backport==1.1.0
67
+ greenlet==3.0.3
68
+ groq==0.11.0
69
+ grpcio==1.66.1
70
+ h11==0.14.0
71
+ httpcore==1.0.5
72
+ httptools==0.6.1
73
+ httpx==0.27.2
74
+ huggingface-hub==0.24.6
75
+ humanfriendly==10.0
76
+ idna==3.8
77
+ importlib-metadata==8.4.0
78
+ importlib-resources==6.4.4
79
+ ipykernel==6.29.5
80
+ ipython==8.12.3
81
+ itsdangerous==2.2.0
82
+ jedi==0.19.1
83
+ jinja2==3.1.4
84
+ jiter==0.5.0
85
+ joblib==1.4.2
86
+ jq==1.8.0
87
+ jsonpatch==1.33
88
+ jsonpath-python==1.0.6
89
+ jsonpointer==3.0.0
90
+ jupyter-client==8.6.2
91
+ jupyter-core==5.7.2
92
+ kiwisolver==1.4.7
93
+ kubernetes==30.1.0
94
+ langchain==0.2.16
95
+ langchain-community==0.2.16
96
+ langchain-core==0.2.39
97
+ langchain-experimental==0.0.65
98
+ langchain-groq==0.1.9
99
+ langchain-huggingface==0.0.3
100
+ langchain-text-splitters==0.2.4
101
+ langdetect==1.0.9
102
+ langsmith==0.1.117
103
+ llama-index==0.10.6
104
+ llama-index-agent-openai==0.1.7
105
+ llama-index-core==0.10.68.post1
106
+ llama-index-embeddings-openai==0.1.11
107
+ llama-index-legacy==0.9.48.post3
108
+ llama-index-llms-openai==0.1.31
109
+ llama-index-multi-modal-llms-openai==0.1.9
110
+ llama-index-program-openai==0.1.7
111
+ llama-index-question-gen-openai==0.1.3
112
+ llama-index-readers-file==0.1.33
113
+ lxml==5.3.0
114
+ markdown-it-py==3.0.0
115
+ MarkupSafe==2.1.5
116
+ marshmallow==3.22.0
117
+ matplotlib==3.7.5
118
+ matplotlib-inline==0.1.7
119
+ mdurl==0.1.2
120
+ mmh3==4.1.0
121
+ monotonic==1.6
122
+ mpmath==1.3.0
123
+ multidict==6.0.5
124
+ multiprocess==0.70.16
125
+ mypy-extensions==1.0.0
126
+ nest-asyncio==1.6.0
127
+ networkx==3.1
128
+ ninja==1.11.1.1
129
+ nltk==3.9.1
130
+ numpy==1.24.4
131
+ nvidia-cublas-cu12==12.1.3.1
132
+ nvidia-cuda-cupti-cu12==12.1.105
133
+ nvidia-cuda-nvrtc-cu12==12.1.105
134
+ nvidia-cuda-runtime-cu12==12.1.105
135
+ nvidia-cudnn-cu12==9.1.0.70
136
+ nvidia-cufft-cu12==11.0.2.54
137
+ nvidia-curand-cu12==10.3.2.106
138
+ nvidia-cusolver-cu12==11.4.5.107
139
+ nvidia-cusparse-cu12==12.1.0.106
140
+ nvidia-nccl-cu12==2.20.5
141
+ nvidia-nvjitlink-cu12==12.6.68
142
+ nvidia-nvtx-cu12==12.1.105
143
+ oauthlib==3.2.2
144
+ onnx==1.16.2
145
+ onnxruntime==1.16.3
146
+ openai==1.44.1
147
+ openpyxl==3.1.5
148
+ opentelemetry-api==1.27.0
149
+ opentelemetry-exporter-otlp-proto-common==1.27.0
150
+ opentelemetry-exporter-otlp-proto-grpc==1.27.0
151
+ opentelemetry-instrumentation==0.48b0
152
+ opentelemetry-instrumentation-asgi==0.48b0
153
+ opentelemetry-instrumentation-fastapi==0.48b0
154
+ opentelemetry-proto==1.27.0
155
+ opentelemetry-sdk==1.27.0
156
+ opentelemetry-semantic-conventions==0.48b0
157
+ opentelemetry-util-http==0.48b0
158
+ orderly-set==5.2.2
159
+ orjson==3.10.7
160
+ overrides==7.7.0
161
+ packaging==23.2
162
+ pandas==2.0.3
163
+ parso==0.8.4
164
+ pexpect==4.9.0
165
+ pickleshare==0.7.5
166
+ pillow==10.4.0
167
+ platformdirs==4.2.2
168
+ posthog==3.6.3
169
+ prompt-toolkit==3.0.47
170
+ protobuf==5.28.0
171
+ psutil==5.9.8
172
+ ptyprocess==0.7.0
173
+ pure-eval==0.2.3
174
+ pyarrow==17.0.0
175
+ pyasn1==0.6.0
176
+ pyasn1-modules==0.4.0
177
+ pydantic==2.8.2
178
+ pydantic-core==2.20.1
179
+ pydub==0.25.1
180
+ pygments==2.18.0
181
+ pyparsing==3.1.4
182
+ pypdf==4.3.1
183
+ PyPika==0.48.9
184
+ pyproject-hooks==1.1.0
185
+ PyStemmer==2.2.0.1
186
+ python-dateutil==2.9.0.post0
187
+ python-docx==1.1.2
188
+ python-dotenv==1.0.1
189
+ python-iso639==2024.4.27
190
+ python-magic==0.4.27
191
+ python-multipart==0.0.9
192
+ pytz==2024.1
193
+ PyYAML==6.0.2
194
+ pyzmq==26.2.0
195
+ rank-bm25==0.2.2
196
+ rapidfuzz==3.9.7
197
+ regex==2024.7.24
198
+ requests==2.32.3
199
+ requests-oauthlib==2.0.0
200
+ requests-toolbelt==1.0.0
201
+ rich==13.8.0
202
+ rsa==4.9
203
+ ruff==0.6.4
204
+ safetensors==0.4.4
205
+ scikit-learn==1.3.2
206
+ scipy==1.10.1
207
+ semantic-version==2.10.0
208
+ sentence-transformers==2.7.0
209
+ shellingham==1.5.4
210
+ six==1.16.0
211
+ smmap==5.0.1
212
+ sniffio==1.3.1
213
+ soupsieve==2.6
214
+ spaces==0.30.2
215
+ SQLAlchemy==2.0.33
216
+ srsly==2.4.8
217
+ stack-data==0.6.3
218
+ starlette==0.38.4
219
+ striprtf==0.0.26
220
+ sympy==1.13.2
221
+ tabulate==0.9.0
222
+ tenacity==8.5.0
223
+ threadpoolctl==3.5.0
224
+ tiktoken==0.7.0
225
+ tokenizers==0.19.1
226
+ tomli==2.0.1
227
+ tomlkit==0.12.0
228
+ torch==2.4.1
229
+ tornado==6.4.1
230
+ tqdm==4.66.5
231
+ traitlets==5.14.3
232
+ transformers==4.44.2
233
+ triton==3.0.0
234
+ typer==0.12.5
235
+ typing-extensions==4.12.2
236
+ typing-inspect==0.9.0
237
+ tzdata==2024.1
238
+ ujson==5.10.0
239
+ unstructured==0.11.8
240
+ unstructured-client==0.25.7
241
+ urllib3==2.2.2
242
+ uvicorn==0.30.6
243
+ uvloop==0.20.0
244
+ voyager==2.0.9
245
+ watchfiles==0.24.0
246
+ wcwidth==0.2.13
247
+ websocket-client==1.8.0
248
+ websockets==12.0
249
+ werkzeug==3.0.4
250
+ wrapt==1.16.0
251
+ xxhash==3.5.0
252
+ yarl==1.9.7
253
+ zipp==3.20.1
testing sample questions.xlsx ADDED
Binary file (12.8 kB). View file