Las funciones de IA pueden devolver resultados impredecibles. El resultado dependerá en gran medida de la calidad del prompt y del modelo utilizado.
- Aplicación de cuotas: Límites por consulta de tokens (
ai_function_max_input_tokens_per_query,ai_function_max_output_tokens_per_query) y llamadas a la API (ai_function_max_api_calls_per_query). - Reintentos con backoff: Los fallos transitorios se reintentan (
ai_function_max_retries) con backoff exponencial (ai_function_retry_initial_delay_ms).
Configuración
Parámetros de la colección nombrada
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
provider | String | — | Proveedor del modelo. Admitidos: 'openai', 'anthropic'. Consulte la nota a continuación. |
endpoint | String | — | URL del endpoint de la API. |
model | String | — | Nombre del modelo (p. ej. 'gpt-4o-mini', 'text-embedding-3-small'). |
api_key | String | — | Clave de autenticación del proveedor. |
max_tokens | UInt64 | 1024 | Número máximo de tokens de salida por llamada a la API. |
api_version | String | — | Cadena de versión de la API. La utiliza Anthropic ('2023-06-01'). |
Se puede usar cualquier API compatible con OpenAI (p. ej. vLLM, Ollama, LiteLLM) configurando
provider = 'openai' y apuntando endpoint a su servicio.Configuración a nivel de consulta
ai_function_.
Restricción de hosts de endpoint
endpoint en una colección nombrada de IA es un destino saliente al que el servidor se conecta con su propia identidad, enviando la api_key de la colección nombrada en los encabezados de la solicitud. De forma predeterminada, ClickHouse permite cualquier host. Para restringir las funciones a un conjunto específico de proveedores, configure remote_url_allow_hosts en la configuración del servidor, por ejemplo:
Proveedores compatibles
| Proveedor | Valor de provider | Funciones de chat | Notas |
|---|---|---|---|
| OpenAI | 'openai' | Sí | Proveedor por defecto. |
| Anthropic | 'anthropic' | Sí | Usa el endpoint /v1/messages. |
Observabilidad
| ProfileEvent | Description |
|---|---|
AIAPICalls | Número de solicitudes HTTP realizadas al proveedor de IA. |
AIInputTokens | Total de tokens de entrada consumidos. |
AIOutputTokens | Total de tokens de salida consumidos. |
AIRowsProcessed | Número de filas que recibieron un resultado. |
AIRowsSkipped | Número de filas omitidas (se superó la cuota o hubo un error con ai_function_throw_on_error = 0). |
aiClassify
{"category": "..."}, se extrae la etiqueta y se devuelve su cadena de texto.
El primer argumento es una colección nombrada que especifica el proveedor, el modelo, el endpoint y la API key.
Sintaxis
AIClassify
Argumentos
collection— Nombre de una colección nombrada que contiene credenciales del proveedor y configuración.Stringtext— Texto que se va a clasificar.Stringcategories— Lista constante de etiquetas de categorías candidatas.Array(String)temperature— Temperatura de muestreo que controla la aleatoriedad. Valor predeterminado:0.0.Float64
ai_function_throw_on_error está deshabilitada. String
Ejemplos
Clasificación de sentimiento
Query
Response
Query
Response
aiExtract
'the main complaint') o un
esquema codificado en JSON con la forma '{"field_a": "description of field a", "field_b": "description of field b"}'.
En el modo de instrucción, la función devuelve el valor extraído como una cadena de texto simple, o una cadena vacía si no se encuentra nada.
En el modo de esquema, la función devuelve una cadena que contiene un objeto JSON cuyas claves coinciden con el esquema solicitado; los campos ausentes son null.
El primer argumento es una colección nombrada que especifica el proveedor, el modelo, el endpoint y la API key.
Sintaxis
AIExtract
Argumentos
collection— Nombre de una colección nombrada que contiene las credenciales del proveedor y la configuración.Stringtext— Texto del que extraer información.Stringinstruction_or_schema— Instrucción de extracción en formato libre, o un objeto JSON constante que describe los campos que se deben extraer.const Stringtemperature— Temperatura de muestreo que controla la aleatoriedad. Valor predeterminado:0.0.const Float64
ai_function_throw_on_error está deshabilitado. String
Ejemplos
Instrucción en formato libre
Query
Response
Query
Response
aiGenerate
You are a helpful assistant. Provide a clear and concise response.
El primer argumento es una colección nombrada que especifica el proveedor, el modelo, el endpoint y la API key.
Sintaxis
AIGenerate
Argumentos
collection— Nombre de una colección con nombre que contiene las credenciales del proveedor y la configuración.Stringprompt— El prompt o la pregunta del usuario que se enviará al modelo.Stringsystem_prompt— Instrucción opcional y constante a nivel de sistema que guía el comportamiento del modelo (p. ej., persona, formato de salida), enviada junto con cada prompt.Stringtemperature— Temperatura de muestreo que controla la aleatoriedad. Valor predeterminado:0.7.Float64
ai_function_throw_on_error está deshabilitado. String
Ejemplos
Pregunta simple
Query
Response
Query
Response
Query
Response
aiTranslate
'mantener los términos técnicos sin traducir').
El primer argumento es una colección nombrada que especifica el proveedor, el modelo, el endpoint y la API key.
Sintaxis
AITranslate
Argumentos
collection— Nombre de una colección nombrada que contiene las credenciales del proveedor y la configuración.Stringtext— Texto que se va a traducir.Stringtarget_language— Nombre del idioma de destino o código BCP-47 (p. ej.,'French','es-MX').Stringinstructions— Instrucciones adicionales constantes opcionales para el traductor.Stringtemperature— Temperatura de muestreo que controla la aleatoriedad. Valor predeterminado:0.3.Float64
ai_function_throw_on_error está deshabilitado. String
Ejemplos
Traducir al francés
Query
Response
Query
Response