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)