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

# paramètres de session ai_function_*

> Paramètres de session ClickHouse dans le groupe généré « ai_function_* ».

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>Type</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Par défaut</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Modifiable sans redémarrage
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

export const ExperimentalBadge = () => {
  return <div className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            Fonctionnalité expérimentale. <u><a href="/docs/docs/beta-and-experimental-features#experimental-features">En savoir plus.</a></u>
        </div>;
};

Ces paramètres sont disponibles dans [system.settings](/docs/fr/reference/system-tables/settings) et sont générés automatiquement à partir du [source](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="ai_function_embedding_default_credentials">
  ## ai\_function\_embedding\_default\_credentials
</div>

<ExperimentalBadge />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": ""},{"label": "Nouveau paramètre"}]}]} />

Nom de la collection nommée utilisée par `aiEmbed` lorsque l’appel ne fournit pas `credentials` dans son mappage de paramètres. Une valeur vide signifie qu’il n’existe aucune valeur par défaut : ces appels doivent donc fournir `credentials` explicitement. `aiEmbed` prend `model` comme argument positionnel obligatoire, et non depuis la collection nommée. Ce paramètre est distinct de `ai_function_text_default_credentials`, car un endpoint d’embeddings diffère d’un endpoint de chat.

<div id="ai_function_embedding_max_batch_size">
  ## ai\_function\_embedding\_max\_batch\_size
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="NonZeroUInt64" default_value="100" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "100"},{"label": "Nouveau paramètre"}]}]} />

Nombre maximal de textes pouvant être inclus dans une seule requête HTTP envoyée par `aiEmbed`. Les textes sont regroupés en lots de cette taille afin de réduire la surcharge liée aux appels d’API. Par exemple, 500 textes uniques avec une taille de lot de 100 entraînent 5 requêtes HTTP.

<div id="ai_function_max_api_calls_per_query">
  ## ai\_function\_max\_api\_calls\_per\_query
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nouveau paramètre"}]}]} />

Nombre maximal de requêtes HTTP que les fonctions d’IA peuvent émettre au cours d’une requête. Définissez cette valeur sur 0 pour désactiver.

<div id="ai_function_max_input_tokens_per_query">
  ## ai\_function\_max\_input\_tokens\_per\_query
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="UInt64" default_value="1000000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1000000"},{"label": "Nouveau paramètre"}]}]} />

Nombre total maximal de tokens d’entrée (`prompt`) sur l’ensemble des appels à l’API de la fonction d’IA dans une seule requête. Comptabilisé de façon cumulative à partir des réponses du fournisseur. Notez que cette limite peut être dépassée à hauteur des tokens d’entrée d’un appel, car le nombre de tokens d’entrée d’un appel n’est pas connu à l’avance. Définissez-la sur 0 pour la désactiver.

Cette limite n’est appliquée qu’aux fournisseurs qui renvoient un objet `usage` dans leur réponse (OpenAI, Anthropic, vLLM). Les fournisseurs qui n’indiquent pas l’usage des tokens (notamment HuggingFace TEI) laissent le compteur à 0 — utilisez plutôt `ai_function_max_api_calls_per_query` pour plafonner ces appels.

<div id="ai_function_max_output_tokens_per_query">
  ## ai\_function\_max\_output\_tokens\_per\_query
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="UInt64" default_value="500000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "500000"},{"label": "Nouveau paramètre"}]}]} />

Nombre total maximal de tokens de sortie (complétion) pour l’ensemble des appels à l’API des fonctions IA au sein d’une même requête. Comptabilisé de façon cumulative à partir des réponses du fournisseur. Notez que cette limite peut être dépassée de l’équivalent des tokens de sortie d’un appel, car leur nombre n’est pas connu à l’avance. Définissez-la sur 0 pour la désactiver.

Cette limite n’est appliquée qu’aux fournisseurs qui renvoient un objet `usage` dans leur réponse (OpenAI, Anthropic, vLLM). Elle ne s’applique pas aux fonctions d’embedding (notamment aiEmbed), qui ne produisent jamais de tokens de sortie.

<div id="ai_function_max_retries">
  ## ai\_function\_max\_retries
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nouveau paramètre"}]}]} />

Nombre maximal de tentatives en cas d'erreurs transitoires pour chaque requête d’API. Chaque tentative utilise un backoff exponentiel à partir de `ai_function_retry_initial_delay_ms`.

<div id="ai_function_request_timeout_sec">
  ## ai\_function\_request\_timeout\_sec
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="UInt64" default_value="60" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "60"},{"label": "Nouveau paramètre"}]}]} />

Délai d’expiration, en secondes, pour chaque requête HTTP effectuée par les fonctions d’IA (complétions de chat AI Chat et appels à l’API d’embedding). Si une requête ne se termine pas dans ce délai, elle est considérée comme échouée et peut être retentée conformément à `ai_function_max_retries`.

<div id="ai_function_retry_initial_delay_ms">
  ## ai\_function\_retry\_initial\_delay\_ms
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1000"},{"label": "Nouveau paramètre"}]}]} />

Délai initial, en millisecondes, avant la première nouvelle tentative d’une requête d’API de fonction d’IA ayant échoué. Le délai est doublé à chaque tentative suivante (backoff exponentiel). Par exemple, avec les paramètres par défaut : 1000ms, 2000ms, 4000ms.

<div id="ai_function_text_default_credentials">
  ## ai\_function\_text\_default\_credentials
</div>

<ExperimentalBadge />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": ""},{"label": "Nouveau paramètre"}]}]} />

Nom de la collection nommée utilisée par les fonctions IA de texte (`aiGenerate`, `aiClassify`, `aiExtract`, `aiTranslate`) lorsque l'appel ne transmet pas `credentials` dans son mappage de paramètres. Une valeur vide signifie qu'il n'y a pas de valeur par défaut : ces appels doivent donc transmettre `credentials` explicitement. Un endpoint de chat-completions étant différent d'un endpoint d'embeddings, ce paramètre est distinct de `ai_function_embedding_default_credentials`.

<div id="ai_function_throw_on_error">
  ## ai\_function\_throw\_on\_error
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "Nouveau paramètre"}]}]} />

Si true (par défaut), un appel à une fonction d’IA qui échoue de façon définitive après épuisement de toutes les tentatives interrompt la requête en générant une exception. Si false, la ligne en échec reçoit la valeur par défaut du type de colonne (chaîne vide pour String) et le traitement se poursuit.

<div id="ai_function_throw_on_quota_exceeded">
  ## ai\_function\_throw\_on\_quota\_exceeded
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "Nouveau paramètre"}]}]} />

Si true (par défaut), le dépassement d’une limite de quota d’une fonction d’IA (`ai_function_max_input_tokens_per_query`, `ai_function_max_output_tokens_per_query` ou `ai_function_max_api_calls_per_query`) interrompt la requête en levant une exception. Si false, les lignes restantes reçoivent la valeur par défaut du type de colonne (chaîne vide pour String).
