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

> Téléchargez et utilisez des artifacts provenant de plusieurs projets.

# Télécharger et utiliser des artifacts

Téléchargez et utilisez un artifact déjà stocké sur le serveur W\&B, ou créez un objet artifact et transmettez-le afin de le dédupliquer si nécessaire.

<h2 id="download-and-use-an-artifact-stored-on-wb">
  Télécharger et utiliser un artifact stocké sur W\&B
</h2>

Téléchargez un artifact en tant qu’entrée de run suivie lorsque le run en dépend, ou récupérez-le directement pour les flux de travail qui ne nécessitent pas de suivi de la traçabilité.

<Info>
  Les références dont le schéma est pris en charge par W\&B sont téléchargées de la même manière que les fichiers d’artifact. Pour plus d’informations, voir [Suivre des fichiers externes](/fr/products/wandb/artifacts/track-external-files).
</Info>

Vous pouvez télécharger tous les fichiers d’un artifact ou seulement certains d’entre eux :

* Utilisez [`Artifact.download()`](/fr/products/wandb/ref/python/experiments/artifact#download) pour télécharger tous les fichiers.
* Utilisez [`Artifact.get_entry()`](/fr/products/wandb/ref/python/experiments/artifact#get_entry) pour récupérer une entrée spécifique, puis appelez `.download()` pour la télécharger.

<Tabs>
  <Tab title="Suivre l’entrée du run">
    Utilisez `wandb.Run.use_artifact()` pour télécharger un artifact dans le cadre d’un run W\&B. W\&B enregistre l’artifact comme entrée du run.

    1. Importez le SDK Python W\&B et initialisez un [run](/fr/products/wandb/ref/python/experiments/run) W\&B.
    2. Récupérez la version de l’artifact avec `wandb.Run.use_artifact()`.
    3. Téléchargez tous les fichiers ou un fichier spécifique à partir de l’objet `Artifact` renvoyé.

    ```python theme={"system"}
    import wandb    

    with wandb.init(project="project-name", job_type="job-type") as run:
        # Indiquer l’artifact à utiliser. Le format est "name:alias"
        artifact = run.use_artifact("bike-dataset:latest")

        # Télécharger l’artifact entier
        datadir = artifact.download()

        # Télécharger un fichier spécifique
        entry = artifact.get_entry("bike.png")
        file_path = entry.download() # télécharge uniquement bike.png
    ```
  </Tab>

  <Tab title="Récupérer directement">
    Utilisez l’API publique pour télécharger un artifact sans créer de run ni enregistrer de relation d’entrée avec un run.

    1. Importez le SDK Python W\&B et créez un objet client avec `wandb.Api()`.
    2. Récupérez la version de l’artifact avec `wandb.Api.artifact()`.
    3. Téléchargez tous les fichiers ou un fichier spécifique à partir de l’objet `Artifact` renvoyé.

    Indiquez le chemin de l’artifact au format `entity/project/artifact:alias`.

    ```python theme={"system"}
    import wandb

    api = wandb.Api()
    artifact = api.artifact("entity/project/artifact:alias")
    artifact.download()
    ```
  </Tab>

  <Tab title="CLI W&B">
    Utilisez la commande `wandb artifact get` pour télécharger un artifact depuis le serveur W\&B.

    ```
    $ wandb artifact get project/artifact:alias --root mnist/
    ```
  </Tab>
</Tabs>

<h2 id="partially-download-an-artifact">
  Télécharger partiellement un artifact
</h2>

Vous pouvez également télécharger une partie seulement d’un artifact, basée sur un préfixe. Utilisez le paramètre `path_prefix=` (`wandb.Artifact.download(path_prefix=)`) pour télécharger un seul fichier ou le contenu d’un sous-dossier.

```python theme={"system"}
with wandb.init(project="project-name", job_type="job-type") as run:
    # Indiquez l’artifact à utiliser. Format : "nom:alias"
    artifact = run.use_artifact("bike-dataset:latest")

    # Téléchargez un fichier ou un sous-dossier précis
    artifact.download(path_prefix="bike.png") # télécharge uniquement bike.png
```

Vous pouvez également télécharger les fichiers d’un répertoire donné. Pour ce faire, indiquez ce répertoire dans le paramètre `path_prefix=`. À la suite de l’extrait de code précédent :

```python theme={"system"}
# télécharge les fichiers du répertoire images/bikes
artifact.download(path_prefix="images/bikes/") 
```

<h2 id="verify-downloaded-artifact-files">
  Vérifier les fichiers d’artifact téléchargés
</h2>

Après avoir téléchargé un artifact, appelez `wandb.Artifact.verify()` pour vérifier que les fichiers locaux sur le disque correspondent au manifeste de l’artifact.

L’exemple suivant télécharge un artifact au sein d’un run, puis vérifie les fichiers téléchargés :

```python theme={"system"}
import wandb

with wandb.init(project="project-name", job_type="job-type") as run:
    artifact = run.use_artifact("entity/project/my-dataset:latest")
    artifact_dir = artifact.download()
    artifact.verify(artifact_dir)
```

[`wandb.Artifact.verify()`](/fr/products/wandb/ref/python/experiments/artifact#method-artifact-verify) recalcule les sommes de contrôle des fichiers locaux et les compare à celles du manifeste de l’artifact. La vérification échoue si un fichier est manquant ou modifié, ou si le répertoire contient des fichiers qui ne font pas partie de l’artifact.

<Note>
  **Considérations relatives à la vérification des artifacts**

  * `wandb.Artifact.verify()` ne vérifie pas les [entrées de référence](/fr/products/wandb/artifacts/track-external-files).

  * Pour utiliser `wandb.Artifact.verify()` sur des artifacts créés avec `digest_algorithm="XXH128"`, vous devez disposer de la version 0.29.0 ou ultérieure du SDK Python W\&B. Les versions antérieures du SDK ne prennent pas en charge les entrées de manifeste XXH128 : la vérification échoue donc.
</Note>

<h2 id="use-an-artifact-from-a-different-project">
  Utiliser un artifact provenant d’un autre projet
</h2>

Pour référencer un artifact, indiquez son nom ainsi que le nom de son projet. Vous pouvez également référencer des artifacts appartenant à d’autres entities en indiquant le nom de l’artifact accompagné du nom de son entity.

L’exemple de code suivant montre comment interroger un artifact d’un autre projet afin de l’utiliser comme entrée du run W\&B en cours.

```python theme={"system"}
with wandb.init(project="project-name", job_type="job-type") as run:
    # Récupérer auprès de W&B un artifact d’un autre projet et le marquer
    # comme entrée de ce run.
    artifact = run.use_artifact("my-project/artifact:alias")

    # Utiliser un artifact d’une autre entity et le marquer comme entrée
    # de ce run.
    artifact = run.use_artifact("my-entity/my-project/artifact:alias")
```

<h2 id="construct-and-use-an-artifact-simultaneously">
  Construire et utiliser un artifact simultanément
</h2>

Vous pouvez construire et utiliser un artifact en même temps. Créez un objet artifact et transmettez-le à use\_artifact. L’artifact est alors créé dans W\&B s’il n’existe pas encore. L’API [`wandb.Run.use_artifact()`](/fr/products/wandb/ref/python/experiments/run#use_artifact) est idempotente : vous pouvez donc l’appeler autant de fois que vous le souhaitez.

```python theme={"system"}
import wandb

with wandb.init(project="project-name", job_type="job-type") as run:
    artifact = wandb.Artifact("reference model")
    artifact.add_file("model.h5")
    run.use_artifact(artifact)
```

Pour en savoir plus sur la construction d’un artifact, consultez [Construire un artifact](/fr/products/wandb/artifacts/construct-an-artifact).
