System One
System One
DocumentationDocumentation du SDKModèlesRéférence APIOuvrir System OneIndex de la documentation

SDK et API

SDK TypeScriptExtraire des champs avec Clairic

Construire des décisions

Choisir un modèlePrimitives de décisionIntégration agent : routage d’outils typéSystem One pour agents de code

Usage et données

Facturation & créditsRétention zéro des données
Documentation du SDK

SDK TypeScript

Installez le SDK TypeScript System One et travaillez avec des décisions typées et Clairic extract.

Le SDK System One est une boîte à outils TypeScript open source, utilisable indépendamment de l’API System One hébergée. Définissez des questions avec choice(), score() et booleanQuestion(), envoyez-les avec evaluate(), ou définissez des champs Clairic et envoyez-les avec extract(). Utilisez les réponses typées dans votre application ou votre agent.

Prêt pour les questions

Qu’est-ce que le SDK TypeScript System One ? Un client open source pour l’API System One hébergée, qui permet d’appeler Choice, Score, Noul et l’extraction Clairic avec des résultats typés.

Installer et choisir un runtime

Pour l’API System One hébergée (décisions et extraction Clairic) :

npm install @system-one-ai/core@0.8.0 @system-one-ai/adapter-system-one@0.7.0 @system-one-ai/transport-fetch@0.8.0

Les paquets fournissent ESM, CommonJS et les déclarations TypeScript. Utilisez Node.js 20+ ou un runtime compatible fournissant Fetch et AbortController. Gardez les identifiants de service sur le serveur. Core ne déduit pas un protocole d’un nom d’hôte et ne lit pas vos variables d’environnement à votre place : passez la configuration explicitement.

createSystemOne(options) est la fabrique documentée et renvoie une instance SystemOne. new SystemOne(options) est le même constructeur.

Le paquet core est sous licence MIT et sans dépendance d’exécution. Installer ou utiliser la bibliothèque ne nécessite pas de compte System One : les évaluations réseau utilisent les identifiants, la disponibilité et la facturation du service auquel vous vous connectez. Les crédits de compte System One s’appliquent à notre API hébergée, pas à chaque connexion du SDK.

Choisir une connexion

ConnexionAdaptateur public et transportIdentifiants et facturation
API System One hébergéesystemOneAdapter de @system-one-ai/adapter-system-one, transport Fetch. URL de base par défaut : https://system-one.dev/v1.Votre clé d’API System One et les crédits de votre compte.

Ce sont des choix d’intégration SDK publics, pas une liste des services ou des modèles hébergés sur ce site. Pour notre API hébergée, suivez le démarrage rapide avec le SDK hébergé et choisissez un identifiant exact dans le répertoire des modèles. Pour connecter le SDK à un autre service, utilisez le paquet @system-one-ai/adapter-* de ce service avec vos propres identifiants et votre propre facturation.

Préserver les types de questions et de réponses

choice() préserve les noms d’options littéraux. score() renvoie un nombre qui peut être fractionnaire. booleanQuestion() renvoie P(true), pas un booléen ; le protocole HTTP natif appelle cette question noul et l’adaptateur convertit entre les deux représentations.

import { choice, defineQuestions } from '@system-one-ai/core';
import type { Answers, EvaluateRequest, EvaluationResult } from '@system-one-ai/core';

const questions = defineQuestions({
  team: choice('Choose the reviewing team.', {
    billing: 'Payments and invoices',
    support: 'Technical help',
  }),
});

