Hub documentation

Conjuntos de dados com controle de acesso

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Conjuntos de dados com controle de acesso

Para oferecer mais controle sobre o uso dos conjuntos de dados, o Hub permite que os autores de datasets habilitem access requests para seus datasets. Quando habilitado, os usuários devem enviar uma solicitação para acessar os arquivos do dataset, o que compartilha suas informações do Hugging Face (nome de usuário e endereço de e-mail) com os autores do dataset, a menos que os autores tenham optado por não coletá-las. Os autores de datasets também podem adicionar campos personalizados. Um dataset com access requests habilitado é chamado de gated dataset. As solicitações de acesso são sempre concedidas a usuários individuais, e não a organizações inteiras. Um caso de uso comum de gated datasets é fornecer acesso a datasets de pesquisa inicial antes da liberação mais ampla.

Gerenciar conjuntos de dados restritos como autor do conjunto de dados

Para habilitar solicitações de acesso, acesse a página de configurações do dataset. Por padrão, o dataset não é restrito. Clique em Enable Access request no canto superior direito.

Por padrão, o acesso ao conjunto de dados é concedido automaticamente ao usuário quando ele solicita. Isso é chamado de aprovação automática. Nesse modo, qualquer usuário pode acessar seu conjunto de dados assim que compartilhar suas informações pessoais com você.

Se você deseja aprovar manualmente quais usuários podem acessar seu conjunto de dados, você deve configurá-lo como aprovação manual. Quando esse é o caso, você notará mais opções:

  • Adicionar acesso permite que você pesquise um usuário e conceda a ele acesso, mesmo que ele não tenha solicitado.
  • Frequência de notificação permite configurar quando você será notificado quando novos usuários solicitarem acesso. Pode ser definido como uma vez por dia ou em tempo real. Por padrão, um e-mail é enviado para seu endereço de e-mail principal. Para conjuntos de dados hospedados sob uma organização, os e-mails são enviados por padrão para os 5 primeiros administradores da organização. Em ambos os casos (usuário ou organização), você pode definir um endereço de e-mail diferente no campo E-mail de notificações.

Revisar solicitações de acesso

Quando as solicitações de acesso são habilitadas, você tem controle total sobre quem pode acessar seu dataset ou não, independentemente de o modo de aprovação ser manual ou automático. Você pode revisar e gerenciar solicitações tanto pela interface do usuário quanto pela API.

A partir da interface

Você pode revisar quem tem acesso ao seu dataset com controle de acesso na página de configurações dele, clicando no botão Review access requests. Isso abrirá um modal com 3 listas de usuários:

  • pendente: a lista de usuários aguardando aprovação para acessar seu conjunto de dados. Essa lista fica vazia, a menos que você tenha selecionado aprovação manual. Você pode Aceitar ou Rejeitar a solicitação. Se a solicitação for rejeitada, o usuário não poderá acessar seu conjunto de dados nem solicitar acesso novamente.
  • aceitos: a lista completa de usuários com acesso ao seu conjunto de dados. Você pode escolher Rejeitar o acesso a qualquer momento para qualquer usuário, independentemente de o modo de aprovação ser manual ou automático. Você também pode Cancelar a aprovação, o que moverá o usuário para a lista pendente.
  • rejeitados: a lista de usuários que você rejeitou manualmente. Esses usuários não podem acessar seus conjuntos de dados. Se eles forem para o repositório do seu conjunto de dados, verão a mensagem Sua solicitação de acesso a este repositório foi rejeitada pelos autores do repositório.

Via a API

Você pode automatizar a aprovação de solicitações de acesso usando a API. Você deve passar um token com acesso write ao repositório restrito. Para gerar um token, acesse suas configurações de usuário.

MétodoURIDescriçãoCabeçalhosPayload
GET/api/datasets/{repo_id}/user-access-request/{status}Liste as solicitações com o status dado: pending, accepted, rejected ou reset. Cada solicitação tem um requestId e um user se o nome de usuário foi coletado.{"authorization": "Bearer $token"}
POST/api/datasets/{repo_id}/user-access-request/handleAltere o status de uma solicitação de acesso para status.{"authorization": "Bearer $token"}{"status": "accepted"/"rejected"/"pending"/"reset", "user": "username" (or "requestId": "request id"), "rejectionReason": "Optional rejection reason that will be visible to the user (max 200 characters).", "resetReason": "Optional reset reason that will be included in the email sent to the user (max 200 characters)."}
POST/api/datasets/{repo_id}/user-access-request/grantPermitir que um usuário específico acesse seu repositório.{"authorization": "Bearer $token"}{"user": "username"}

A URL base para os endpoints HTTP acima é https://huggingface.co.

