F-allahmoradi commited on
Commit
f60ef34
·
verified ·
1 Parent(s): e799780

Upload 3 files

Browse files
Files changed (3) hide show
  1. app.py +59 -0
  2. model.py +120 -0
  3. requirements.txt +565 -0
app.py ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+ """app.ipynb
3
+
4
+ Automatically generated by Colab.
5
+
6
+ Original file is located at
7
+ https://colab.research.google.com/drive/1lKXL4Cdum5DiSbczUsadXc0F8j46NM_m
8
+
9
+ # in the name of **allah**
10
+ """
11
+
12
+ import gradio as gr
13
+ from model import process_sentence, process_file # ایمپورت توابع پردازش از model.py
14
+
15
+ # تابع اصلی که ورودی متن و فایل را پردازش می‌کند
16
+ def analyze_text_and_file(input_text, file):
17
+ output_text = ""
18
+ if input_text:
19
+ output_text = process_sentence(input_text) # پردازش متن
20
+
21
+ file_output = None
22
+ if file:
23
+ file_output = process_file(file) # پردازش فایل
24
+
25
+ return output_text, file_output
26
+
27
+ # رابط کاربری Gradio
28
+ interface = gr.Interface(
29
+ fn=analyze_text_and_file,
30
+ inputs=[
31
+ gr.Textbox(lines=3, placeholder="Enter Persian text to process...", label="Text Input"),
32
+ gr.File(label="Upload CSV File"),
33
+ ],
34
+ outputs=[
35
+ gr.Textbox(label="Processed Text"),
36
+ gr.HTML(label="File Processing Result"),
37
+ ],
38
+ title="Persian Text Processor",
39
+ description="Process Persian text or upload a CSV file with a 'Comment' column.",
40
+ css="""
41
+ .gradio-container {
42
+ background-color: #000000;
43
+ color: #FFFFFF;
44
+ }
45
+ .gr-button {
46
+ background-color: #FF5733;
47
+ color: white;
48
+ }
49
+ .gr-textbox input {
50
+ background-color: #333333;
51
+ color: white;
52
+ }
53
+ .gr-button:hover {
54
+ background-color: #FF4500;
55
+ }
56
+ """
57
+ )
58
+
59
+ interface.launch(share=True, debug=True, inline=False)
model.py ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+ """model.ipynb
3
+
4
+ Automatically generated by Colab.
5
+
6
+ Original file is located at
7
+ https://colab.research.google.com/drive/1lKXL4Cdum5DiSbczUsadXc0F8j46NM_m
8
+
9
+ # in the name of **allah**
10
+ """
11
+
12
+ import torch
13
+ from transformers import AutoTokenizer, BertForSequenceClassification
14
+ from datasets import Dataset
15
+ import pandas as pd
16
+ import re
17
+ from hazm import Normalizer, Lemmatizer, word_tokenize, stopwords_list
18
+
19
+ # Initialize Hazm components
20
+ normalizer = Normalizer()
21
+ lemmatizer = Lemmatizer()
22
+ stopwords = stopwords_list()
23
+
24
+ # Load the BERT model for sentiment analysis
25
+ dataset = Dataset.from_pandas(pd.DataFrame({"Comment": []}))
26
+
27
+ tokenizer = AutoTokenizer.from_pretrained("HooshvareLab/bert-fa-base-uncased")
28
+ model = BertForSequenceClassification.from_pretrained("HooshvareLab/bert-fa-base-uncased", num_labels=3)
29
+
30
+ device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
31
+ model.to(device)
32
+
33
+
34
+ # Tokenization function for sentiment analysis
35
+ def tokenize_function(examples):
36
+ return tokenizer(examples["Comment"], padding="max_length", truncation=True, max_length=256, return_tensors='pt')
37
+
38
+ # Sentiment prediction function
39
+ def predict_sentiment(batch):
40
+ input_ids = torch.tensor(batch['input_ids']).to(device)
41
+ attention_mask = torch.tensor(batch['attention_mask']).to(device)
42
+
43
+ with torch.no_grad():
44
+ outputs = model(input_ids=input_ids, attention_mask=attention_mask)
45
+ predictions = torch.argmax(outputs.logits, dim=-1)
46
+
47
+ return {'sentiment': predictions.cpu()}
48
+
49
+ # Mapping sentiment labels
50
+ sentiment_labels_en = {0: 'منفی', 1: 'خنثی', 2: 'مثبت'}
51
+
52
+
53
+ # Adding sentiment prediction to tokenized dataset
54
+ def predict_sentiment_labels(text):
55
+ dataset = Dataset.from_dict({"Comment": [text]})
56
+ tokenized_dataset = dataset.map(tokenize_function, batched=True)
57
+ predicted_sentiments = tokenized_dataset.map(predict_sentiment, batched=True)
58
+ sentiment = predicted_sentiments[0]['sentiment']
59
+ return sentiment_labels_en.get(sentiment, 'نامشخص')
60
+
61
+
62
+
63
+ # Functions from your original code for classifying sentence type and cleaning
64
+ imperative_verbs = [
65
+ 'بیا', 'برو', 'بخواب', 'کن', 'باش', 'بذار', 'فراموش کن', 'بخور',
66
+ 'بپوش', 'ببخش', 'بنویس', 'دقت کن', 'دست بردار', 'سکوت کن',
67
+ 'اجازه بده', 'نکن', 'پیش برو', 'خواب بمان', 'توجه کن', 'خوش آمدید',
68
+ 'حواس‌جمع باش', 'در نظر بگیر', 'بخشید', 'بکش', 'نگذار', 'سعی کن',
69
+ 'تلاش کن', 'ببین', 'نرو', 'بگیر', 'بگو', 'شک نکن', 'فکر کن',
70
+ 'عادت کن', 'بیانداز', 'حرکت کن', 'شکایت نکن', 'عاشق شو', 'بخند',
71
+ 'برگرد', 'بزن', 'آشپزی کن', 'بپذیر', 'شیرینی بپز', 'درس بخوان',
72
+ 'کلاس بگذار', 'کمک کن', 'بمان', 'راهنمایی کن', 'لطفا'
73
+ ]
74
+
75
+ def classify_sentence(sentence):
76
+ sentence = sentence.strip()
77
+ sentence_type = 'خبری'
78
+
79
+ if re.search(r'چرا|چطور|کجا|آیا|چه|چی|چند|کدام|کی|چندم|چیست|چیه|چندمین|چجوری|کی|چیست|چگونه|؟', sentence) or sentence.endswith('?'):
80
+ sentence_type = 'پرسشی'
81
+ elif re.search(r'\b(?:' + '|'.join(imperative_verbs) + r')\b', sentence):
82
+ sentence_type = 'امری'
83
+
84
+ return sentence_type
85
+
86
+ def clean_text(text):
87
+ text = re.sub(r'https://\S+|www\.\S+', '', text)
88
+ text = re.sub(r'[^ا-ی0-9\s#@_؟]', ' ', text)
89
+ text = re.sub(r'\s+', ' ', text).strip()
90
+ words = word_tokenize(text)
91
+ words = [word for word in words if word not in stopwords]
92
+ words = [lemmatizer.lemmatize(word) for word in words]
93
+ return ' '.join(words)
94
+
95
+
96
+ def process_sentence(sentence):
97
+ cleaned = clean_text(sentence)
98
+ sentence_type = classify_sentence(cleaned)
99
+ sentiment = predict_sentiment_labels(sentence)
100
+ return f"Type: {sentence_type}\nSentiment: {sentiment}\nCleaned Text: {cleaned}"
101
+
102
+
103
+
104
+ # Function to process file
105
+ def process_file(file):
106
+ try:
107
+ df = pd.read_csv(file.name)
108
+ if 'Comment' not in df.columns:
109
+ return "Error: No 'Comment' column found in the file."
110
+
111
+ # Process comments
112
+ df['Cleaned_Comment'] = df['Comment'].apply(clean_text)
113
+ df['Type'] = df['Comment'].apply(classify_sentence)
114
+ df['Sentiment'] = df['Comment'].apply(predict_sentiment_labels)
115
+
116
+ output_path = "processed_file.csv"
117
+ df.to_csv(output_path, index=False)
118
+ return f"File processed successfully! Download it [here](./{output_path})"
119
+ except Exception as e:
120
+ return str(e)
requirements.txt ADDED
@@ -0,0 +1,565 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ absl-py==1.4.0
2
+ accelerate==1.2.1
3
+ aiofiles==23.2.1
4
+ aiohappyeyeballs==2.4.4
5
+ aiohttp==3.11.10
6
+ aiosignal==1.3.2
7
+ alabaster==1.0.0
8
+ albucore==0.0.19
9
+ albumentations==1.4.20
10
+ altair==5.5.0
11
+ annotated-types==0.7.0
12
+ anyio==3.7.1
13
+ argon2-cffi==23.1.0
14
+ argon2-cffi-bindings==21.2.0
15
+ array_record==0.5.1
16
+ arviz==0.20.0
17
+ astropy==6.1.7
18
+ astropy-iers-data==0.2024.12.16.0.35.48
19
+ astunparse==1.6.3
20
+ async-timeout==4.0.3
21
+ atpublic==4.1.0
22
+ attrs==24.3.0
23
+ audioread==3.0.1
24
+ autograd==1.7.0
25
+ babel==2.16.0
26
+ backcall==0.2.0
27
+ beautifulsoup4==4.12.3
28
+ bigframes==1.29.0
29
+ bigquery-magics==0.4.0
30
+ bleach==6.2.0
31
+ blinker==1.9.0
32
+ blis==0.7.11
33
+ blosc2==2.7.1
34
+ bokeh==3.6.2
35
+ Bottleneck==1.4.2
36
+ bqplot==0.12.43
37
+ branca==0.8.1
38
+ CacheControl==0.14.1
39
+ cachetools==5.5.0
40
+ catalogue==2.0.10
41
+ certifi==2024.12.14
42
+ cffi==1.17.1
43
+ chardet==5.2.0
44
+ charset-normalizer==3.4.0
45
+ chex==0.1.88
46
+ clarabel==0.9.0
47
+ click==8.1.7
48
+ cloudpathlib==0.20.0
49
+ cloudpickle==3.1.0
50
+ cmake==3.31.2
51
+ cmdstanpy==1.2.5
52
+ colorcet==3.1.0
53
+ colorlover==0.3.0
54
+ colour==0.1.5
55
+ community==1.0.0b1
56
+ confection==0.1.5
57
+ cons==0.4.6
58
+ contourpy==1.3.1
59
+ cryptography==43.0.3
60
+ cuda-python==12.2.1
61
+ cudf-cu12 @ https://pypi.nvidia.com/cudf-cu12/cudf_cu12-24.10.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
62
+ cufflinks==0.17.3
63
+ cupy-cuda12x==12.2.0
64
+ cvxopt==1.3.2
65
+ cvxpy==1.6.0
66
+ cycler==0.12.1
67
+ cymem==2.0.10
68
+ Cython==3.0.11
69
+ dask==2024.10.0
70
+ datascience==0.17.6
71
+ datasets==3.2.0
72
+ db-dtypes==1.3.1
73
+ dbus-python==1.2.18
74
+ debugpy==1.8.0
75
+ decorator==4.4.2
76
+ defusedxml==0.7.1
77
+ Deprecated==1.2.15
78
+ diffusers==0.31.0
79
+ dill==0.3.8
80
+ distro==1.9.0
81
+ dlib==19.24.2
82
+ dm-tree==0.1.8
83
+ docker-pycreds==0.4.0
84
+ docstring_parser==0.16
85
+ docutils==0.21.2
86
+ dopamine_rl==4.1.0
87
+ duckdb==1.1.3
88
+ earthengine-api==1.4.3
89
+ easydict==1.13
90
+ editdistance==0.8.1
91
+ eerepr==0.0.4
92
+ einops==0.8.0
93
+ en-core-web-sm @ https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.7.1/en_core_web_sm-3.7.1-py3-none-any.whl#sha256=86cc141f63942d4b2c5fcee06630fd6f904788d2f0ab005cce45aadb8fb73889
94
+ entrypoints==0.4
95
+ et_xmlfile==2.0.0
96
+ etils==1.11.0
97
+ etuples==0.3.9
98
+ eval_type_backport==0.2.0
99
+ exceptiongroup==1.2.2
100
+ fastai==2.7.18
101
+ fastapi==0.115.6
102
+ fastcore==1.7.27
103
+ fastdownload==0.0.7
104
+ fastjsonschema==2.21.1
105
+ fastprogress==1.0.3
106
+ fastrlock==0.8.3
107
+ fasttext-wheel==0.9.2
108
+ ffmpy==0.5.0
109
+ filelock==3.16.1
110
+ firebase-admin==6.6.0
111
+ flashtext==2.7
112
+ Flask==3.1.0
113
+ flatbuffers==24.3.25
114
+ flax==0.8.5
115
+ folium==0.19.2
116
+ fonttools==4.55.3
117
+ frozendict==2.4.6
118
+ frozenlist==1.5.0
119
+ fsspec==2024.9.0
120
+ future==1.0.0
121
+ gast==0.6.0
122
+ gcsfs==2024.10.0
123
+ GDAL==3.6.4
124
+ gdown==5.2.0
125
+ geemap==0.35.1
126
+ gensim==4.3.3
127
+ geocoder==1.38.1
128
+ geographiclib==2.0
129
+ geopandas==1.0.1
130
+ geopy==2.4.1
131
+ gin-config==0.5.0
132
+ gitdb==4.0.11
133
+ GitPython==3.1.43
134
+ glob2==0.7
135
+ google==2.0.3
136
+ google-ai-generativelanguage==0.6.10
137
+ google-api-core==2.19.2
138
+ google-api-python-client==2.155.0
139
+ google-auth==2.27.0
140
+ google-auth-httplib2==0.2.0
141
+ google-auth-oauthlib==1.2.1
142
+ google-cloud-aiplatform==1.74.0
143
+ google-cloud-bigquery==3.25.0
144
+ google-cloud-bigquery-connection==1.17.0
145
+ google-cloud-bigquery-storage==2.27.0
146
+ google-cloud-bigtable==2.27.0
147
+ google-cloud-core==2.4.1
148
+ google-cloud-datastore==2.20.2
149
+ google-cloud-firestore==2.19.0
150
+ google-cloud-functions==1.19.0
151
+ google-cloud-iam==2.17.0
152
+ google-cloud-language==2.16.0
153
+ google-cloud-pubsub==2.27.1
154
+ google-cloud-resource-manager==1.14.0
155
+ google-cloud-storage==2.19.0
156
+ google-cloud-translate==3.19.0
157
+ google-colab @ file:///colabtools/dist/google_colab-1.0.0.tar.gz
158
+ google-crc32c==1.6.0
159
+ google-genai==0.3.0
160
+ google-generativeai==0.8.3
161
+ google-pasta==0.2.0
162
+ google-resumable-media==2.7.2
163
+ googleapis-common-protos==1.66.0
164
+ googledrivedownloader==0.4
165
+ gradio==5.9.1
166
+ gradio_client==1.5.2
167
+ graphviz==0.20.3
168
+ greenlet==3.1.1
169
+ grpc-google-iam-v1==0.13.1
170
+ grpcio==1.68.1
171
+ grpcio-status==1.62.3
172
+ gspread==6.0.2
173
+ gspread-dataframe==3.3.1
174
+ gym==0.25.2
175
+ gym-notices==0.0.8
176
+ h11==0.14.0
177
+ h5netcdf==1.4.1
178
+ h5py==3.12.1
179
+ hazm==0.10.0
180
+ holidays==0.63
181
+ holoviews==1.20.0
182
+ html5lib==1.1
183
+ httpcore==1.0.7
184
+ httpimport==1.4.0
185
+ httplib2==0.22.0
186
+ httpx==0.28.1
187
+ huggingface-hub==0.27.0
188
+ humanize==4.11.0
189
+ hyperopt==0.2.7
190
+ ibis-framework==9.2.0
191
+ idna==3.10
192
+ imageio==2.36.1
193
+ imageio-ffmpeg==0.5.1
194
+ imagesize==1.4.1
195
+ imbalanced-learn==0.12.4
196
+ imgaug==0.4.0
197
+ immutabledict==4.2.1
198
+ importlib_metadata==8.5.0
199
+ importlib_resources==6.4.5
200
+ imutils==0.5.4
201
+ inflect==7.4.0
202
+ iniconfig==2.0.0
203
+ intel-cmplr-lib-ur==2025.0.4
204
+ intel-openmp==2025.0.4
205
+ ipyevents==2.0.2
206
+ ipyfilechooser==0.6.0
207
+ ipykernel==5.5.6
208
+ ipyleaflet==0.19.2
209
+ ipyparallel==8.8.0
210
+ ipython==7.34.0
211
+ ipython-genutils==0.2.0
212
+ ipython-sql==0.5.0
213
+ ipytree==0.2.2
214
+ ipywidgets==7.7.1
215
+ itsdangerous==2.2.0
216
+ jax==0.4.33
217
+ jax-cuda12-pjrt==0.4.33
218
+ jax-cuda12-plugin==0.4.33
219
+ jaxlib==0.4.33
220
+ jedi==0.19.2
221
+ jeepney==0.7.1
222
+ jellyfish==1.1.0
223
+ jieba==0.42.1
224
+ Jinja2==3.1.4
225
+ jiter==0.8.2
226
+ joblib==1.4.2
227
+ jsonpatch==1.33
228
+ jsonpickle==4.0.1
229
+ jsonpointer==3.0.0
230
+ jsonschema==4.23.0
231
+ jsonschema-specifications==2024.10.1
232
+ jupyter-client==6.1.12
233
+ jupyter-console==6.1.0
234
+ jupyter-leaflet==0.19.2
235
+ jupyter-server==1.24.0
236
+ jupyter_core==5.7.2
237
+ jupyterlab_pygments==0.3.0
238
+ jupyterlab_widgets==3.0.13
239
+ kaggle==1.6.17
240
+ kagglehub==0.3.5
241
+ keras==3.5.0
242
+ keyring==23.5.0
243
+ kiwisolver==1.4.7
244
+ langchain==0.3.12
245
+ langchain-core==0.3.25
246
+ langchain-text-splitters==0.3.3
247
+ langcodes==3.5.0
248
+ langsmith==0.2.3
249
+ language_data==1.3.0
250
+ launchpadlib==1.10.16
251
+ lazr.restfulclient==0.14.4
252
+ lazr.uri==1.0.6
253
+ lazy_loader==0.4
254
+ libclang==18.1.1
255
+ libcudf-cu12 @ https://pypi.nvidia.com/libcudf-cu12/libcudf_cu12-24.10.1-py3-none-manylinux_2_28_x86_64.whl
256
+ librosa==0.10.2.post1
257
+ lightgbm==4.5.0
258
+ linkify-it-py==2.0.3
259
+ llvmlite==0.43.0
260
+ locket==1.0.0
261
+ logical-unification==0.4.6
262
+ lxml==5.3.0
263
+ marisa-trie==1.2.1
264
+ Markdown==3.7
265
+ markdown-it-py==3.0.0
266
+ MarkupSafe==2.1.5
267
+ matplotlib==3.8.0
268
+ matplotlib-inline==0.1.7
269
+ matplotlib-venn==1.1.1
270
+ mdit-py-plugins==0.4.2
271
+ mdurl==0.1.2
272
+ miniKanren==1.0.3
273
+ missingno==0.5.2
274
+ mistune==3.0.2
275
+ mizani==0.13.1
276
+ mkl==2025.0.1
277
+ ml-dtypes==0.4.1
278
+ mlxtend==0.23.3
279
+ more-itertools==10.5.0
280
+ moviepy==1.0.3
281
+ mpmath==1.3.0
282
+ msgpack==1.1.0
283
+ multidict==6.1.0
284
+ multipledispatch==1.0.0
285
+ multiprocess==0.70.16
286
+ multitasking==0.0.11
287
+ murmurhash==1.0.11
288
+ music21==9.3.0
289
+ namex==0.0.8
290
+ narwhals==1.18.4
291
+ natsort==8.4.0
292
+ nbclassic==1.1.0
293
+ nbclient==0.10.1
294
+ nbconvert==7.16.4
295
+ nbformat==5.10.4
296
+ ndindex==1.9.2
297
+ nest-asyncio==1.6.0
298
+ networkx==3.4.2
299
+ nibabel==5.3.2
300
+ nltk==3.9.1
301
+ notebook==6.5.5
302
+ notebook_shim==0.2.4
303
+ numba==0.60.0
304
+ numexpr==2.10.2
305
+ numpy==1.24.3
306
+ nvidia-cublas-cu12==12.6.4.1
307
+ nvidia-cuda-cupti-cu12==12.6.80
308
+ nvidia-cuda-nvcc-cu12==12.6.85
309
+ nvidia-cuda-runtime-cu12==12.6.77
310
+ nvidia-cudnn-cu12==9.6.0.74
311
+ nvidia-cufft-cu12==11.3.0.4
312
+ nvidia-curand-cu12==10.3.7.77
313
+ nvidia-cusolver-cu12==11.7.1.2
314
+ nvidia-cusparse-cu12==12.5.4.2
315
+ nvidia-nccl-cu12==2.23.4
316
+ nvidia-nvjitlink-cu12==12.6.85
317
+ nvtx==0.2.10
318
+ nx-cugraph-cu12 @ https://pypi.nvidia.com/nx-cugraph-cu12/nx_cugraph_cu12-24.10.0-py3-none-any.whl
319
+ oauth2client==4.1.3
320
+ oauthlib==3.2.2
321
+ openai==1.57.4
322
+ opencv-contrib-python==4.10.0.84
323
+ opencv-python==4.10.0.84
324
+ opencv-python-headless==4.10.0.84
325
+ openpyxl==3.1.5
326
+ opentelemetry-api==1.29.0
327
+ opentelemetry-sdk==1.29.0
328
+ opentelemetry-semantic-conventions==0.50b0
329
+ opt_einsum==3.4.0
330
+ optax==0.2.4
331
+ optree==0.13.1
332
+ orbax-checkpoint==0.6.4
333
+ orjson==3.10.12
334
+ osqp==0.6.7.post3
335
+ packaging==24.2
336
+ pandas==2.2.2
337
+ pandas-datareader==0.10.0
338
+ pandas-gbq==0.25.0
339
+ pandas-stubs==2.2.2.240909
340
+ pandocfilters==1.5.1
341
+ panel==1.5.4
342
+ param==2.2.0
343
+ parso==0.8.4
344
+ parsy==2.1
345
+ partd==1.4.2
346
+ pathlib==1.0.1
347
+ patsy==1.0.1
348
+ peewee==3.17.8
349
+ peft==0.14.0
350
+ pexpect==4.9.0
351
+ pickleshare==0.7.5
352
+ pillow==11.0.0
353
+ platformdirs==4.3.6
354
+ plotly==5.24.1
355
+ plotnine==0.14.4
356
+ pluggy==1.5.0
357
+ ply==3.11
358
+ polars==1.9.0
359
+ pooch==1.8.2
360
+ portpicker==1.5.2
361
+ preshed==3.0.9
362
+ prettytable==3.12.0
363
+ proglog==0.1.10
364
+ progressbar2==4.5.0
365
+ prometheus_client==0.21.1
366
+ promise==2.3
367
+ prompt_toolkit==3.0.48
368
+ propcache==0.2.1
369
+ prophet==1.1.6
370
+ proto-plus==1.25.0
371
+ protobuf==4.25.5
372
+ psutil==5.9.5
373
+ psycopg2==2.9.10
374
+ ptyprocess==0.7.0
375
+ py-cpuinfo==9.0.0
376
+ py4j==0.10.9.7
377
+ pyarrow==17.0.0
378
+ pyasn1==0.6.1
379
+ pyasn1_modules==0.4.1
380
+ pybind11==2.13.6
381
+ pycocotools==2.0.8
382
+ pycparser==2.22
383
+ pydantic==2.10.3
384
+ pydantic_core==2.27.1
385
+ pydata-google-auth==1.9.0
386
+ pydot==3.0.3
387
+ pydotplus==2.0.2
388
+ PyDrive==1.3.1
389
+ PyDrive2==1.21.3
390
+ pydub==0.25.1
391
+ pyerfa==2.0.1.5
392
+ pygame==2.6.1
393
+ pygit2==1.16.0
394
+ Pygments==2.18.0
395
+ PyGObject==3.42.1
396
+ PyJWT==2.10.1
397
+ pylibcudf-cu12 @ https://pypi.nvidia.com/pylibcudf-cu12/pylibcudf_cu12-24.10.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
398
+ pylibcugraph-cu12==24.10.0
399
+ pylibraft-cu12==24.10.0
400
+ pymc==5.19.1
401
+ pymystem3==0.2.0
402
+ pynvjitlink-cu12==0.4.0
403
+ pyogrio==0.10.0
404
+ Pyomo==6.8.2
405
+ PyOpenGL==3.1.7
406
+ pyOpenSSL==24.2.1
407
+ pyparsing==3.2.0
408
+ pyperclip==1.9.0
409
+ pyproj==3.7.0
410
+ pyshp==2.3.1
411
+ PySocks==1.7.1
412
+ pyspark==3.5.3
413
+ pytensor==2.26.4
414
+ pytest==8.3.4
415
+ python-apt==0.0.0
416
+ python-box==7.3.0
417
+ python-crfsuite==0.9.11
418
+ python-dateutil==2.8.2
419
+ python-louvain==0.16
420
+ python-multipart==0.0.20
421
+ python-slugify==8.0.4
422
+ python-utils==3.9.1
423
+ pytz==2024.2
424
+ pyviz_comms==3.0.3
425
+ PyYAML==6.0.2
426
+ pyzmq==24.0.1
427
+ qdldl==0.1.7.post4
428
+ ratelim==0.1.6
429
+ referencing==0.35.1
430
+ regex==2024.11.6
431
+ requests==2.32.3
432
+ requests-oauthlib==1.3.1
433
+ requests-toolbelt==1.0.0
434
+ requirements-parser==0.9.0
435
+ rich==13.9.4
436
+ rmm-cu12==24.10.0
437
+ rpds-py==0.22.3
438
+ rpy2==3.4.2
439
+ rsa==4.9
440
+ ruff==0.8.4
441
+ safehttpx==0.1.6
442
+ safetensors==0.4.5
443
+ scikit-image==0.25.0
444
+ scikit-learn==1.6.0
445
+ scipy==1.13.1
446
+ scooby==0.10.0
447
+ scs==3.2.7
448
+ seaborn==0.13.2
449
+ SecretStorage==3.3.1
450
+ semantic-version==2.10.0
451
+ Send2Trash==1.8.3
452
+ sentence-transformers==3.3.1
453
+ sentencepiece==0.2.0
454
+ sentry-sdk==2.19.2
455
+ setproctitle==1.3.4
456
+ shap==0.46.0
457
+ shapely==2.0.6
458
+ shellingham==1.5.4
459
+ simple-parsing==0.1.6
460
+ six==1.17.0
461
+ sklearn-pandas==2.2.0
462
+ slicer==0.0.8
463
+ smart-open==7.1.0
464
+ smmap==5.0.1
465
+ sniffio==1.3.1
466
+ snowballstemmer==2.2.0
467
+ soundfile==0.12.1
468
+ soupsieve==2.6
469
+ soxr==0.5.0.post1
470
+ spacy==3.7.5
471
+ spacy-legacy==3.0.12
472
+ spacy-loggers==1.0.5
473
+ Sphinx==8.1.3
474
+ sphinxcontrib-applehelp==2.0.0
475
+ sphinxcontrib-devhelp==2.0.0
476
+ sphinxcontrib-htmlhelp==2.1.0
477
+ sphinxcontrib-jsmath==1.0.1
478
+ sphinxcontrib-qthelp==2.0.0
479
+ sphinxcontrib-serializinghtml==2.0.0
480
+ SQLAlchemy==2.0.36
481
+ sqlglot==25.1.0
482
+ sqlparse==0.5.3
483
+ srsly==2.5.0
484
+ stanio==0.5.1
485
+ starlette==0.41.3
486
+ statsmodels==0.14.4
487
+ StrEnum==0.4.15
488
+ stringzilla==3.11.1
489
+ sympy==1.13.1
490
+ tables==3.10.1
491
+ tabulate==0.9.0
492
+ tbb==2022.0.0
493
+ tcmlib==1.2.0
494
+ tenacity==9.0.0
495
+ tensorboard==2.17.1
496
+ tensorboard-data-server==0.7.2
497
+ tensorflow==2.17.1
498
+ tensorflow-datasets==4.9.7
499
+ tensorflow-hub==0.16.1
500
+ tensorflow-io-gcs-filesystem==0.37.1
501
+ tensorflow-metadata==1.13.1
502
+ tensorflow-probability==0.24.0
503
+ tensorstore==0.1.71
504
+ termcolor==2.5.0
505
+ terminado==0.18.1
506
+ text-unidecode==1.3
507
+ textblob==0.17.1
508
+ tf-slim==1.1.0
509
+ tf_keras==2.17.0
510
+ thinc==8.2.5
511
+ threadpoolctl==3.5.0
512
+ tifffile==2024.12.12
513
+ timm==1.0.12
514
+ tinycss2==1.4.0
515
+ tokenizers==0.21.0
516
+ toml==0.10.2
517
+ tomli==2.2.1
518
+ tomlkit==0.13.2
519
+ toolz==0.12.1
520
+ torch @ https://download.pytorch.org/whl/cu121_full/torch-2.5.1%2Bcu121-cp310-cp310-linux_x86_64.whl
521
+ torchaudio @ https://download.pytorch.org/whl/cu121/torchaudio-2.5.1%2Bcu121-cp310-cp310-linux_x86_64.whl
522
+ torchsummary==1.5.1
523
+ torchvision @ https://download.pytorch.org/whl/cu121/torchvision-0.20.1%2Bcu121-cp310-cp310-linux_x86_64.whl
524
+ tornado==6.3.3
525
+ tqdm==4.67.1
526
+ traitlets==5.7.1
527
+ traittypes==0.2.1
528
+ transformers==4.47.1
529
+ tweepy==4.14.0
530
+ typeguard==4.4.1
531
+ typer==0.15.1
532
+ types-pytz==2024.2.0.20241003
533
+ types-setuptools==75.6.0.20241126
534
+ typing_extensions==4.12.2
535
+ tzdata==2024.2
536
+ tzlocal==5.2
537
+ uc-micro-py==1.0.3
538
+ umf==0.9.1
539
+ uritemplate==4.1.1
540
+ urllib3==2.2.3
541
+ uvicorn==0.34.0
542
+ vega-datasets==0.9.0
543
+ wadllib==1.3.6
544
+ wandb==0.19.1
545
+ wasabi==1.1.3
546
+ wcwidth==0.2.13
547
+ weasel==0.4.1
548
+ webcolors==24.11.1
549
+ webencodings==0.5.1
550
+ websocket-client==1.8.0
551
+ websockets==14.1
552
+ Werkzeug==3.1.3
553
+ widgetsnbextension==3.6.10
554
+ wordcloud==1.9.4
555
+ wrapt==1.17.0
556
+ xarray==2024.11.0
557
+ xarray-einstats==0.8.0
558
+ xgboost==2.1.3
559
+ xlrd==2.0.1
560
+ xxhash==3.5.0
561
+ xyzservices==2024.9.0
562
+ yarl==1.18.3
563
+ yellowbrick==1.5
564
+ yfinance==0.2.50
565
+ zipp==3.21.0