Zum Hauptinhalt springen
Kapitel des Trainingsleitfadens Alle Dokumentationen

Python-SDK-Referenz und Befehle

Sitzungsmethoden von TrainingClient und Methoden von TrainingProject, Konstruktoroptionen, Datensätze und ausführbare Beispiele.

Befehle und Code bleiben in allen Sprachen auf Englisch. Ersetzen Sie GROSSGESCHRIEBENE Platzhalter durch Werte Ihres eigenen Kontos und bezahlten Auftrags. Fügen Sie echte Schlüssel nicht in gemeinsam genutzte Notebooks oder Protokolle ein.

Python-Schnittstellen für Training

TrainingClient bleibt verfügbar; TrainingProject verwaltet lokale Projektläufe.
  1. TrainingClient HTTPS und API-Schlüssel mit eingeschränktem Geltungsbereich
  2. Sitzungsmethoden Öffnen, vorbereiten und prüfen
  3. TrainingProject Planen und lokal trainieren
  4. Ergebnis Lokales Artefakt und Berichte

TrainingClient: HTTPS und API-Schlüssel mit eingeschränktem Geltungsbereich. Sitzungsmethoden: Öffnen, vorbereiten und prüfen. TrainingProject: Planen und lokal trainieren. Ergebnis: Lokales Artefakt und Berichte

Client sicher erstellen

TrainingClient akzeptiert einen API-Schlüssel, eine HTTPS-base_url, einen endlichen positiven Timeout und max_get_retries von 0 bis 5. Der Standard-Timeout beträgt 60 Sekunden, die standardmäßige Anzahl der GET-Wiederholungen ist 2. Weiterleitungen werden abgelehnt. allow_loopback ist ausschließlich für ausdrücklich angegebene lokale Tests gedacht und rechtfertigt niemals, einen echten Schlüssel über eine unsichere Remote-Verbindung zu senden.

  • Code und Namen von Umgebungsvariablen bleiben in allen Sprachversionen auf Englisch.
  • TrainingClient bleibt für bestehende Sitzungsintegrationen verfügbar.
  • Für lokale Projektläufe mit Schema verwenden Sie TrainingProject und fpai-training.
Beispiel · bash
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
# Install the GPU-compatible PyTorch build for your runtime first.
python -m pip install 'fusionpointai-training[train] @ https://fusionpointai.com/downloads/fusionpointai-training.zip'
# API-only use without local training dependencies:
# python -m pip install 'fusionpointai-training @ https://fusionpointai.com/downloads/fusionpointai-training.zip'
Beispiel · python
import os
from fusionpointai_training import TrainingClient

client = TrainingClient(
    api_key=os.environ["FUSIONPOINTAI_API_KEY"],
    base_url="https://fusionpointai.com/api/v1/training",
    timeout=60.0,
    max_get_retries=2,
)
# transport optionally accepts an httpx transport for controlled integrations.
# Never enable insecure remote HTTP to work around a TLS error.
Beispiel · python
from importlib.metadata import PackageNotFoundError, version
from importlib.util import find_spec

for package in ("fusionpointai-training", "httpx", "torch", "transformers", "peft"):
    try:
        print(f"{package}=={version(package)}")
    except PackageNotFoundError:
        print(f"{package}: not installed")

for module in ("torch", "transformers", "peft", "safetensors"):
    print(f"{module} importable:", find_spec(module) is not None)
# The train extra includes optional model-training dependencies; inspect before use.

Öffentliche Methoden verwenden

TrainingClient bietet Sitzungsmethoden wie open_session, prepare_session, get_session, download_dataset, post_event, train, complete und cancel. TrainingProject lädt Modell- und Laufparameter aus der Projektkonfiguration und verwaltet Plan, Training, Evaluation, Export und Wiederherstellung. Die unten aufgeführten Signaturen entsprechen dem jeweiligen Vertrag.

  • reference_model_id ist ein Nur-Schlüsselwort-Argument und muss eine positive Ganzzahl, kein boolescher Wert sein.
  • max_requests begrenzt Vorbereitungsanfragen, nicht die Anzahl der Trainingsepochen.
  • TrainingClient.train erwartet eine Sitzungs-ID; TrainingProject bezieht den Modellpfad aus der Projektkonfiguration.
Beispiel · python
from fusionpointai_training.client import DatasetManifest

# Continue with an authenticated client and an owned session.
ready = client.prepare_session(session["id"])
for item in ready["datasets"]:
    manifest = DatasetManifest(
        split=item["split"], sha256=item["sha256"],
        bytes=item["bytes"], rows=item["rows"],
    )
    rows = client.download_dataset(ready["id"], manifest)
    print(manifest.split, len(rows), manifest.sha256)
    # Each row has a text field. Do not log private training content.
