Spaces:
Running
Running
Add token validation and repository creation for Hugging Face datasets
Browse files
src/knowledge_base/dataset.py
CHANGED
|
@@ -19,10 +19,24 @@ class DatasetManager:
|
|
| 19 |
dataset_name: Имя датасета на Hugging Face Hub
|
| 20 |
token: Токен доступа к Hugging Face Hub (если не задан, берется из ~/.huggingface/token)
|
| 21 |
"""
|
| 22 |
-
self.api = HfApi(token=token)
|
| 23 |
-
self.dataset_name = dataset_name
|
| 24 |
self.token = token if token else HfFolder.get_token()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
def init_dataset_structure(self) -> Tuple[bool, str]:
|
| 27 |
"""
|
| 28 |
Инициализация структуры датасета на Hugging Face
|
|
@@ -372,4 +386,4 @@ def test_dataset_connection(token: Optional[str] = None) -> Tuple[bool, str]:
|
|
| 372 |
if __name__ == "__main__":
|
| 373 |
# Тестируем подключение
|
| 374 |
success, message = test_dataset_connection()
|
| 375 |
-
print(message)
|
|
|
|
| 19 |
dataset_name: Имя датасета на Hugging Face Hub
|
| 20 |
token: Токен доступа к Hugging Face Hub (если не задан, берется из ~/.huggingface/token)
|
| 21 |
"""
|
|
|
|
|
|
|
| 22 |
self.token = token if token else HfFolder.get_token()
|
| 23 |
+
if not self.token:
|
| 24 |
+
raise ValueError("Не найден токен Hugging Face. Установите переменную окружения HUGGINGFACE_TOKEN")
|
| 25 |
+
|
| 26 |
+
self.api = HfApi(token=self.token)
|
| 27 |
+
self.dataset_name = dataset_name
|
| 28 |
|
| 29 |
+
# Проверяем/создаем репозиторий при инициализации
|
| 30 |
+
try:
|
| 31 |
+
self.api.repo_info(repo_id=self.dataset_name, repo_type="dataset")
|
| 32 |
+
except Exception:
|
| 33 |
+
print(f"Создаем новый репозиторий датасета: {self.dataset_name}")
|
| 34 |
+
self.api.create_repo(
|
| 35 |
+
repo_id=self.dataset_name,
|
| 36 |
+
repo_type="dataset",
|
| 37 |
+
private=True
|
| 38 |
+
)
|
| 39 |
+
|
| 40 |
def init_dataset_structure(self) -> Tuple[bool, str]:
|
| 41 |
"""
|
| 42 |
Инициализация структуры датасета на Hugging Face
|
|
|
|
| 386 |
if __name__ == "__main__":
|
| 387 |
# Тестируем подключение
|
| 388 |
success, message = test_dataset_connection()
|
| 389 |
+
print(message)
|
src/knowledge_base/vector_store.py
CHANGED
|
@@ -5,7 +5,7 @@ from langchain_text_splitters import RecursiveCharacterTextSplitter
|
|
| 5 |
from langchain_community.vectorstores import FAISS
|
| 6 |
from langchain_huggingface import HuggingFaceEmbeddings
|
| 7 |
from src.knowledge_base.loader import load_documents
|
| 8 |
-
from config.settings import VECTOR_STORE_PATH, EMBEDDING_MODEL
|
| 9 |
from config.constants import CHUNK_SIZE, CHUNK_OVERLAP
|
| 10 |
|
| 11 |
def get_embeddings():
|
|
@@ -47,9 +47,9 @@ def create_vector_store():
|
|
| 47 |
os.path.join(VECTOR_STORE_PATH, file)
|
| 48 |
)
|
| 49 |
|
| 50 |
-
# Загрузка в датасет
|
| 51 |
from src.knowledge_base.dataset import DatasetManager
|
| 52 |
-
dataset = DatasetManager()
|
| 53 |
success, message = dataset.upload_vector_store()
|
| 54 |
|
| 55 |
# Очищаем локальные файлы после загрузки
|
|
|
|
| 5 |
from langchain_community.vectorstores import FAISS
|
| 6 |
from langchain_huggingface import HuggingFaceEmbeddings
|
| 7 |
from src.knowledge_base.loader import load_documents
|
| 8 |
+
from config.settings import VECTOR_STORE_PATH, EMBEDDING_MODEL, HF_TOKEN
|
| 9 |
from config.constants import CHUNK_SIZE, CHUNK_OVERLAP
|
| 10 |
|
| 11 |
def get_embeddings():
|
|
|
|
| 47 |
os.path.join(VECTOR_STORE_PATH, file)
|
| 48 |
)
|
| 49 |
|
| 50 |
+
# Загрузка в датасет с явной передачей токена
|
| 51 |
from src.knowledge_base.dataset import DatasetManager
|
| 52 |
+
dataset = DatasetManager(token=HF_TOKEN)
|
| 53 |
success, message = dataset.upload_vector_store()
|
| 54 |
|
| 55 |
# Очищаем локальные файлы после загрузки
|