Definir uma solicitação como reset revoga a decisão anterior e pede ao usuário que recomece: ele perde o acesso ao conjunto de dados, recebe um e-mail notificando que sua solicitação foi redefinida (incluindo o resetReason opcional) e é solicitado a concordar com os termos de acesso e enviar uma nova solicitação na próxima vez que visitar a página do conjunto de dados. Isso difere de pending, que mantém a solicitação existente como está e simplesmente a devolve à fila de revisão, e de rejected, que impede o usuário de solicitar acesso novamente.

NOVO! Esses endpoints agora são oficialmente suportados em nosso cliente Python huggingface_hub. Liste as solicitações de acesso ao seu dataset com list_pending_access_requests, list_accepted_access_requests e list_rejected_access_requests. Você também pode aceitar, cancelar e rejeitar solicitações de acesso com accept_access_request, cancel_access_request, reject_access_request. Por fim, você pode conceder acesso a um usuário com grant_access.

Baixar relatório de acesso

Você pode baixar um relatório de todas as solicitações de acesso para um conjunto de dados restrito com o botão download user access report. Clique nele para baixar um arquivo json com uma lista de usuários. Para cada entrada, você tem:

  • requestId: o id da solicitação.
  • user: o ID do usuário. Exemplo: julien-c.
  • fullname: nome do usuário no Hub. Exemplo: Julien Chaumond.
  • status: status da solicitação. Pode ser "pending", "accepted", "rejected" ou "reset".
  • email: e-mail do usuário.
  • time: data e hora em que o usuário fez a solicitação inicialmente.
  • reviewedAt: data e hora em que a solicitação foi aceita ou rejeitada. Não definido para solicitações pendentes.

user, fullname e email estão presentes apenas se você optou por coletá-los quando a solicitação foi feita. As solicitações sempre podem ser identificadas pelo seu requestId.

Escolha quais dados de perfil o Hugging Face compartilha com você

Por padrão, o Hugging Face compartilha o nome de usuário e o endereço de e-mail principal do solicitante com você. Você é responsável por lidar com qualquer informação pessoal identificável (PII) e por divulgar como você a trata, em conformidade com as leis aplicáveis (por exemplo, incluindo um link para a sua própria Política de Privacidade). Você pode alterar isso nas opções de controle de acesso na página de configurações do dataset:

  • Coletar nome de usuário: quando desmarcado, você não receberá o nome de usuário do Hugging Face, o nome completo e o avatar do solicitante. As solicitações são listadas com um id de solicitação e podem ser aceitas ou rejeitadas como qualquer outra solicitação.
  • Coletar e-mail: coleta o e-mail do perfil do solicitante no Hugging Face. Exige Coletar nome de usuário.

Você ainda recebe as respostas dos seus campos de formulário personalizados, portanto, pode solicitar quaisquer detalhes de contato que precisar lá. Essas configurações se aplicam apenas a novas solicitações: as solicitações existentes mantêm as configurações que estavam em vigor no momento em que foram feitas.

Para conjuntos de dados em uma Gating Group Collection, essas opções são configuradas na coleção.

Personalize as informações solicitadas

Por padrão, os usuários que acessarem seu dataset com controle de acesso serão solicitados a compartilhar suas informações da Hugging Face (e-mail e nome de usuário, a menos que você tenha desativado a coleta delas) ao clicar no botão Agree and send request to access repo.

Se você deseja solicitar mais informações do usuário para fornecer acesso, pode configurar campos adicionais. Essas informações ficarão acessíveis na aba Configurações. Para isso, adicione uma propriedade extra_gated_fields ao seu metadados do cartão do dataset contendo uma lista de pares chave/valor. A chave é o nome do campo e o valor é seu tipo ou um objeto com um campo type. A lista de tipos de campo é:

  • text: um campo de texto de linha única.
  • checkbox: um campo de seleção.
  • date_picker: um campo seletor de data.
  • country: um menu suspenso de países. A lista de países é baseada no padrão ISO 3166-1 alpha-2.
  • select: um menu suspenso com uma lista de opções. A lista de opções é definida no campo options. Exemplo: options: ["option 1", "option 2", {label: "option3", value: "opt3"}].

Por fim, você também pode personalizar a mensagem exibida ao usuário com o campo extra extra_gated_prompt.

Aqui está um exemplo de formulário de solicitação personalizado em que o usuário é solicitado a fornecer o nome da empresa e o país e a confirmar que o conjunto de dados é para uso não comercial apenas.

---
extra_gated_prompt: "You agree to not use the dataset to conduct experiments that cause harm to human subjects."
extra_gated_fields:
  Company: text
  Country: country
  Specific date: date_picker
  I want to use this dataset for:
    type: select
    options: 
      - Research
      - Education
      - label: Other
        value: other
  I agree to use this dataset for non-commercial use ONLY: checkbox