type TeamRequest = EvaluateRequest<typeof questions>;
type TeamResult = EvaluationResult<typeof questions>;
type TeamAnswers = Answers<typeof questions>;
Types exportés par coreUsage
State, Description, JsonValue, JsonObjectContexte partagé et descriptions compatibles JSON.
ChoiceQuestion, ScoreQuestion, BooleanQuestion, QuestionsDéfinitions de questions.
EvaluateRequest<Q>, EvaluationResult<Q>Une requête de décision et son résultat inféré.
ChoiceAnswer, ScoreAnswer, BooleanAnswer, AnswerFor<Q>, Answers<Q>Réponses individuelles et réponses indexées par nom de question.
EvaluationClient, ExtractClientInterfaces evaluate() / extract() partagées.
SystemOneOptions, RequestOptions, FetchContrats de client, d’appel et de Fetch personnalisé.
Usage, ExtractUsageComptes de jetons optionnels.
ImageInputEntrée image intégrée pour evaluate() ou extract().

Les résultats sont normalisés entre les adaptateurs, pas le corps HTTP d’origine. Les distributions, la confiance et les comptes de jetons peuvent être absents : une valeur inconnue n’est pas zéro. La confiance n’est pas nécessairement la probabilité de l’option sélectionnée. result.model peut indiquer un nom résolu différent de l’identifiant demandé.

Images

ImageInput est exporté par core : une chaîne data URL base64 intégrée ou { mediaType: 'image/png', base64: '...' } avec de vrais octets encodés. images est un frère optionnel de premier niveau de state et questions (ou fields). state reste obligatoire ; '' est valide quand des images sont présentes. images: [] est compatible texte. Les URL distantes, les téléchargements, l’audio et la vidéo ne sont pas pris en charge.

Les images Clairic hébergées utilisent extract() sur systemOneAdapter@0.7.0 : voir Extraire des champs avec Clairic. Les images de décision Clef, Clef Flash ou Clef Omni hébergées utilisent encore Fetch/HTTP.

Délais, annulation, reprises et erreurs

timeoutMs de core est un budget total d’évaluation, y compris la résolution des identifiants, les reprises, les délais et la lecture de la réponse. La valeur par défaut est de 10 000 ms. maxRetries au niveau du client fixe les tentatives supplémentaires (2 par défaut, de 0 à 100) ; par appel, timeoutMs, maxRetries, headers et signal complètent ou remplacent ces réglages.

const resultWithDeadline = await client.evaluate(request, {
  timeoutMs: 15_000,
  maxRetries: 0,
  signal: AbortSignal.timeout(15_000),
});

Le transport Fetch peut réessayer les échecs de connexion, le HTTP 408, le 429 et les 5xx. Commencez par maxRetries: 0 tant que votre application ne gère pas elle-même la reprise. Le SDK ne génère pas de clé d’idempotence. Core exporte SystemOneError, ConfigurationError, ValidationError, UnsupportedFeatureError, ResponseValidationError, APIError, ConnectionError, BindingError, TimeoutError et RequestAbortedError. Dans core 0.8.0 publié, APIError expose statusCode, requestId et retryAfterMs, pas le corps complet ni tous les en-têtes de réponse.

Migrer depuis l’ancien paquet

@system-one-ai/sdk@0.5.3 est déprécié.

Ancienne importation ou configurationPaquet indépendant
Client, fabriques de questions, types et erreurs de @system-one-ai/sdk@system-one-ai/core (createSystemOne ou SystemOne)
systemOneAdapter de l’ancien paquet@system-one-ai/adapter-system-one
Sous-chemin d’adaptateur d’un autre serviceLe paquet @system-one-ai/adapter-* correspondant
Exécution HTTP implicite ou fetch: customFetch sur le clientAdaptateur explicite plus transport: createFetchTransport(customFetch)

Étapes suivantes

  • Extraire des champs avec Clairic
  • Connecter le SDK à l’API hébergée
  • Choisir un modèle

Index de la documentation

Parcourir getting started, primitives, SDK, référence API et modèles.

Extraire des champs avec Clairic

Appelez extract({ state, fields }) avec Clairic — types de champs et exemples HTTP hébergés.

Sur cette page

Prêt pour les questionsInstaller et choisir un runtimeChoisir une connexionPréserver les types de questions et de réponsesImagesDélais, annulation, reprises et erreursMigrer depuis l’ancien paquetÉtapes suivantes