JEV - Concevoir la question fermée, pas la formule

Le oui-non, le choix et le niveau suffisent comme langage quand le métier se découpe en questions fermées qui ne se gênent pas, et que l'état est compressé au-delà du récit. Émettre le coupon ou non reste un seuil dans le code.

JEV - Concevoir la question fermée, pas la formule

Co-auteur : folkbench.com (Folkbench est une plateforme vérifiable d’évaluation et de sélection pour les API d’IA, les services de modèles et les sites associés. Elle s’appuie sur les informations publiées sur le service, les prix, la disponibilité, la latence et les fenêtres de preuve pour aider les utilisateurs à comparer des voies et à en choisir une.)

Dix textes dans cette série :

La première moitié du travail sur les instructions fut une poétique. Pour obtenir un JSON stable, on écrivait un rôle, une menace, quelques exemples et un peu de XML. C'était un blocus dans une combinaison infinie de tokens. Jev annule le blocus. L'espace des solutions est fermé avant l'inférence. Ce que vous concevez n'est pas une meilleure incantation. C'est un état, plus quelques questions fermées qui ne se gênent pas. Le oui-non, le choix et le niveau suffisent comme langage seulement si vous voulez bien découper le métier dans ces trois formes.

D'un blocus à un questionnaire

[ generative ]
prompt (role, examples, format restraints) → infinite tokens → text that can drift

[ Jev ]
state + closed questions (Noul / Choice / Score) → a finite set → one distribution

Les trois questions achèvent ce qu'il est licite de demander :

  1. Oui-non, Noul. Ce que vous voulez, c'est la probabilité de « oui », utilisée pour éprouver un seuil. Le code décide si le seuil est franchi. Ce n'est pas une valeur vide.
  2. Choix unique, Choice. Les options sont fixées d'avance, 255 au plus. Chaque option dit ce qu'elle veut dire. Servez-vous-en pour l'intention et le routage.
  3. Niveau, Score. De 2 à 10 échelons, écrits de bas en haut comme des cas concrets. Servez-vous-en pour le degré. Ne vous en servez pas pour inventer une classe nouvelle.

Les instructions dont le seul travail était le format expirent donc. Le métier qui reste, c'est comment compresser l'état, et comment découper une grande question.

L'état doit l'emporter sur le récit

L'état n'écoute pas un récit. La règle est de laisser tomber l'ornement, de garder l'ordre des événements, et de garder les faits.

Une façon générative de demander si un utilisateur va partir ressemble souvent à ceci :

Vous êtes une personne expérimentée de l'assistance. Lisez le profil et le dialogue, décidez s'il veut annuler, expliquez, et émettez du JSON. Profil : Zhang San, VIP3, inscrit depuis 2 ans. L'utilisateur dit que la fonction a encore planté et que les données ont disparu. L'assistance dit que c'est en réparation. L'utilisateur dit laissez tomber, et demande comment obtenir un remboursement.

Le problème est la phrase de rôle et le remplissage. Le modèle dépense de l'attention sur « vous êtes un expert », et la sortie se laisse tirer par « laissez tomber ».

Ce que Jev mange, c'est l'état compressé :

{
  "user_profile": {"tier": "VIP3", "tenure_months": 24},
  "last_event": {"type": "system_error", "impact": "data_loss"},
  "dialogue_history": [
    {"role": "user", "intent": "complain", "content": "feature crashed, data lost"},
    {"role": "agent", "intent": "apology", "content": "fix in progress"},
    {"role": "user", "intent": "churn_explicit", "content": "asks for a refund and says they will stop"}
  ]
}

Une ligne du dialogue d'origine peut rester, mais l'intention et l'impact siègent dans leurs propres champs. Le modèle lit un arbre d'état, pas une dissertation.

Découper une question de métier en trois

« Devons-nous émettre un coupon de 50 yuan » n'est pas une question fermée. L'intention, la colère, la fraude et le coût y sont empilés. Un seul coup rate dans Jev. Découpez-la en trois questions orthogonales, et laissez la politique du coupon dans le code.

state ─┬─ Choice   primary intent
       ├─ Score    negative degree, rungs 1 to 5
       └─ Noul     does this look like farming coupons

Intention

Choice. L'espace est : question technique, suggestion de produit, plainte pour incident, réclamation malveillante. L'énoncé ne demande que l'intention principale de ce tour. Il ne demande pas s'il faut payer.

[State]
{ ...compressed state... }

[Question]
From the dialogue, which class is the primary intent of this turn.

Degré

Score. L'échelon 1 est une question ou une plainte légère. L'échelon 3 est une plainte claire qui exige une explication. L'échelon 5 est une émotion extrême, ou un remboursement ou une fermeture de compte déjà sur la table. Ne lui donnez pas un « 1 à 5 » nu. Écrivez chaque échelon comme un cas.

[State]
{ ...compressed state... }

[Question]
Score the negative degree on these rungs.
1: a question, or a mild complaint
3: a clear complaint that demands an explanation
5: extreme emotion, or a refund or closure already requested

Oui ou non

Noul. Mettez dans l'état le nombre de réclamations des 30 derniers jours, et demandez si ce tour correspond à la chasse aux coupons. Ce qui revient est une probabilité. Le seuil s'écrit dans le code.

[State]
{ ...state, plus claim count for 30 days... }

[Question]
Historical claims are greater than 3, and the impact of this incident is low. Does this turn match coupon farming.

Le code ne reçoit que la distribution

En aval, on n'analyse plus une chaîne JSON qui peut casser. Chacun des trois résultats est un nombre ou une table. Les conditions de métier restent dans la fonction.

intent = jev.choice(
    state=user_state,
    options=["tech_support", "feedback", "complaint", "malicious"],
)
anger = jev.score(state=user_state, rungs=5)
fraud = jev.noul(state=user_state_with_history)

def handle_coupon(intent, anger, fraud):
    if fraud.p_yes >= 0.9:
        return "DENY_AND_HANDOFF"
    if intent.top == "complaint" and anger.expected >= 4:
        return "ISSUE_50_COUPON"
    return "STANDARD_APOLOGY"

Quand le modèle est remplacé, la forme de la sortie est encore ces trois-là. L'effondrement du format cesse d'être un type de panne. Le déterminisme ne devient pas « le modèle ne se trompe jamais ». Le déterminisme veut dire qu'une erreur tombe encore dans une case que vous avez écrite, et que la branche peut encore être testée.

La rhétorique s'en va

Dimension Instruction générative Jev
Métier Style, exemples, incantations de format Découper le métier, compresser l'état, dessiner un espace discret
Espace des solutions Ouvert Fermé : Noul / Choice / Score
Stabilité Formulation et température Structure ; la sortie est une distribution par nature
Débogage Éditer les adjectifs, ajouter du ton, ajouter des exemples Éditer les champs de l'état, découper la question jusqu'à ce qu'elle soit orthogonale

Le oui-non, le choix et le niveau suffisent comme langage exactement quand « que devons-nous faire ensuite » peut se découper dans les trois. La partie qui ne se découpe pas n'est pas un échec du langage. Elle n'appartient pas à l'articulation. Laissez-la à un modèle qui sait parler, ou à une personne.

Série