> ## 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 et utiliser des Artifacts à partir 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 pour déduplication si nécessaire.

<Note>
  Les membres de l’équipe disposant d’une licence Models **Viewer** ne peuvent pas télécharger d’artifacts.
</Note>

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

Téléchargez et utilisez un artifact stocké dans W\&B, à l’intérieur ou à l’extérieur d’un W\&B Run. Utilisez l’API publique ([`wandb.Api`](/fr/models/ref/python/public-api/api)) pour exporter (ou mettre à jour) des données déjà enregistrées dans W\&B.

<Tabs>
  <Tab title="Pendant un run">
    Commencez par importer le W\&B Python SDK. Ensuite, créez un W\&B [Run](/fr/models/ref/python/experiments/run) :

    ```python theme={null}
    import wandb

    with wandb.init(project="<example>", job_type="<job-type>") as run:
        # Voir l'étape suivante
    ```

    Indiquez l’artifact que vous souhaitez utiliser avec la méthode [`wandb.Run.use_artifact()`](/fr/models/ref/python/experiments/run#use_artifact). Cette méthode renvoie un objet run. Dans l’extrait de code suivant, un artifact nommé `'bike-dataset'` avec l’alias `'latest'` est spécifié :

    ```python theme={null}
    # Indiquer l'artifact à utiliser. Le format est "name:alias"
    artifact = run.use_artifact("bike-dataset:latest")
    ```

    Utilisez l’objet renvoyé pour télécharger l’intégralité du contenu de l’artifact :

    ```python theme={null}
    # Télécharger l'artifact entier
    datadir = artifact.download()
    ```

    Vous pouvez également passer un chemin au paramètre root pour télécharger le contenu de l’artifact dans un répertoire spécifique.

    Utilisez la méthode [`wandb.Artifact.get_entry()`](/fr/models/ref/python/experiments/artifact#get_entry) pour télécharger uniquement un sous-ensemble de fichiers :

    ```python theme={null}
    # Télécharger un fichier spécifique
    entry = artifact.get_entry(name)
    ```

    En regroupant le tout, l’exemple de code complet ressemble à ceci :

    ```python theme={null}
    import wandb    

    with wandb.init(project="<example>", 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")
    ```

    Cela récupère uniquement le fichier situé au chemin `name`. Cette méthode renvoie un objet `Entry` avec les méthodes suivantes :

    * `Entry.download`: télécharge le fichier de l’artifact au chemin `name`
    * `Entry.ref`: si `add_reference` a stocké l’entrée comme référence, renvoie l’URI
  </Tab>

  <Tab title="En dehors d’un run">
    Commencez par importer le SDK W\&B. Ensuite, créez un objet artifact à partir de la classe API publique. Fournissez l’entité, le projet, l’artifact et l’alias associés à cet artifact :

    ```python theme={null}
    import wandb

    api = wandb.Api()
    artifact = api.artifact("entity/project/artifact:alias")
    ```

    Utilisez l’objet renvoyé pour télécharger le contenu de l’artifact :

    ```python theme={null}
    artifact.download()
    ```

    Vous pouvez également passer un chemin au paramètre `root` pour télécharger le contenu de l’artifact dans un répertoire spécifique. Pour plus d'informations, voir le [Guide de référence du SDK Python](/fr/models/ref/python/experiments/artifact#download).
  </Tab>

  <Tab title="W&B CLI">
    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>

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

Vous pouvez télécharger, si vous le souhaitez, une partie d’un artifact à l’aide d’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={null}
with wandb.init(project="<example>", 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 un fichier spécifique ou un sous-dossier
    artifact.download(path_prefix="bike.png") # télécharge uniquement bike.png
```

Vous pouvez aussi télécharger des fichiers depuis un répertoire donné. Pour ce faire, indiquez ce répertoire à l’aide du paramètre `path_prefix=`. En reprenant à partir de l’extrait de code précédent :

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

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

Spécifiez le nom de l’artifact ainsi que celui du projet pour faire référence à un artifact. Vous pouvez également faire référence à des artifacts d’autres entités en indiquant le nom de l’artifact avec le nom de l’entité.

L’exemple de code suivant montre comment récupérer un artifact d’un autre projet comme entrée pour le run W\&B en cours.

```python theme={null}
with wandb.init(project="<example>", job_type="<job-type>") as run:
    # Récupérer un artifact W&B d'un autre projet et le marquer
    # comme entrée pour ce run.
    artifact = run.use_artifact("my-project/artifact:alias")

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

```

<div id="construct-and-use-an-artifact-simultaneously">
  ### Construire et utiliser un artifact en même temps
</div>

Construisez et utilisez un artifact en même temps. Créez un objet artifact et passez-le à use\_artifact. Cela crée un artifact dans W\&B s'il n'existe pas encore. L'API [`wandb.Run.use_artifact()`](/fr/models/ref/python/experiments/run#use_artifact) est idempotente, vous pouvez donc l'appeler autant de fois que vous le souhaitez.

```python theme={null}
import wandb

with wandb.init(project="<example>", 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 création d’un artifact, voir [Construire un artifact](/fr/models/artifacts/construct-an-artifact/).