Beispiel · python
# For a genuine external trainer integration, not simulated progress.
def report_progress(client, session_id, *, step, total_steps, loss):
    return client.post_event(session_id, {
        "state": "running",
        "step": step,
        "total_steps": total_steps,
        "metrics": {"loss": loss},
    })
# Supply values observed from your real trainer.
# The built-in train() already reports its progress; do not duplicate it.
Beispiel · python
import json
from pathlib import Path

# Continue with client/session. Inspect state before retrying reporting.
report = json.loads(Path("customer-model-run-001/training-report.json").read_text())
state = client.get_session(session["id"])
if state["status"] == "evaluating":
    state = client.complete(session["id"], report["completion_report"])
print(state["status"])
# Do not restart weight training just to reconcile reporting.
Beispiel · python
import os
from fusionpointai_training import TrainingClient

client = TrainingClient(api_key=os.environ["FUSIONPOINTAI_API_KEY"])
session = client.get_session(os.environ["FUSIONPOINTAI_SESSION_ID"])
report = session.get("report")
last_event = report.get("last_event", {}) if isinstance(report, dict) else {}
print("State:", session["status"], "Step:", session["step"])
print("Last reported error code:", last_event.get("error_code"))
# A missing error_code does not prove success. Read state and your local report.
# Do not dump full provider responses, private data or authorization headers.

Ausnahmen und erwartete Ergebnisse

TrainingClient löst bei Sitzungsoperationen APIError und IntegrityError aus. TrainingProject stellt ConfigurationError, CompatibilityError, AuthenticationError, BudgetExceededError, EvaluationFailedError, CheckpointError, CancellationError und ExportError als Unterklassen von TrainingError bereit. Geben Sie bei der Fehlersuche weder Umgebung noch Authorization-Header aus. Beide Schnittstellen haben getrennte Verträge.

  • Paket- und Abhängigkeitsversionen mit jedem Lauf protokollieren.
  • TrainingProject-Fehler bewahren, soweit vorhanden, bereinigte Diagnosedaten und Berichte.
  • Ändernde Vorgänge nicht wiederholen, bevor ihr Status geprüft wurde.
Beispiel · python
import os
from fusionpointai_training import TrainingClient
from fusionpointai_training.errors import APIError, IntegrityError, TrainingError

client = TrainingClient(api_key=os.environ["FUSIONPOINTAI_API_KEY"])
try:
    state = client.get_session(os.environ["FUSIONPOINTAI_SESSION_ID"])
    print("Current state:", state["status"])
except IntegrityError:
    print("Integrity check failed; preserve the report and investigate.")
except TrainingError:
    print("Training failed; inspect the local report before retrying.")
except APIError:
    print("Request failed; inspect access and session state before another write.")
except ValueError:
    print("Invalid local configuration; correct the input before retrying.")
# Never print the key or authorization headers.
Beispiel · python
import os
from fusionpointai_training import TrainingClient
from fusionpointai_training.errors import APIError

client = TrainingClient(
    api_key=os.environ["FUSIONPOINTAI_API_KEY"],
    timeout=30.0,
    max_get_retries=2,
)
try:
    session = client.get_session(os.environ["FUSIONPOINTAI_SESSION_ID"])
except APIError:
    # GET retries are bounded. Do not blindly retry a write after an error.
    print("Session inspection failed; check access and current server state.")
else:
    print("Status:", session["status"])
# Never print the API key, authorization headers, or response secrets.

Python-Schnittstelle

  • TrainingClient(api_key: str, *, base_url: str = "https://fusionpointai.com/api/v1/training", allow_loopback: bool = False, timeout: float = 60.0, max_get_retries: int = 2, transport: httpx.BaseTransport | None = None)
  • create_session(job: str, runtime: str, *, reference_model_id: int | None = None) -> dict
  • open_session(job: str, runtime: str, *, reference_model_id: int | None = None) -> dict
  • get_session(session_id: str) -> dict
  • prepare_session(session_id: str, *, max_requests: int | None = None) -> dict
  • DatasetManifest(split: str, sha256: str, bytes: int, rows: int)
  • download_dataset(session_id: str, manifest: DatasetManifest) -> list[dict[str, str]]
  • post_event(session_id: str, event: dict) -> dict
  • train(session_id: str, output_dir: str | os.PathLike[str]) -> dict
  • complete(session_id: str, report: dict) -> dict
  • cancel(session_id: str) -> dict
  • TrainingProject.from_file(path: str | os.PathLike[str], *, api_key: str) -> TrainingProject
  • TrainingProject.plan(*, dry_run: bool = True) -> dict
  • TrainingProject.run() -> dict
  • TrainingProject.status() -> dict
  • TrainingProject.pause() -> dict
  • TrainingProject.resume() -> dict
  • TrainingProject.cancel() -> dict
  • TrainingProject.evaluate(*, split: str = "test") -> dict
  • TrainingProject.export(*, format: str = "safetensors") -> dict
  • register_evaluator(name: str, scorer: Callable, *, version: str) -> None