> ## Documentation Index
> Fetch the complete documentation index at: https://evolink.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Gemini Decisions - Référence complète des paramètres

> - Utilisez `gemini-decision-1` pour évaluer du texte, des images, de l’audio, des vidéos et des PDF avec des probabilités oui/non, un choix unique ou des scores
- Toutes les réponses sont renvoyées de façon synchrone ; le streaming, la Batch API et la mise en cache du contexte ne sont pas pris en charge
- Seuls les tokens d’entrée sont facturés ; la sortie est gratuite. Un montant minimum s’applique à chaque requête. Voir les [Tarifs des modèles](https://evolink.ai/pricing)
- Pour la conversation ou la génération de texte, utilisez l’[API native Gemini](/fr/api-manual/language-series/gemini/native-api/native-api-reference)

> [!NOTE]
>
> **BaseURL** : utilisez `https://direct.evolink.ai` par défaut ; `https://api.evolink.ai` est l’adresse de secours.


## OpenAPI

````yaml fr/api-manual/language-series/gemini/decisions/decisions-reference.json POST /v1beta/decisions
openapi: 3.1.0
info:
  title: Gemini Decisions - Référence complète des paramètres
  description: >-
    Avec l’API Gemini Decisions, Gemini Decision 1 répond à des questions typées
    sur du texte, des images, de l’audio, de la vidéo et des documents PDF :
    probabilités oui/non, sélection d’une option dans une liste fixe ou notation
    selon des niveaux ordonnés.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://direct.evolink.ai
    description: Production (recommandée)
  - url: https://api.evolink.ai
    description: Adresse de secours
security:
  - bearerAuth: []
tags:
  - name: Decisions
    description: 'Décisions structurées : classification, affectation et notation'
paths:
  /v1beta/decisions:
    post:
      tags:
        - Decisions
      summary: Gemini Decision 1 (décisions structurées)
      description: >-
        - Utilisez `gemini-decision-1` pour évaluer du texte, des images, de
        l’audio, des vidéos et des PDF avec des probabilités oui/non, un choix
        unique ou des scores

        - Toutes les réponses sont renvoyées de façon synchrone ; le streaming,
        la Batch API et la mise en cache du contexte ne sont pas pris en charge

        - Seuls les tokens d’entrée sont facturés ; la sortie est gratuite. Un
        montant minimum s’applique à chaque requête. Voir les [Tarifs des
        modèles](https://evolink.ai/pricing)

        - Pour la conversation ou la génération de texte, utilisez l’[API native
        Gemini](/fr/api-manual/language-series/gemini/native-api/native-api-reference)
      operationId: createDecision
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DecisionRequest'
            examples:
              noul:
                summary: Question oui/non
                value:
                  model: gemini-decision-1
                  input: >-
                    The blue mug I ordered on Monday arrived cracked on
                    Wednesday.
                  questions:
                    is_damaged:
                      type: noul
                      instructions: Did the item arrive damaged?
              choice:
                summary: Choix unique (affectation)
                value:
                  model: gemini-decision-1
                  input: I was charged twice for my order.
                  questions:
                    department:
                      type: choice
                      instructions: Which department should handle this request?
                      criteria:
                        billing: Payments, invoices, and refunds.
                        technical: Problems using the product.
                        shipping: Delivery and tracking.
                        other: Anything outside these categories.
              score:
                summary: Notation selon des niveaux ordonnés
                value:
                  model: gemini-decision-1
                  input: Export fails in Safari but works in Chrome.
                  questions:
                    severity:
                      type: score
                      instructions: How severe is this issue for the user?
                      criteria:
                        - 'Cosmetic: appearance only, no lost functionality.'
                        - >-
                          Workaround available: a task fails, but another way
                          works.
                        - 'Fully blocked: a task fails with no workaround.'
              multiple:
                summary: Poser plusieurs questions dans une requête
                value:
                  model: gemini-decision-1
                  input:
                    - type: text
                      text: >
                        {"order": {"id": "8821", "item": "headphones",
                        "price_usd": 240}, "tier": "Gold"}
                    - type: text
                      text: >-
                        {"message": "Audio cuts out on the left earcup. Fix it
                        today or I cancel my membership."}
                  questions:
                    is_defect:
                      type: noul
                      instructions: Does `message` describe a hardware defect?
                    next_action:
                      type: choice
                      instructions: What is the right resolution given `tier` and `order`?
                      criteria:
                        instant_refund: Refund without return. Low value or clear fault.
                        replacement_shipment: Ship a replacement. Customer returns the original.
                        troubleshooting_flow: The issue may be fixable by the customer.
                        human_escalation: ''
                    churn_risk:
                      type: score
                      instructions: >-
                        How likely is the customer to churn if the issue is not
                        resolved now?
                      criteria:
                        - No churn signal
                        - Mild frustration
                        - Mentions alternatives
                        - Threatens to cancel
              image_base64:
                summary: Évaluer une image intégrée (base64)
                value:
                  model: gemini-decision-1
                  input:
                    - type: text
                      text: Look at the image.
                    - type: image
                      data: >-
                        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKklEQVR42mM4ISdHU8QwasGoBaMWjFowasGoBaMWjFowasGoBaMWDBULACXLED1gHZEpAAAAAElFTkSuQmCC
                      mime_type: image/png
                      resolution: low
                  questions:
                    is_red:
                      type: noul
                      instructions: Is the image mostly red?
              image_url:
                summary: Évaluer une image depuis une URL
                value:
                  model: gemini-decision-1
                  input:
                    - type: text
                      text: Product photo.
                    - type: image
                      uri: https://www.gstatic.com/webp/gallery/1.jpg
                      mime_type: image/jpeg
                      resolution: low
                  questions:
                    outdoor:
                      type: noul
                      instructions: Is this photo taken outdoors?
                    quality:
                      type: score
                      instructions: How sharp is the photo?
                      criteria:
                        - blurry
                        - ok
                        - sharp
              audio_url:
                summary: Évaluer un audio depuis une URL
                value:
                  model: gemini-decision-1
                  input:
                    - type: audio
                      uri: >-
                        https://storage.googleapis.com/generativeai-downloads/data/Apollo-11_Day-01-Highlights-10s.mp3
                      mime_type: audio/mp3
                  questions:
                    mentions_launch:
                      type: noul
                      instructions: >-
                        Is the speaker talking about spaceflight or a rocket
                        launch?
      responses:
        '200':
          description: >-
            Une réponse par question, sous les mêmes clés que les questions de
            la requête
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DecisionResponse'
              example:
                answers:
                  is_defect:
                    type: noul
                    noul: 0.94
                    confidence: 0.94
                  next_action:
                    type: choice
                    choice: human_escalation
                    probabilities:
                      human_escalation: 0.76
                      replacement_shipment: 0.18
                      troubleshooting_flow: 0.04
                      instant_refund: 0.02
                    confidence: 0.76
                  churn_risk:
                    type: score
                    score: 2.99
                    legend:
                      '0': No churn signal
                      '1': Mild frustration
                      '2': Mentions alternatives
                      '3': Threatens to cancel
                    probabilities:
                      '0': 0
                      '1': 0
                      '2': 0.01
                      '3': 0.99
                    confidence: 0.99
                usage:
                  total_input_tokens: 324
                  input_tokens_by_modality:
                    - modality: text
                      tokens: 324
                  total_output_tokens: 0
                  total_tokens: 324
        '400':
          description: >-
            Requête invalide. Lorsque le contenu de la requête est invalide,
            `code` vaut `invalid_request` et `message` indique le champ et la
            règle en cause. Causes fréquentes : `type` de question non pris en
            charge, question `choice` ou `score` sans `criteria`, moins de 2
            options ou niveaux, clé de question invalide, `input` vide, champ
            inconnu (comme `stream`), `mime_type` qui ne correspond pas au
            contenu, ou URI `gs://` ou nom `files/...`. Une entrée bloquée par
            les filtres de sécurité renvoie `safety`, `prohibited_content`,
            `blocklist`, `image_safety` ou `content_blocked`. Utiliser ce modèle
            sur un autre point de terminaison renvoie `model_endpoint_mismatch`.
            Les réponses d’erreur HTTP ne sont pas facturées. Un retour de
            sécurité dans une réponse HTTP 200 reste facturé ; voir `usage`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid_question_type:
                  summary: Type de question non pris en charge
                  value:
                    error:
                      message: >-
                        The value 'bool' is not supported for 'type' at
                        'questions.q'. Supported values: 'choice', 'noul',
                        'score'. (request id: 20261112194236591724000xVRbpAJk)
                      type: ''
                      param: ''
                      code: invalid_request
                safety_blocked:
                  summary: Entrée bloquée par les filtres de sécurité
                  value:
                    error:
                      message: >-
                        Request blocked due to safety violations (harmful
                        content). Please modify your input and retry. (request
                        id: 20261112194253810462000pRk2HvTe)
                      type: ''
                      param: ''
                      code: safety
                model_endpoint_mismatch:
                  summary: Modèle envoyé au mauvais point de terminaison
                  value:
                    error:
                      allowed_endpoints:
                        - /v1beta/decisions
                      code: model_endpoint_mismatch
                      expected_endpoint: /v1beta/decisions
                      message: >-
                        The model 'gemini-decision-1' cannot be used with
                        /v1/decisions. Allowed endpoints: /v1beta/decisions.
                        (request id: 20261112194245600264000oIU8uBcu)
                      param: null
                      retryable: false
                      type: invalid_request_error
        '401':
          description: 'Non autorisé : API Key absent ou invalide'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: >-
                    API key is required (request id:
                    202611121942512304710006r9sjD0r)
                  param: null
                  type: authentication_error
        '402':
          description: Solde insuffisant
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: >-
            Accès refusé. `permission_denied` : `input` fait référence à un
            fichier de la Google Files API, accessible uniquement au projet
            Google qui l’a importé ; envoyez plutôt le média via une URL HTTPS
            publique ou signée, ou en base64 intégré. Ce statut est aussi
            renvoyé lorsque l’API Key possède une liste d’autorisation de
            modèles qui n’inclut pas ce modèle
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                permission_denied:
                  summary: URI de la Google Files API utilisée
                  value:
                    error:
                      message: >-
                        You do not have permission to access the File abc123xyz
                        or it may not exist. (request id:
                        20261112194238873347000q1Tkqeid)
                      type: ''
                      param: ''
                      code: permission_denied
        '404':
          description: >-
            Introuvable. `not_found` : une URL de média dans `input` n’a pas pu
            être récupérée ; vérifiez qu’il s’agit d’une URL HTTPS publiquement
            accessible ou correctement signée. `model_not_found` : le modèle
            n’est pas disponible pour l’API Decisions ; seul `gemini-decision-1`
            est actuellement pris en charge
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                url_not_found:
                  summary: URL de média irrécupérable
                  value:
                    error:
                      message: >-
                        Cannot fetch content from the provided URL. The URL
                        could not be found. Please double-check the URL for any
                        errors. (request id: 20261112194241224738000Vx0uduIQ)
                      type: ''
                      param: ''
                      code: not_found
                model_not_found:
                  summary: Modèle non disponible pour Decisions
                  value:
                    error:
                      code: model_not_found
                      message: >-
                        Model 'gemini-3.8-flash' is not available for the
                        Decisions API (POST /v1beta/decisions) with this API
                        key. This error is permanent — do not retry with the
                        same model id. Call GET /v1/models: Decisions models for
                        this endpoint are listed as gemini-decision-*. (request
                        id: 20261112194249376584000tUELY8LN)
                      param: null
                      retryable: false
                      type: invalid_request_error
        '429':
          description: Limite de fréquence dépassée ; réessayez plus tard
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Erreur interne du serveur
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service temporairement indisponible ; réessayez plus tard
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    DecisionRequest:
      type: object
      additionalProperties: false
      required:
        - model
        - input
        - questions
      properties:
        model:
          type: string
          description: >-
            ID du modèle. Utilisez `gemini-decision-1`.


            Ce modèle n’est pas un modèle de conversation et ne fonctionne que
            sur ce point de terminaison. Par exemple, l’envoyer au point de
            terminaison GPT Decisions `/v1/decisions` renvoie `400
            model_endpoint_mismatch`.
          enum:
            - gemini-decision-1
          example: gemini-decision-1
        input:
          description: >-
            Entrée partagée par toutes les questions : une chaîne de texte, un
            bloc de contenu unique ou un tableau de blocs de contenu (texte,
            image, audio, vidéo ou document PDF). L’entrée ne peut pas être
            vide. Les blocs de texte adjacents sont concaténés dans l’ordre sans
            séparateur ; ajoutez vous-même espaces ou retours à la ligne. Pour
            transmettre des données JSON, sérialisez-les en chaîne et
            envoyez-les comme texte.
          oneOf:
            - type: string
              minLength: 1
              example: I was charged twice for my order.
            - $ref: '#/components/schemas/InputContent'
            - type: array
              minItems: 1
              items:
                $ref: '#/components/schemas/InputContent'
        questions:
          type: object
          description: >-
            Questions à évaluer, sous forme de table associant une clé de
            question à une question : 1 à 1 000 questions. Vous choisissez les
            clés (1 à 64 caractères correspondant à `[A-Za-z0-9_-]+`), et chaque
            réponse est renvoyée sous la même clé. Le modèle ne voit jamais les
            clés : rédigez la question complète dans `instructions`.


            | Type | Usage | Résultat principal |

            |---|---|---|

            | `noul` | Vérifier si une affirmation est vraie | `noul` :
            probabilité de « oui » (0,01 à 0,99) |

            | `choice` | Choisir une option dans une liste fixe | `choice` :
            l’identifiant d’option le plus probable |

            | `score` | Noter l’entrée selon des niveaux ordonnés | `score` :
            note des niveaux pondérée par les probabilités |


            Chaque question est évaluée indépendamment sur la même entrée et ne
            voit pas les autres ; les types de questions peuvent être mélangés.
            Si des questions dépendent les unes des autres, répartissez-les dans
            des requêtes distinctes. L’entrée et toutes les questions partagent
            une fenêtre de contexte de 262 144 tokens.
          minProperties: 1
          maxProperties: 1000
          propertyNames:
            pattern: ^[A-Za-z0-9_-]{1,64}$
          additionalProperties:
            oneOf:
              - $ref: '#/components/schemas/NoulQuestion'
              - $ref: '#/components/schemas/ChoiceQuestion'
              - $ref: '#/components/schemas/ScoreQuestion'
          example:
            is_damaged:
              type: noul
              instructions: Did the item arrive damaged?
      description: >-
        Le corps de la requête accepte uniquement `model`, `input` et
        `questions`. Tout autre champ (comme `stream`) renvoie `400
        invalid_request`.
    DecisionResponse:
      type: object
      properties:
        answers:
          type: object
          description: >-
            Une réponse par question, sous les mêmes clés que les questions de
            la requête ; le `type` de chaque réponse correspond à sa question.
            Vide lorsque `prompt_feedback.block_reason` est défini
          additionalProperties:
            oneOf:
              - $ref: '#/components/schemas/NoulAnswer'
              - $ref: '#/components/schemas/ChoiceAnswer'
              - $ref: '#/components/schemas/ScoreAnswer'
        usage:
          $ref: '#/components/schemas/DecisionUsage'
        prompt_feedback:
          $ref: '#/components/schemas/PromptFeedback'
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              description: >-
                Description de l’erreur, terminée par `(request id: ...)`.
                Fournissez cet identifiant pour le diagnostic
            type:
              type:
                - string
                - 'null'
              description: Type d’erreur ; peut être vide
            param:
              type:
                - string
                - 'null'
              description: Paramètre concerné ; peut être vide
            code:
              type:
                - string
                - 'null'
              description: >-
                Code d’erreur, par exemple `invalid_request`,
                `permission_denied`, `not_found`, `safety`, `model_not_found` ou
                `model_endpoint_mismatch`
    InputContent:
      description: Un bloc de contenu ; `type` détermine les autres champs
      oneOf:
        - $ref: '#/components/schemas/TextContent'
        - $ref: '#/components/schemas/ImageContent'
        - $ref: '#/components/schemas/AudioContent'
        - $ref: '#/components/schemas/VideoContent'
        - $ref: '#/components/schemas/DocumentContent'
    NoulQuestion:
      type: object
      description: Question oui/non
      required:
        - type
        - instructions
      properties:
        type:
          type: string
          enum:
            - noul
        instructions:
          $ref: '#/components/schemas/QuestionInstructions'
        criteria:
          type: object
          description: >-
            Facultatif. Précise ce que signifient « oui » et « non » lorsque la
            question seule est ambiguë
          properties:
            true_description:
              type: string
              description: Quand la réponse est « oui »
            false_description:
              type: string
              description: Quand la réponse est « non »
    ChoiceQuestion:
      type: object
      description: Question à choix unique
      required:
        - type
        - instructions
        - criteria
      properties:
        type:
          type: string
          enum:
            - choice
        instructions:
          $ref: '#/components/schemas/QuestionInstructions'
        criteria:
          type: object
          description: >-
            Options, sous forme de table associant un identifiant d’option à une
            description de son cas d’application (chaîne vide `""` si
            l’identifiant est explicite). 2 à 255 options. Les identifiants
            d’option comptent 1 à 128 caractères (jusqu’à 512 octets UTF-8) ;
            les espaces ASCII internes sont autorisés, mais pas les espaces en
            début ou en fin ni les caractères de contrôle. Avant l’évaluation,
            les identifiants sont triés par ordre alphabétique (ordre des octets
            UTF-8), et les égalités exactes reviennent au premier identifiant
            dans cet ordre ; pour une option fourre-tout, utilisez donc un
            identifiant indépendant de la position comme `other` plutôt que
            `none_of_the_above`
          minProperties: 2
          maxProperties: 255
          additionalProperties:
            type: string
          example:
            billing: Payments, invoices, and refunds.
            technical: Problems using the product.
            shipping: Delivery and tracking.
            other: Anything outside these categories.
    ScoreQuestion:
      type: object
      description: Question de notation
      required:
        - type
        - instructions
        - criteria
      properties:
        type:
          type: string
          enum:
            - score
        instructions:
          $ref: '#/components/schemas/QuestionInstructions'
        criteria:
          type: array
          description: >-
            Descriptions des niveaux, du plus bas au plus haut : 2 à 255 chaînes
            non vides (2 à 10 recommandées). Le niveau `i` (à partir de 0) est
            décrit par `criteria[i]`. Comme `score` fait la moyenne des indices
            de niveau, gardez une échelle linéaire et des niveaux adjacents bien
            distincts
          minItems: 2
          maxItems: 255
          items:
            type: string
            minLength: 1
          example:
            - 'Cosmetic: appearance only, no lost functionality.'
            - 'Workaround available: a task fails, but another way works.'
            - 'Fully blocked: a task fails with no workaround.'
    NoulAnswer:
      type: object
      properties:
        type:
          type: string
          enum:
            - noul
        noul:
          type: number
          minimum: 0.01
          maximum: 0.99
          description: >-
            Probabilité calibrée que la réponse soit « oui », de 0,01 à 0,99 ;
            la probabilité de « non » est `1 - noul`. Fixez vos seuils dans
            cette plage à partir d’exemples annotés issus de votre propre trafic
        confidence:
          type: number
          minimum: 0
          maximum: 1
          description: >-
            Probabilité estimée que la réponse la plus probable soit correcte,
            égale à `max(noul, 1 - noul)`
    ChoiceAnswer:
      type: object
      properties:
        type:
          type: string
          enum:
            - choice
        choice:
          type: string
          description: L’identifiant d’option ayant la probabilité la plus élevée
        probabilities:
          type: object
          description: >-
            Probabilité calibrée de chaque identifiant d’option, de somme 1. La
            probabilité est toujours répartie entre vos options, même si aucune
            ne convient
          additionalProperties:
            type: number
        confidence:
          type: number
          minimum: 0
          maximum: 1
          description: >-
            Probabilité de l’option sélectionnée, de 0 à 1. Si elle est faible,
            envisagez une vérification humaine ou une question oui/non distincte
            sur le périmètre
    ScoreAnswer:
      type: object
      properties:
        type:
          type: string
          enum:
            - score
        score:
          type: number
          description: >-
            Moyenne des indices de niveau pondérée par les probabilités (`sum(k
            × probability_k)`), qui peut donc tomber entre deux niveaux.
            Divisez-la par l’indice de niveau le plus élevé pour la ramener
            entre 0 et 1
        probabilities:
          type: object
          description: >-
            Probabilité calibrée de chaque indice de niveau (`"0"`, `"1"`, ...),
            de somme 1. Pour obtenir un niveau précis, retenez l’indice de plus
            forte probabilité
          additionalProperties:
            type: number
        legend:
          type: object
          description: Description de chaque indice de niveau, reprise de `criteria`
          additionalProperties:
            type: string
        confidence:
          type: number
          minimum: 0
          maximum: 1
          description: La probabilité la plus élevée dans `probabilities`, de 0 à 1
    DecisionUsage:
      type: object
      description: >-
        Utilisation des tokens. Seuls les tokens d’entrée sont facturés
        (`total_input_tokens`) : les tokens de texte, d’image, d’audio, de vidéo
        et de PDF ont le même prix, et la sortie est toujours de 0. Un montant
        minimum s’applique à chaque requête. Consultez les [Tarifs des
        modèles](https://evolink.ai/pricing) pour les prix actuels. La mise en
        cache du contexte n’est pas prise en charge ; toute entrée répétée est
        facturée séparément à chaque requête. Si une réponse HTTP 200 contient
        `prompt_feedback.block_reason`, les tokens d’entrée restent facturés. En
        l’absence de données d’utilisation valides, la facturation repose sur
        une estimation.
      properties:
        total_input_tokens:
          type: integer
          description: >-
            Tokens d’entrée facturés pour l’entrée partagée et toutes les
            questions. L’entrée partagée n’est comptée qu’une fois par requête,
            quel que soit le nombre de questions ; chaque question n’ajoute que
            ses propres instructions et critères
          example: 324
        input_tokens_by_modality:
          type: array
          description: Tokens d’entrée par modalité
          items:
            type: object
            properties:
              modality:
                type: string
                description: >-
                  Modalité : `text`, `image` ou `audio`. Les images de vidéo et
                  les pages PDF sont comptées comme `image`
              tokens:
                type: integer
                description: Nombre de tokens pour cette modalité
        total_output_tokens:
          type: integer
          description: Toujours 0 ; ce modèle ne génère pas de texte
          example: 0
        total_tokens:
          type: integer
          description: Nombre total de tokens
          example: 324
    PromptFeedback:
      type: object
      description: >-
        Retour des filtres de contenu appliqués à l’entrée. Lorsque
        `block_reason` est défini, l’entrée a été bloquée, aucune question n’a
        été évaluée et `answers` est vide. Si la réponse porte le statut HTTP
        200, la requête reste facturée ; voir `usage`.
      properties:
        block_reason:
          type: string
          enum:
            - safety
            - other
            - blocklist
            - prohibited_content
            - image_safety
          description: Raison du blocage de l’entrée
        block_reason_message:
          type: string
          description: Détails sur la raison du blocage
    TextContent:
      type: object
      required:
        - type
        - text
      properties:
        type:
          type: string
          enum:
            - text
        text:
          type: string
          description: Contenu textuel
    ImageContent:
      type: object
      required:
        - type
        - mime_type
      properties:
        type:
          type: string
          enum:
            - image
        data:
          type: string
          contentEncoding: base64
          description: >-
            Octets du fichier encodés en base64 (100 MB au total au maximum pour
            les données intégrées d’une requête). Fournissez `data` ou `uri`
        uri:
          type: string
          format: uri
          description: >-
            URL HTTPS publique ou signée du fichier (jusqu’à 15 MB). Les URI de
            la Google Files API, les URI `gs://`, les noms `files/...` et les
            URL YouTube ne sont pas pris en charge. Fournissez `data` ou `uri`
        mime_type:
          type: string
          enum:
            - image/png
            - image/jpeg
            - image/webp
            - image/heic
            - image/heif
            - image/gif
            - image/bmp
            - image/tiff
          description: >-
            Type MIME. Il doit correspondre au format réel du fichier ; les
            types génériques comme `application/octet-stream` sont refusés
        resolution:
          type: string
          enum:
            - low
            - medium
            - high
            - ultra_high
          description: >-
            Facultatif. Résolution du média, qui détermine la consommation de
            tokens et le niveau de détail
    AudioContent:
      type: object
      required:
        - type
        - mime_type
      properties:
        type:
          type: string
          enum:
            - audio
        data:
          type: string
          contentEncoding: base64
          description: >-
            Octets du fichier encodés en base64 (100 MB au total au maximum pour
            les données intégrées d’une requête). Fournissez `data` ou `uri`
        uri:
          type: string
          format: uri
          description: >-
            URL HTTPS publique ou signée du fichier (jusqu’à 15 MB). Les URI de
            la Google Files API, les URI `gs://`, les noms `files/...` et les
            URL YouTube ne sont pas pris en charge. Fournissez `data` ou `uri`
        mime_type:
          type: string
          enum:
            - audio/wav
            - audio/mp3
            - audio/mpeg
            - audio/aiff
            - audio/aac
            - audio/ogg
            - audio/flac
            - audio/m4a
            - audio/opus
            - audio/webm
            - audio/l16
            - audio/alaw
            - audio/mulaw
          description: >-
            Type MIME. Il doit correspondre au format réel du fichier ; les
            types génériques comme `application/octet-stream` sont refusés
    VideoContent:
      type: object
      required:
        - type
        - mime_type
      properties:
        type:
          type: string
          enum:
            - video
        data:
          type: string
          contentEncoding: base64
          description: >-
            Octets du fichier encodés en base64 (100 MB au total au maximum pour
            les données intégrées d’une requête). Fournissez `data` ou `uri`
        uri:
          type: string
          format: uri
          description: >-
            URL HTTPS publique ou signée du fichier (jusqu’à 15 MB). Les URI de
            la Google Files API, les URI `gs://`, les noms `files/...` et les
            URL YouTube ne sont pas pris en charge. Fournissez `data` ou `uri`
        mime_type:
          type: string
          enum:
            - video/mp4
            - video/mpeg
            - video/mov
            - video/avi
            - video/webm
            - video/wmv
            - video/x-flv
            - video/3gpp
          description: >-
            Type MIME. Il doit correspondre au format réel du fichier ; les
            types génériques comme `application/octet-stream` sont refusés
        resolution:
          type: string
          enum:
            - low
            - medium
            - high
          description: >-
            Facultatif. Résolution du média, qui détermine la consommation de
            tokens et le niveau de détail. `ultra_high` ne s’applique qu’aux
            images
    DocumentContent:
      type: object
      required:
        - type
        - mime_type
      properties:
        type:
          type: string
          enum:
            - document
        data:
          type: string
          contentEncoding: base64
          description: >-
            Octets du PDF encodés en base64 (jusqu’à 50 MB). Fournissez `data`
            ou `uri`
        uri:
          type: string
          format: uri
          description: >-
            URL HTTPS publique ou signée du fichier (jusqu’à 15 MB). Les URI de
            la Google Files API, les URI `gs://`, les noms `files/...` et les
            URL YouTube ne sont pas pris en charge. Fournissez `data` ou `uri`
        mime_type:
          type: string
          enum:
            - application/pdf
          description: >-
            Type MIME. Il doit correspondre au format réel du fichier ; les
            types génériques comme `application/octet-stream` sont refusés
    QuestionInstructions:
      description: >-
        La question à évaluer sur `input`, rédigée en entier. Texte uniquement :
        une chaîne, un bloc de texte ou un tableau de blocs de texte
      oneOf:
        - type: string
          minLength: 1
        - $ref: '#/components/schemas/TextContent'
        - type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/TextContent'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Authentifiez-vous avec votre API Key EvoLink comme jeton Bearer.


        **Obtenir une API Key :**


        Consultez la [page de gestion des API
        Keys](https://evolink.ai/dashboard/keys).


        **En-tête de la requête :**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.