---

Em alguns casos, você também pode querer modificar o texto padrão no título, na descrição e no botão do gate. Para esses casos de uso, você pode modificar extra_gated_heading, extra_gated_description e extra_gated_button_content da seguinte forma:

---
extra_gated_heading: "Acknowledge license to accept the repository"
extra_gated_description: "Our team may take 2-3 days to process your request"
extra_gated_button_content: "Acknowledge license"
---

Acesso à porta para membros da organização

Para conjuntos de dados com controle de acesso hospedados sob uma organização, você também pode exigir que os próprios membros da organização enviem uma solicitação de acesso. Na página de configurações do conjunto de dados, nas opções de controle de acesso, ative Também controlar o acesso para membros de {org}.

Quando essa opção está ativada, os membros da organização devem solicitar acesso ao conjunto de dados como qualquer outro usuário. Os seguintes papéis ignoram a solicitação e mantêm acesso direto:

  • Administradores da organização
  • O usuário que criou o repositório
  • admins do Resource Group, quando o dataset pertence a um Resource Group

Todos os outros membros devem passar pelo fluxo de solicitação de acesso. Isso inclui membros com o papel de organização read, contributor ou write, e membros do Resource Group sem o papel de admin.

Gerenciar conjuntos de dados restritos como organização (Team & Enterprise)

Assinantes do plano Team & Enterprise podem criar uma Gating Group Collection para conceder (ou negar) acesso a todos os modelos e conjuntos de dados de uma coleção de uma só vez.

Mais informações sobre Gating Group Collections podem ser encontradas em nossa documentação dedicada.

Acessar conjuntos de dados restritos como usuário

Como usuário, se você deseja usar um conjunto de dados restrito, precisará solicitar acesso a ele. Isso significa que você deve estar conectado a uma conta de usuário do Hugging Face.

Solicitar acesso só pode ser feito pelo seu navegador. Acesse o conjunto de dados no Hub e você será solicitado a compartilhar suas informações:

Ao clicar em Concordo, você concorda em compartilhar as informações que inserir no formulário de solicitação (quando aplicável) com os autores do conjunto de dados, bem como seu nome de usuário e endereço de e-mail do Hugging Face, caso os autores tenham optado por coletá-los. Para ajudar os autores do conjunto de dados a decidir se concederão a você o acesso, tente preencher os campos do formulário da forma mais completa possível.

Uma vez que a solicitação de acesso é enviada, há duas possibilidades. Se o mecanismo de aprovação for automático, você obtém acesso imediato aos arquivos do conjunto de dados. Caso contrário, as solicitações precisam ser aprovadas manualmente pelos autores, o que pode levar mais tempo.

Os autores do conjunto de dados têm controle total sobre o acesso ao conjunto de dados. Em particular, eles podem decidir a qualquer momento bloquear seu acesso ao conjunto de dados sem aviso prévio, independentemente do mecanismo de aprovação ou de sua solicitação já ter sido aprovada.

Baixar arquivos

Para baixar arquivos de um conjunto de dados restrito, você precisa estar autenticado. No navegador, isso é automático, desde que você esteja conectado com sua conta. Se estiver usando um script, será necessário fornecer um token de usuário. No ecossistema Python do Hugging Face (transformers, diffusers, datasets, etc.), você pode fazer login na sua máquina usando a biblioteca huggingface_hub e executando no seu terminal:

hf auth login

Alternativamente, você pode fazer login programaticamente usando login() em um notebook ou script:

>>> from huggingface_hub import login
>>> login()

Você também pode fornecer o parâmetro token para a maioria dos métodos de carregamento nas bibliotecas (from_pretrained, hf_hub_download, load_dataset, etc.), diretamente dos seus scripts.

Para mais detalhes sobre como fazer login, consulte o guia de login.

Restringindo o Acesso para Usuários da UE

Para conjuntos de dados com controle de acesso, você pode adicionar uma camada adicional de controle de acesso para restringir especificamente usuários de países da União Europeia. Isso é útil se a licença ou os termos de uso do seu conjunto de dados proíbem sua distribuição na UE.

Para habilitar isso, adicione a propriedade extra_gated_eu_disallowed: true aos metadados do cartão do seu dataset.

Importante: Este recurso será ativado apenas se o seu conjunto de dados já for restrito. Se gated: false ou a propriedade não estiver definida, essa restrição não será aplicada.

---
license: mit
gated: true
extra_gated_eu_disallowed: true
---

O sistema identifica a localização de um usuário com base em seu endereço IP.

Update on GitHub