> ## 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.

# ajustes de sesión de ai_function_*

> Ajustes de sesión de ClickHouse en el grupo generado 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
  }}>Tipo</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Predeterminado</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Modificable sin reiniciar
        </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>
            Funcionalidad experimental. <u><a href="/docs/docs/beta-and-experimental-features#experimental-features">Más información.</a></u>
        </div>;
};

Estos ajustes están disponibles en [system.settings](/docs/es/reference/system-tables/settings) y se generan automáticamente a partir del [código fuente](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": "Nueva configuración"}]}]} />

Nombre de la colección con nombre que usa `aiEmbed` cuando la llamada no pasa `credentials` en su mapa de parámetros. Vacío significa que no hay ningún valor predeterminado: esas llamadas deben pasar `credentials` explícitamente. `aiEmbed` toma `model` como argumento posicional obligatorio, no de la colección con nombre. Se mantiene separado de `ai_function_text_default_credentials` porque un endpoint de embeddings es distinto de uno 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": "Nueva configuración"}]}]} />

Número máximo de textos que se pueden incluir en una sola solicitud HTTP realizada por `aiEmbed`. Los textos se agrupan en lotes de este tamaño para reducir la sobrecarga de las llamadas a la API. Por ejemplo, 500 textos únicos con un tamaño de lote de 100 dan como resultado 5 solicitudes 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": "Nueva configuración"}]}]} />

Número máximo de peticiones HTTP que las funciones de IA pueden realizar por consulta. Establézcalo en 0 para desactivarlo.

<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": "Nueva configuración"}]}]} />

Número máximo total de tokens de entrada (prompt) sumados entre todas las llamadas a la API de función de IA en una sola consulta. Se contabiliza de forma acumulativa a partir de las respuestas del proveedor. Tenga en cuenta que este límite puede superarse en la cantidad de tokens de entrada de una llamada, ya que esa cantidad no se conoce de antemano. Establézcalo en 0 para desactivarlo.

Este límite solo se aplica a los proveedores que informan un objeto `usage` en su respuesta (OpenAI, Anthropic, vLLM). Los proveedores que omiten el uso de tokens (en particular, HuggingFace TEI) hacen que el contador permanezca en 0; use `ai_function_max_api_calls_per_query` en su lugar para limitar esas llamadas.

<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": "Nueva configuración"}]}]} />

Número máximo total de tokens de salida (completion) en el conjunto de llamadas a la API de la función de IA dentro de una sola consulta. Se contabiliza de forma acumulativa a partir de las respuestas del proveedor. Ten en cuenta que este límite puede superarse por el equivalente a los tokens de salida de una llamada, ya que la cantidad de tokens de salida de una llamada no se conoce de antemano. Establécelo en 0 para desactivarlo.

Este límite solo se aplica a los proveedores que incluyen un objeto `usage` en su respuesta (OpenAI, Anthropic, vLLM). No se aplica a las funciones de embedding (en particular aiEmbed), que nunca generan tokens de salida.

<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": "Nueva configuración"}]}]} />

Número máximo de reintentos por errores transitorios para cada solicitud individual a la API. Cada reintento usa backoff exponencial a 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": "Nueva configuración"}]}]} />

Tiempo de espera, en segundos, para cada solicitud HTTP realizada por funciones de IA (completaciones de chat con IA y llamadas a la API de embedding). Si una solicitud no se completa dentro de este tiempo, se considera fallida y se puede reintentar según `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": "Nueva configuración"}]}]} />

Retraso inicial, en milisegundos, antes del primer reintento de una solicitud a la API de una función de IA que ha fallado. El retraso se duplica en cada intento posterior (backoff exponencial). Por ejemplo, con la configuración predeterminada: 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": "Nueva configuración"}]}]} />

Nombre de la colección con nombre que usan las funciones de IA de texto (`aiGenerate`, `aiClassify`, `aiExtract`, `aiTranslate`) cuando la llamada no incluye `credentials` en su mapa de parámetros. Vacío significa que no hay ningún valor predeterminado: esas llamadas deben pasar `credentials` explícitamente. Un endpoint de chat-completions es distinto de uno de embeddings, por lo que esto es independiente 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": "Nueva configuración"}]}]} />

Si es true (valor predeterminado), una llamada a una función de IA que falle de forma permanente tras agotar todos los reintentos interrumpe la consulta con una excepción. Si es false, la fila fallida recibe el valor predeterminado para el tipo de columna (cadena vacía para String) y el procesamiento continúa.

<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": "Nueva configuración"}]}]} />

Si es true (valor predeterminado), superar un límite de cuota de una función de IA (`ai_function_max_input_tokens_per_query`, `ai_function_max_output_tokens_per_query` o `ai_function_max_api_calls_per_query`) aborta la consulta con una excepción. Si es false, las filas restantes reciben el valor predeterminado del tipo de columna (cadena vacía para String).
