Les fonctions d’IA sont expérimentales. Définissez
allow_experimental_ai_functions pour les activer.Les fonctions d’IA peuvent produire des résultats imprévisibles. Le résultat dépendra fortement de la qualité du prompt et du modèle utilisés.
- Application des quotas : limites par requête sur les tokens (
ai_function_max_input_tokens_per_query,ai_function_max_output_tokens_per_query) et sur les appels d’API (ai_function_max_api_calls_per_query). - Nouvelle tentative avec backoff : les échecs temporaires sont réessayés (
ai_function_max_retries) avec un backoff exponentiel (ai_function_retry_initial_delay_ms).
Configuration
Paramètres de la collection nommée
Toute API compatible OpenAI (par ex. vLLM, Ollama, LiteLLM) peut être utilisée en définissant
provider = 'openai' et en pointant endpoint vers votre service.Paramètres au niveau de la requête
ai_function_.
Restreindre les hôtes de point de terminaison
endpoint d’une collection nommée d’IA est une destination sortante à laquelle le serveur se connecte avec sa propre identité, en transmettant potentiellement (si elle est spécifiée) l’api_key de la collection nommée dans les en-têtes de requête. Par défaut, ClickHouse autorise n’importe quel hôte. Pour limiter les fonctions à un ensemble spécifique de fournisseurs, configurez remote_url_allow_hosts dans la configuration du serveur, par exemple :
Fournisseurs pris en charge
Observabilité
Interrogez ces événements :
aiClassify
{"category": "..."}, le libellé est extrait et sa chaîne de caractères est renvoyée.
Le premier argument est une collection nommée qui spécifie le fournisseur, le modèle, le point de terminaison et, éventuellement, une clé API.
Syntaxe
AIClassify
Arguments
collection— Nom d’une collection nommée contenant les identifiants du fournisseur et la configuration.Stringtext— Texte à classifier.Stringcategories— Liste constante des libellés des catégories candidates.Array(String)temperature— Température d’échantillonnage contrôlant l’aléa. Par défaut :0.0.Float64
ai_function_throw_on_error est désactivé. String
Exemples
Classifier le sentiment
Query
Response
Query
Response
aiEmbed
Array(Float32).
Au sein d’un même bloc de lignes, les entrées sont regroupées en lots de
ai_function_embedding_max_batch_size
entrées maximum par requête HTTP afin de réduire la surcharge de chaque appel.
Le premier argument est une collection nommée qui spécifie le fournisseur, le modèle, le point de terminaison et, éventuellement, une clé API.
L’argument facultatif dimensions, lorsqu’il est pris en charge par le modèle (par exemple text-embedding-3-* d’OpenAI),
demande un vecteur de la taille indiquée ; sinon, la taille native du modèle est renvoyée.
Syntaxe
collection— Nom d’une collection nommée contenant les identifiants du fournisseur et la configuration.Stringtext— Texte à encoder.Stringdimensions— Nombre de dimensions cible facultatif pour le vecteur de sortie.0ou l’omission de ce paramètre signifie utiliser la dimension native du modèle.UInt64
ai_function_throw_on_error est désactivé, ou si un quota a été dépassé alors que ai_function_throw_on_quota_exceeded est désactivé. Array(Float32)
Exemples
Encoder une seule chaîne
Query
Response
Query
Response
Query
Response
aiExtract
'the main complaint'), soit un
schéma au format JSON de la forme '{"field_a": "description of field a", "field_b": "description of field b"}'.
En mode instruction, la fonction renvoie la valeur extraite sous la forme d’une simple chaîne de caractères, ou une chaîne vide si rien n’a été trouvé.
En mode schéma, la fonction renvoie une chaîne JSON représentant un objet dont les clés correspondent au schéma demandé ; les champs manquants sont null.
Le premier argument est une collection nommée qui spécifie le fournisseur, le modèle, le point de terminaison et, éventuellement, une clé API.
Syntaxe
AIExtract
Arguments
collection— Nom d’une collection nommée contenant les identifiants du fournisseur et la configuration.Stringtext— Texte à partir duquel extraire des informations.Stringinstruction_or_schema— Instruction d’extraction en texte libre, ou objet JSON constant décrivant les champs à extraire.const Stringtemperature— Température d’échantillonnage qui contrôle le caractère aléatoire. Par défaut :0.0.const Float64
ai_function_throw_on_error est désactivé. String
Exemples
Instruction en texte libre
Query
Response
Query
Response
aiGenerate
You are a helpful assistant. Provide a clear and concise response.
Le premier argument est une collection nommée qui spécifie le fournisseur, le modèle, le point de terminaison et, éventuellement, une clé API.
Syntaxe
AIGenerate
Arguments
collection— Nom d’une collection nommée contenant les identifiants du fournisseur et la configuration.Stringprompt— Le prompt ou la question de l’utilisateur à envoyer au modèle.Stringsystem_prompt— Instruction système constante facultative qui guide le comportement du modèle (par ex. persona, format de sortie) et est envoyée avec chaque prompt.Stringtemperature— Température d’échantillonnage contrôlant le caractère aléatoire. Par défaut :0.7.Float64
ai_function_throw_on_error est désactivé. String
Exemples
Question simple
Query
Response
Query
Response
Query
Response
aiTranslate
'keep technical terms untranslated').
Le premier argument est une collection nommée qui spécifie le fournisseur, le modèle, le point de terminaison et, éventuellement, une clé API.
Syntaxe
AITranslate
Arguments
collection— Nom d’une collection nommée contenant les identifiants du fournisseur et la configuration.Stringtext— Texte à traduire.Stringtarget_language— Nom de la langue cible ou code BCP-47 (par exemple,'French','es-MX').Stringinstructions— Instructions supplémentaires facultatives et constantes destinées au traducteur.Stringtemperature— Température d’échantillonnage qui contrôle le caractère aléatoire. Valeur par défaut :0.3.Float64
ai_function_throw_on_error est désactivé. String
Exemples
Traduire en français
Query
Response
Query
Response