Référence

Jev API Docs

Référence de l’endpoint de décision Jev sur ce site. Jev est le modèle System One de TypeSafe AI ; ce site est un service d’API indépendant qui en héberge l’accès. Envoyez un état et une map de questions et recevez une réponse typée pour chacune.

Mis à jour

Endpoint

Envoyez POST /api/v1/decisions sur cet hôte. Il n’y a pas de chemin chat-completions ni de flux. GET /api/v1/models liste l’id du modèle.

POST https://jev-api.org/api/v1/decisions
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Authentification

Placez la clé du tableau de bord dans Authorization: Bearer. Une clé absente ou refusée renvoie 401. Le playground crée une clé du compte quand vous lancez une requête.

Démarrage rapide

Définissez JEV_API_KEY avec une clé de votre tableau de bord, puis envoyez la requête ci-dessous. Les nouveaux comptes reçoivent 2 crédits, soit 2 appels réussis.

curl https://jev-api.org/api/v1/decisions \
  -H "Authorization: Bearer $JEV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "jev-1.13",
  "state": "Thanks for the refund. Still annoyed it took three emails.",
  "questions": {
    "sentiment": {
      "type": "choice",
      "instructions": "What is the overall sentiment of this message?",
      "criteria": {
        "positive": "Satisfied or thankful overall.",
        "mixed": "Both satisfied and unhappy.",
        "negative": "Unhappy overall."
      }
    },
    "needs_follow_up": {
      "type": "noul",
      "instructions": "Should a person reply to this message?"
    }
  }
}'

Corps de la requête

model vaut jev-1.13 ou jev-latest. state est une chaîne, un objet JSON ou un tableau de texte, jusqu’à 60 000 caractères. questions est une map de 1 à 6 ids snake_case. L’id n’est que l’étiquette sous laquelle la réponse revient, pas une question. La vraie question va dans instructions, en texte de 1 à 2 000 caractères.

{
  "model": "jev-1.13",
  "state": "Thanks for the refund. Still annoyed it took three emails.",
  "questions": {
    "sentiment": {
      "type": "choice",
      "instructions": "What is the overall sentiment of this message?",
      "criteria": {
        "positive": "Satisfied or thankful overall.",
        "mixed": "Both satisfied and unhappy.",
        "negative": "Unhappy overall."
      }
    },
    "needs_follow_up": {
      "type": "noul",
      "instructions": "Should a person reply to this message?"
    }
  }
}

Types de question

Noul

type noul n’a besoin que d’instructions. Le champ noul est la probabilité de 0 à 1 que l’énoncé soit vrai. Il n’y a pas de champ confidence séparé. Si vous envoyez criteria sur une question noul, cet endpoint l’ignore.

Choice

type choice exige instructions et criteria : un objet de 2 à 8 ids snake_case associés à des descriptions de 300 caractères max. La réponse inclut choice, probabilities de chaque option et confidence.

Score

type score exige instructions et criteria, un tableau ordonné de 2 à 10 niveaux, le plus bas d’abord. La réponse inclut score, legend, probabilities et confidence.

Réponse

Un corps réussi a model, answers indexées par vos ids de question, usage avec input_tokens et output_tokens, et credits_used. model indique jev-1.13 même si vous avez envoyé jev-latest. Voici un exemple de réponse à la requête du démarrage rapide, usage omis.

{
  "model": "jev-1.13",
  "answers": {
    "sentiment": {
      "type": "choice",
      "choice": "mixed",
      "probabilities": { "mixed": 0.79, "negative": 0.2, "positive": 0.01 },
      "confidence": 0.61
    },
    "needs_follow_up": { "type": "noul", "noul": 0.83 }
  },
  "credits_used": 1
}

Lire les probabilités et confidence

Noul est la probabilité que l’énoncé dans instructions soit vrai. Choice et Score renvoient une probabilité par option ou niveau, plus confidence.

Le second est le signal pour passer à une personne. Quand confidence est bas ou que deux options sont proches, envoyez le cas à une personne ou posez une question plus précise. Ne baissez pas le seuil avant d’avoir regardé ces cas serrés.

Limites

ÉlémentCet endpoint
EndpointPOST /api/v1/decisions, clé Bearer
Modèlejev-1.13 (jev-latest est un alias)
Questions par appel1 à 6
Options de Choice2 à 8
Niveaux de Score2 à 10, le plus bas d’abord
StateChaîne, objet JSON ou tableau, jusqu’à 60 000 caractères
InstructionsTexte, de 1 à 2 000 caractères
Facturation1 crédit par appel réussi ; les échoués sont gratuits
StreamingNon pris en charge

Différences avec l’API de TypeSafe

TypeSafe AI sert Jev sur POST https://api.typesafe.ai/v1/systemone avec une clé TypeSafe et facture par token d’entrée. Le corps de la requête ici a la même forme : model, state et questions de type noul, choice ou score. Ce qui change :

  • Chemin et clé : POST /api/v1/decisions sur jev-api.org, avec une clé du tableau de bord de ce site. Les clés TypeSafe ne marchent pas ici, et celles de ce site ne marchent pas sur TypeSafe.
  • Id du modèle : envoyez jev-1.13 ou jev-latest. Un id versionné comme jev-1.13.0 renvoie 422.
  • Limites : 1 à 6 questions par appel et 2 à 8 options de Choice. TypeSafe documente jusqu’à 255 options de Choice.
  • Champs : instructions doit être du texte et chaque option de Choice exige une description. TypeSafe accepte aussi des instructions en objet ou tableau et des descriptions d’option null.
  • Facturation : 1 crédit par appel réussi, quel que soit le nombre de tokens.

Erreurs

  • 401 — clé absente ou refusée.
  • 402 — la clé est valide et le solde ne couvre pas l’appel. Un échec amont n’utilise pas de crédit.
  • 422 — le corps a échoué à la validation. Le message nomme le champ.
  • 429 — le service de décision est limité. Réessayez plus tard.
  • 502 — le service n’a pas renvoyé de réponses. Aucun crédit n’est utilisé.

Id du modèle

Cette API sert jev-1.13. Envoyez cet id si un seuil dépend d’une distribution. Sur cette API, jev-latest est un alias du même id.