Aller au contenu

Docs · Intégration

SDK TypeSafe

Jevis reproduit le contrat /v1/systemone à l'identique. Les SDK officiels de TypeSafe fonctionnent sans adaptateur : on change l'URL de base et la clé.

Installer

pip install typesafe-sdk   # ou : uv add typesafe-sdk

Configurer

Passer l'URL de la gateway et une clé jaas_… émise par la console. Le reste du code ne change pas.

app.py
from typesafe_sdk import Choice, TypeSafeClient

with TypeSafeClient(
    base_url="https://jevis.example.com",  # la seule ligne qui change
    api_key="jaas_a1b2c3d4_…",             # clé émise par la console
) as client:
    response = client.system_one(
        state={"document": "Prélevé deux fois ce mois-ci, merci de corriger."},
        questions={
            "department": Choice(
                instructions="Quel service doit traiter ce ticket ?",
                criteria={"billing": None, "shipping": None},
            ),
        },
    )

print(response.choices["department"].choice)
Le SDK envoie son modèle par défaut (jev-latest) si on n'en précise pas. Ce n'est pas une erreur : Jevis renvoie le model tel quel et choisit le backend d'après le schéma.

Questions inline

Le SDK envoie les questions dans la requête. Jevis calcule leur empreinte structurelle (types et clés, sans les textes) et la compare aux schémas publiés autorisés pour l'application.

  • Reformuler une instruction : aucun impact.
  • Ajouter une option à un choice, un niveau à un score, une question : il faut publier une nouvelle version de schéma, sinon l'appel est refusé.

Extensions x_

Les extensions (x_template, x_schema en entrée ; x_decision_id, x_abstain… en sortie) sont hors du contrat TypeSafe. Pour les utiliser, appeler l'API en HTTP direct, avec n'importe quel client. De même pour renvoyer l'outcome :

curl -X POST https://jevis.example.com/v1/decisions/019a1b2c-…/outcome \
  -H "Authorization: Bearer $JEVIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "answers": { "department": "billing", "urgent": true, "tone": 2 },
    "source": "agent-ui"
  }'

Erreurs

Les codes HTTP suivent TypeSafe, avec deux ajouts propres à Jevis.

HTTPJevisRemarque
401invalid_api_keyComme TypeSafe.
403schema_not_grantedPropre à Jevis : schéma non attribué à l'application.
422validation_errorComme TypeSafe, plus invalid_schema et template_render_error.
429rate_limited · quota_exceededComme TypeSafe, avec Retry-After.
503backend_unavailableTypeSafe utilise 529 pour la surcharge ; Jevis répond 503.