Guilherme Silberfarb Costa commited on
Commit
a484189
1 Parent(s): 9a066b9

Allow local repository writes from elaboracao

Browse files
backend/app/services/elaboracao_service.py CHANGED
@@ -2566,10 +2566,10 @@ def salvar_modelo_repositorio(
2566
  confirmar_substituicao: bool = False,
2567
  ) -> dict[str, Any]:
2568
  resolved = model_repository.resolve_model_repository()
2569
- if resolved.provider != "hf_dataset":
2570
  raise HTTPException(
2571
  status_code=400,
2572
- detail="Salvar direto no repositorio so esta disponivel quando o repositorio usa HF Dataset.",
2573
  )
2574
 
2575
  caminho, _ = exportar_modelo(
 
2566
  confirmar_substituicao: bool = False,
2567
  ) -> dict[str, Any]:
2568
  resolved = model_repository.resolve_model_repository()
2569
+ if not model_repository.provider_supports_write(resolved.provider):
2570
  raise HTTPException(
2571
  status_code=400,
2572
+ detail="Salvar direto no repositorio so esta disponivel quando o repositorio configurado aceita escrita.",
2573
  )
2574
 
2575
  caminho, _ = exportar_modelo(
backend/app/services/model_repository.py CHANGED
@@ -64,11 +64,17 @@ class ModelRepositoryResolution:
64
  "repo_id": self.repo_id,
65
  "subdir": self.subdir,
66
  "degraded": self.degraded,
 
67
  "modelos_dir": str(self.modelos_dir),
68
  "signature": self.signature,
69
  }
70
 
71
 
 
 
 
 
 
72
  def _provider() -> str:
73
  if _is_hf_runtime():
74
  return "hf_dataset"
 
64
  "repo_id": self.repo_id,
65
  "subdir": self.subdir,
66
  "degraded": self.degraded,
67
+ "writable": provider_supports_write(self.provider),
68
  "modelos_dir": str(self.modelos_dir),
69
  "signature": self.signature,
70
  }
71
 
72
 
73
+ def provider_supports_write(provider: str) -> bool:
74
+ value = str(provider or "").strip().lower()
75
+ return value in {"local", "hf_dataset"}
76
+
77
+
78
  def _provider() -> str:
79
  if _is_hf_runtime():
80
  return "hf_dataset"
frontend/src/components/ElaboracaoTab.jsx CHANGED
@@ -1061,7 +1061,7 @@ export default function ElaboracaoTab({ sessionId, authUser, quickLoadRequest =
1061
  [authUser],
1062
  )
1063
  const repositorioSalvamentoDiretoHabilitado = useMemo(
1064
- () => repositorioUploadAdminHabilitado && String(repoFonteInfo?.provider || '').toLowerCase() === 'hf_dataset',
1065
  [repoFonteInfo, repositorioUploadAdminHabilitado],
1066
  )
1067
  const elaboradorMeta = useMemo(() => {
@@ -6209,7 +6209,7 @@ export default function ElaboracaoTab({ sessionId, authUser, quickLoadRequest =
6209
  !repositorioUploadAdminHabilitado
6210
  ? 'Disponivel apenas para administradores.'
6211
  : !repositorioSalvamentoDiretoHabilitado
6212
- ? 'Disponivel apenas quando o repositorio usa HF Dataset.'
6213
  : ''
6214
  }
6215
  >
@@ -6233,7 +6233,7 @@ export default function ElaboracaoTab({ sessionId, authUser, quickLoadRequest =
6233
  ? 'Salvar no reposit贸rio fica dispon铆vel apenas para administradores.'
6234
  : repositorioSalvamentoDiretoHabilitado
6235
  ? `Salvamento direto habilitado. ${repoFonteModelos || ''}`.trim()
6236
- : 'Salvar no reposit贸rio fica desabilitado na vers茫o local.'}
6237
  </div>
6238
  {repositorioSaveStatus ? <div className="section1-empty-hint export-model-status">{repositorioSaveStatus}</div> : null}
6239
  </SectionBlock>
 
1061
  [authUser],
1062
  )
1063
  const repositorioSalvamentoDiretoHabilitado = useMemo(
1064
+ () => repositorioUploadAdminHabilitado && Boolean(repoFonteInfo?.writable),
1065
  [repoFonteInfo, repositorioUploadAdminHabilitado],
1066
  )
1067
  const elaboradorMeta = useMemo(() => {
 
6209
  !repositorioUploadAdminHabilitado
6210
  ? 'Disponivel apenas para administradores.'
6211
  : !repositorioSalvamentoDiretoHabilitado
6212
+ ? 'Disponivel apenas quando o repositorio configurado permite gravacao.'
6213
  : ''
6214
  }
6215
  >
 
6233
  ? 'Salvar no reposit贸rio fica dispon铆vel apenas para administradores.'
6234
  : repositorioSalvamentoDiretoHabilitado
6235
  ? `Salvamento direto habilitado. ${repoFonteModelos || ''}`.trim()
6236
+ : 'Salvar no reposit贸rio fica desabilitado para a fonte configurada.'}
6237
  </div>
6238
  {repositorioSaveStatus ? <div className="section1-empty-hint export-model-status">{repositorioSaveStatus}</div> : null}
6239
  </SectionBlock>