As funções de IA podem retornar saídas imprevisíveis. O resultado dependerá muito da qualidade do prompt e do modelo usado.
- Aplicação de cotas: Limites por consulta para tokens (
ai_function_max_input_tokens_per_query,ai_function_max_output_tokens_per_query) e chamadas de API (ai_function_max_api_calls_per_query). - Retentativas com backoff: Falhas transitórias são repetidas (
ai_function_max_retries) com backoff exponencial (ai_function_retry_initial_delay_ms).
Configuração
Parâmetros da coleção nomeada
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
provider | String | — | Provedor do modelo. Compatível com: 'openai', 'anthropic'. Veja a observação abaixo. |
endpoint | String | — | URL do endpoint da API. |
model | String | — | Nome do modelo (por exemplo, 'gpt-4o-mini', 'text-embedding-3-small'). |
api_key | String | — | Chave de autenticação do provedor. |
max_tokens | UInt64 | 1024 | Número máximo de tokens de saída por chamada à API. |
api_version | String | — | String de versão da API. Usada pelo Anthropic ('2023-06-01'). |
Qualquer API compatível com OpenAI (por exemplo, vLLM, Ollama, LiteLLM) pode ser usada definindo
provider = 'openai' e apontando o endpoint para o seu serviço.Configurações no nível da consulta
ai_function_.
Restringindo hosts de endpoint
endpoint em uma coleção nomeada de IA é um destino de saída ao qual o servidor se conecta com sua própria identidade, enviando a api_key da coleção nomeada nos cabeçalhos da solicitação. Por padrão, o ClickHouse permite qualquer host. Para restringir as funções a um conjunto específico de provedores, configure remote_url_allow_hosts na configuração do servidor, por exemplo:
Provedores compatíveis
| Provedor | valor de provider | Funções de chat | Observações |
|---|---|---|---|
| OpenAI | 'openai' | Sim | Provedor padrão. |
| Anthropic | 'anthropic' | Sim | Usa o endpoint /v1/messages. |
Observabilidade
| ProfileEvent | Description |
|---|---|
AIAPICalls | Número de solicitações HTTP feitas ao provedor de IA. |
AIInputTokens | Total de tokens de entrada consumidos. |
AIOutputTokens | Total de tokens de saída consumidos. |
AIRowsProcessed | Número de linhas que receberam um resultado. |
AIRowsSkipped | Número de linhas ignoradas (cota excedida ou erro com ai_function_throw_on_error = 0). |
aiClassify
{"category": "..."}, o rótulo é extraído, e a string do rótulo é retornada.
O primeiro argumento é uma coleção nomeada que especifica o provedor, o modelo, o endpoint e a chave de API.
Sintaxe
AIClassify
Argumentos
collection— Nome de uma coleção nomeada que contém credenciais do provedor e configuração.Stringtext— Texto a ser classificado.Stringcategories— Lista constante de rótulos de categorias possíveis.Array(String)temperature— Temperatura de amostragem que controla a aleatoriedade. Padrão:0.0.Float64
ai_function_throw_on_error esteja desabilitado. String
Exemplos
Classificar o sentimento
Query
Response
Query
Response
aiExtract
'a principal reclamação') ou um
schema codificado em JSON no formato '{"field_a": "description of field a", "field_b": "description of field b"}'.
No modo de instrução, a função retorna o valor extraído como uma string simples, ou uma string vazia se nada for encontrado.
No modo de schema, a função retorna uma string contendo um objeto JSON cujas chaves correspondem ao schema solicitado; os campos ausentes são null.
O primeiro argumento é uma coleção nomeada que especifica o provedor, o modelo, o endpoint e a chave de API.
Sintaxe
AIExtract
Argumentos
collection— Nome de uma coleção nomeada que contém credenciais do provedor e a configuração.Stringtext— Texto do qual extrair informações.Stringinstruction_or_schema— Instrução de extração em formato livre ou um objeto JSON constante que descreve os campos a serem extraídos.const Stringtemperature— Temperatura de amostragem que controla a aleatoriedade. Padrão:0.0.const Float64
ai_function_throw_on_error estiver desativado. String
Exemplos
Instrução em formato livre
Query
Response
Query
Response
aiGenerate
You are a helpful assistant. Provide a clear and concise response.
O primeiro argumento é uma coleção nomeada que especifica o provedor, o modelo, o endpoint e a chave de API.
Sintaxe
AIGenerate
Argumentos
collection— Nome de uma coleção nomeada que contém credenciais do provedor e configuração.Stringprompt— O prompt ou a pergunta do usuário a ser enviada ao modelo.Stringsystem_prompt— Instrução constante opcional em nível de sistema que orienta o comportamento do modelo (por exemplo, persona, formato de saída), enviada com cada prompt.Stringtemperature— Temperatura de amostragem que controla a aleatoriedade. Padrão:0.7.Float64
ai_function_throw_on_error estiver desabilitado. String
Exemplos
Pergunta simples
Query
Response
Query
Response
Query
Response
aiTranslate
'manter termos técnicos sem tradução').
O primeiro argumento é uma coleção nomeada que especifica o provedor, o modelo, o endpoint e a chave de API.
Sintaxe
AITranslate
Argumentos
collection— Nome de uma coleção nomeada que contém credenciais do provedor e configuração.Stringtext— Texto a ser traduzido.Stringtarget_language— Nome do idioma de destino ou código BCP-47 (por exemplo,'French','es-MX').Stringinstructions— Instruções adicionais constantes, opcionais, para o tradutor.Stringtemperature— Temperatura de amostragem que controla a aleatoriedade. Padrão:0.3.Float64
ai_function_throw_on_error esteja desabilitado. String
Exemplos
Traduzir para o francês
Query
Response
Query
Response