Guide d'intégration de l'API de destinée

Mode d'accès, modèles disponibles, spécification des requêtes, règles de facturation et exemples pour l'API de destinée YlanAI
mars 25, 2026

Cette page présente la méthode standard d'intégration de l'API de destinée YlanAI.

L'interface actuelle suit le protocole compatible OpenAI et s'adresse aux clients prenant en charge chat/completions et completions.

1. Informations d'accès

URL, méthode de requête et endpoints standard
ÉlémentDescription
URL de base recommandéehttps://ylan.ai/api/openai
URL de base compatiblehttps://ylan.ai/api/openai/v1
Méthode par défautPOST
Liste des modèlesGET /models
Détail d’un modèleGET /models/{id}
Endpoint de dialoguePOST /chat/completions
Endpoint legacy completionsPOST /completions

Pour les clients qui ajoutent /v1 automatiquement, utilisez en priorité https://ylan.ai/api/openai.

Authentification

Chaque requête doit inclure :

Authorization: Bearer sk-...

La clé API est rattachée au compte utilisateur courant, et les consommations sont déduites du pool de crédits payants de ce compte.

Pour les clients tiers qui ne peuvent pas définir Authorization, les en-têtes de compatibilité api-key: sk-... et x-api-key: sk-... sont également acceptés.

Conversation multi-tour

La conversation multi-tour est prise en charge. Le client peut transmettre l'historique via le tableau messages afin de conserver le contexte.

2. Portée et modèles

Portée du service
PortéeDescription
Capacité exposéeSeule l'API d'analyse de destinée est exposée
Chat généralNon disponible
Scénarios pris en chargeAnalyse mono-sujet et analyse à deux sujets
Standard de sortieAligné avec l'expérience interne du produit
Modèles disponibles

La référence fait foi via GET /models. L'ensemble disponible peut évoluer selon la feuille de route produit.

ModèleDescription
openai/gpt-5.4Adapté aux analyses de destinée à forte exigence de qualité
openai/gpt-5.3-chatAdapté aux analyses générales et aux échanges multi-tour
deepseek/deepseek-v3.2Adapté aux analyses variées et aux échanges multi-tour

3. Spécification des requêtes

Format de réponse
CasFormat de réponse
stream=trueFlux SSE compatible OpenAI avec payloads chat.completion.chunk et marqueur final data: [DONE]
stream=falseRéponse JSON standard chat.completion
POST /completionsRéponse JSON text_completion compatible OpenAI ou flux SSE
En-têtes non-stream réussisx-ylan-charged-credits et x-ylan-remaining-paid-credits
Paramètres de requête
ParamètreTypeDescription
modelstringNom du modèle retourné par GET /models
messagesarrayTableau de messages compatible OpenAI ; au moins un message user est requis
promptstringEntrée legacy completions, utilisable si messages est omis
inputstringChamp d’entrée compatible avec certains clients tiers si messages est omis
streambooleanActive ou non le mode stream ; valeur par défaut false
localestringLangue de sortie, par exemple fr, zh, en
topicstringSujet de destinée, par exemple wealth_pattern ou marriage_status
subject_modestringMode d'analyse, single ou pair
methodstringMéthode d'analyse interprétée par la chaîne métier actuelle
birth_profileobjectDonnées de naissance pour une analyse mono-sujet
chart_inputobjectDonnées structurées de thème pour un scénario déjà pré-calculé
pair_stateobjectDonnées d'entrée pour l'analyse à deux sujets
metadataobjectMétadonnées étendues pouvant compléter topic, locale, birthProfile, pairState, etc.
Exemple stream mono-sujet
curl -N https://ylan.ai/api/openai/chat/completions \
  -H 'Authorization: Bearer sk-your-api-key' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "openai/gpt-5.4",
    "stream": true,
    "locale": "fr",
    "topic": "wealth_pattern",
    "subject_mode": "single",
    "birth_profile": {
      "calendar": "solar",
      "birthDate": "1992-08-15",
      "birthTime": "09:30",
      "gender": "male",
      "location": "Shenzhen"
    },
    "messages": [
      {
        "role": "user",
        "content": "Veuillez analyser ma tendance financière pour cette année."
      }
    ]
  }'
Exemple stream analyse à deux sujets
curl -N https://ylan.ai/api/openai/chat/completions \
  -H 'Authorization: Bearer sk-your-api-key' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "deepseek/deepseek-v3.2",
    "stream": true,
    "locale": "fr",
    "topic": "marriage_status",
    "subject_mode": "pair",
    "pair_state": {
      "subjects": [
        {
          "birthProfile": {
            "calendar": "solar",
            "birthDate": "1992-08-15",
            "birthTime": "09:30",
            "gender": "male",
            "location": "Shenzhen"
          }
        },
        {
          "birthProfile": {
            "calendar": "solar",
            "birthDate": "1995-03-08",
            "birthTime": "22:15",
            "gender": "female",
            "location": "Guangzhou"
          }
        }
      ]
    },
    "messages": [
      {
        "role": "user",
        "content": "Veuillez analyser la direction à long terme de cette relation et les points clés de compatibilité."
      }
    ]
  }'

4. Facturation et gestion des erreurs

Règles de facturation et moment de confirmation
CasRègle
Analyse mono-sujet100 crédits par réponse réussie
Analyse à deux sujets200 crédits par réponse réussie
need_inputNon facturé
Portée des créditsSeuls les crédits payants sont consommés ; crédits de bienvenue et crédits offerts exclus
stream=trueLa facturation est confirmée dès le premier contenu visible
stream=falseLa facturation est confirmée après la réponse complète et réussie
Timeout, échec, réponse videLa facturation n'est pas confirmée ou est remboursée selon la règle actuelle
Codes d'erreur courants
Statut HTTPCode d'erreurDescription
400invalid_messagesLa requête ne contient pas de message valide ou aucun message user
400invalid_promptLa requête ne contient ni messages, ni prompt, ni input
400invalid_modelLe modèle demandé n'est pas autorisé
401invalid_api_keyLa clé API est absente ou invalide
402insufficient_paid_creditsLe compte ne dispose pas d'assez de crédits payants
500request_timeoutLa requête a expiré
500request_failedLa requête a échoué
500internal_errorErreur interne du serveur
502empty_responseLe modèle n'a renvoyé aucun contenu visible
Réponses need_input

Lorsque les informations de naissance, de sujet ou de pair sont incomplètes, l'API peut renvoyer une réponse de type need_input. Cette réponse sert uniquement à compléter les prérequis d'analyse et n'est pas facturée.