NLP_tutorial/3-NLP_services/src/helpers.py
2025-04-09 09:39:40 +03:30

59 lines
2.1 KiB
Python

import requests
from requests.structures import CaseInsensitiveDict
from tqdm import tqdm
class NextCloudDownload:
@staticmethod
def download_file(url: str, local_filename: str):
headers = CaseInsensitiveDict()
headers["Authorization"] = "Basic a2hhbGVkaWhraEBnbWFpbC5jb206LjlqLmc3VzdTLkJNSlpG"
with requests.get(url, stream=True, headers=headers) as r:
r.raise_for_status()
with open(local_filename, 'wb') as f:
for chunk in tqdm(r.iter_content(chunk_size=8192), desc=local_filename + " downloading..."):
f.write(chunk)
return local_filename
class MediafireDownload:
@staticmethod
def download_file(url: str, local_filename: str):
with requests.get(url) as r:
r.raise_for_status()
with open(local_filename, 'wb') as f:
for chunk in tqdm(r.iter_content(chunk_size=8192),
desc=local_filename + " downloading from media_fire..."):
f.write(chunk)
return local_filename
class DownloadModel:
def __init__(self):
self.nextcloud_ner_url = "https://ds.kplab.ir/remote.php/webdav/models/ner-model.pt?downloadStartSecret=jki8h3a282"
self.nextcloud_pos_url = "https://ds.kplab.ir/remote.php/webdav/models/pos-model.pt?downloadStartSecret=1kagmql2zy2g"
self.mediafire_ner_url = "https://download1499.mediafire.com/esxlzswwxfjg/hdrd1ufmrqlns7b/ner-model.pt"
self.mediafire_pos_url = "https://download946.mediafire.com/jrtqg4twc4ng/raluzq6zjw7f68u/pos-model.pt"
def download_ner_model(self, name):
try:
NextCloudDownload.download_file(self.nextcloud_ner_url, name)
except:
MediafireDownload.download_file(self.mediafire_ner_url, name)
def download_pos_model(self, name):
try:
NextCloudDownload.download_file(self.nextcloud_pos_url, name)
except:
MediafireDownload.download_file(self.mediafire_pos_url, name)
# TODO
def download_oie_model(self, name):
pass
# TODO
def download_nre_model(self, name):
pass