> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Télécharger un artifact à partir d’un registre

> Télécharger un artifact lié à une collection de W&B Registry en construisant son chemin et à l’aide du SDK Python.

Utilisez le W\&B Python SDK pour télécharger un artifact lié à un registre. Pour télécharger et utiliser un artifact, vous devez connaître le nom du registre, le nom de la collection, ainsi que l’alias ou l’index de la version de l’artifact que vous souhaitez télécharger.

Une fois que vous connaissez les propriétés de l’artifact, vous pouvez [construire le chemin vers l’artifact lié](#construct-path-to-linked-artifact) et télécharger l’artifact. Vous pouvez également [copier-coller un extrait de code pré-généré](#copy-and-paste-pre-generated-code-snippet) depuis le W\&B App UI pour télécharger un artifact lié à un registre.

<div id="construct-path-to-linked-artifact">
  ## Construire le chemin vers l'artifact lié
</div>

Pour télécharger un artifact lié à un registre, vous devez connaître le chemin de cet artifact lié. Ce chemin se compose du nom du registre, du nom de la collection, ainsi que de l'alias ou de l'index de la version de l'artifact à laquelle vous souhaitez accéder.

Une fois que vous disposez du registre, de la collection et de l'alias ou de l'index de la version de l'artifact, vous pouvez construire le chemin vers l'artifact lié à l'aide du modèle de chaîne suivant :

```python theme={null}
# Nom de l'artifact avec l'index de version spécifié
f"wandb-registry-{REGISTRY}/{COLLECTION}:v{INDEX}"

# Nom de l'artifact avec l'alias spécifié
f"wandb-registry-{REGISTRY}/{COLLECTION}:{ALIAS}"
```

Remplacez les valeurs entre accolades `{}` par le nom du registre, de la collection et de l'alias ou de l'index de la version de l'artifact à laquelle vous souhaitez accéder.

Utilisez la méthode `wandb.Run.use_artifact()` pour accéder à l'artifact et en télécharger le contenu une fois que vous disposez du chemin de l'artifact lié. L'extrait de code suivant montre comment utiliser et télécharger un artifact lié à W\&B Registry. Veillez à remplacer les valeurs entre `<>` par les vôtres :

```python theme={null}
import wandb

REGISTRY = '<registry_name>'
COLLECTION = '<collection_name>'
ALIAS = '<artifact_alias>'

with wandb.init(entity = '<team_name>', project = '<project_name>')  as run:
    artifact_name = f"wandb-registry-{REGISTRY}/{COLLECTION}:{ALIAS}"
    # artifact_name = '<artifact_name>' # Copiez-collez le nom complet indiqué dans l’interface utilisateur de W&B Registry
    fetched_artifact = run.use_artifact(artifact_or_name = artifact_name)  
    download_path = fetched_artifact.download()  
```

La méthode `wandb.Run.use_artifact()` crée à la fois un [run](/fr/models/runs) et marque l'artifact que vous téléchargez comme entrée de ce run.
Le fait de marquer un artifact comme entrée d'un run permet à W\&B de suivre la traçabilité de cet artifact.

Si vous ne souhaitez pas créer de run, vous pouvez utiliser l'objet `wandb.Api()` pour accéder à l'artifact :

```python theme={null}
import wandb

REGISTRY = "<registry_name>"
COLLECTION = "<collection_name>"
VERSION = "<version>"

api = wandb.Api()
artifact_name = f"wandb-registry-{REGISTRY}/{COLLECTION}:{VERSION}"
artifact = api.artifact(name = artifact_name)
```

<details>
  <summary>Exemple : utiliser et télécharger un artifact lié à W\&B Registry</summary>

  L’exemple de code suivant montre comment un utilisateur peut télécharger un artifact lié à une collection nommée `phi3-finetuned` dans le registre **Fine-tuned Models**. L’alias de la version de l’artifact est défini sur `production`.

  ```python theme={null}
  import wandb

  TEAM_ENTITY = "product-team-applications"
  PROJECT_NAME = "user-stories"

  REGISTRY = "Fine-tuned Models"
  COLLECTION = "phi3-finetuned"
  ALIAS = 'production'

  # Initialiser un run au sein de l’équipe et du projet spécifiés
  with wandb.init(entity=TEAM_ENTITY, project = PROJECT_NAME) as run:

      artifact_name = f"wandb-registry-{REGISTRY}/{COLLECTION}:{ALIAS}"

      # Accéder à un artifact et le marquer comme entrée de votre run pour le suivi de la traçabilité
      fetched_artifact = run.use_artifact(artifact_or_name = artifact_name)  

      # Télécharger l’artifact. Renvoie le chemin vers le contenu téléchargé
      downloaded_path = fetched_artifact.download()  
  ```
</details>

Voir [`wandb.Run.use_artifact()`](/fr/models/ref/python/experiments/run#use_artifact) et [`Artifact.download()`](/fr/models/ref/python/experiments/artifact#download) dans la Référence de l’API pour les paramètres et le type de retour.

<Note>
  **Users avec une entité personnelle appartenant à plusieurs organisations**

  Les Users disposant d’une entité personnelle et appartenant à plusieurs organisations doivent également spécifier soit le nom de leur organisation, soit utiliser une entité d’équipe lorsqu’ils accèdent à des artifacts liés à un registre.

  ```python theme={null}
  import wandb

  REGISTRY = "<registry_name>"
  COLLECTION = "<collection_name>"
  VERSION = "<version>"

  # Veillez à utiliser votre entité d’équipe pour instancier l’API
  api = wandb.Api(overrides={"entity": "<team-entity>"})
  artifact_name = f"wandb-registry-{REGISTRY}/{COLLECTION}:{VERSION}"
  artifact = api.artifact(name = artifact_name)

  # Construire le chemin
  api = wandb.Api()
  artifact_name = f"wandb-registry-{REGISTRY}/{COLLECTION}:{VERSION}"
  artifact = api.artifact(name = artifact_name)
  ```
</Note>

<div id="copy-and-paste-pre-generated-code-snippet">
  ## Copier-coller l’extrait de code pré-généré
</div>

W\&B génère un extrait de code que vous pouvez copier-coller dans votre script Python, notebook ou terminal pour télécharger un artifact associé à un registre.

1. Accédez à W\&B Registry.
2. Sélectionnez le nom du registre qui contient votre artifact.
3. Sélectionnez le nom de la collection.
4. Dans la liste des versions d’artifact, sélectionnez la version à laquelle vous souhaitez accéder.
5. Sélectionnez l’onglet **Utilisation**.
6. Copiez l’extrait de code affiché dans la section **API d’utilisation**.
7. Collez l’extrait de code dans votre script Python, notebook ou terminal.
