Rulga commited on
Commit
8ef4162
·
1 Parent(s): 7ac0faf

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
  # Очищаем локальные файлы после загрузки