Aller au contenu

SDK Synth

Le SDK Synth offre un typage sûr. Il fournit des groupes d'opérations API, des corps de requête et des réponses typés. Un vérificateur de types peut détecter des champs non valides avant l'appel à l'API.

Installer le SDK

Après sa publication, installez le SDK avec :

pip install pleias-synth

Initialiser le client

Créez le client API authentifié dans une fonction asynchrone. Définissez SYNTH_BASE_URL, SYNTH_TOKEN et SYNTH_ORG avant d'exécuter le code.

import os

from synth_client import AuthenticatedClient, SynthApi

client = AuthenticatedClient(
    base_url=os.environ["SYNTH_BASE_URL"],
    token=os.environ["SYNTH_TOKEN"],
)
api = SynthApi(client)
org = os.environ["SYNTH_ORG"]

Créer un jeu de données

Créez un jeu de données avant de créer une génération. La réponse contient l'identifiant du jeu de données.

response = await api.datasets.create_dataset(
    org=org,
    body={
        "name": "my-dataset",
        "description": "Dataset created with the Synth SDK.",
    },
)

print(response.parsed)

Créer une génération

Utilisez l'identifiant de la réponse de création du jeu de données. Placez le corps de la génération directement dans l'appel à l'API.

response = await api.generations.create_generation(
    org=org,
    dataset_id=dataset_id,
    body={
        "type": ["general_purpose"],
        "rowCount": 100,
        "languages": ["EN"],
        "domains": ["example.com"],
    },
)

print(response.parsed)

Démarrer une génération

Utilisez l'identifiant de la réponse de création de la génération pour démarrer la tâche.

response = await api.generations.start_generation(
    org=org,
    dataset_id=dataset_id,
    gen_id=generation_id,
)

print(response.parsed)

Télécharger une génération terminée

Attendez que la génération ait l'état completed. Listez les fichiers de sortie du jeu de données pour trouver l'identifiant du fichier de sortie de la génération.

response = await api.outputs.list_dataset_outputs(
    org=org,
    dataset_id=dataset_id,
)

print(response.parsed)

Utilisez l'identifiant (id) du fichier de sortie comme valeur de output_file_id. Téléchargez le contenu du fichier et écrivez-le dans un fichier Parquet local.

from http import HTTPStatus
from pathlib import Path

response = await api.outputs.download_dataset_output(
    org=org,
    dataset_id=dataset_id,
    output_file_id=output_file_id,
)

if response.status_code != HTTPStatus.OK:
    raise RuntimeError(response.content.decode(errors="replace"))

Path("generation-output.parquet").write_bytes(response.content)