AI_EXTRACT extrait des informations structurées du texte brut à l'aide d'un grand modèle de langage (LLM).
Limites
Uniquement pris en charge par le moteur de calcul en temps réel Ververica Runtime (VVR) 11.4 ou version ultérieure.
Pour utiliser le service Flink AI (modèles intégrés), vous devez disposer de la version VVR 11.7 ou ultérieure et activer le service Flink AI. Pour plus de détails, consultez la rubrique Service Flink AI (modèles intégrés).
Le débit est limité par la plateforme de service de modèle. Lorsque le trafic atteint la limite d'accès de la plateforme, une contre-pression s'exerce sur les opérateurs Flink utilisés dans les instructions
AI_EXTRACT. Une limitation de débit sévère peut provoquer des délais d'expiration et entraîner le redémarrage du job Flink.
Syntaxe
AI_EXTRACT(
MODEL => MODEL <MODEL NAME>,
INPUT => <INPUT COLUMN NAME>,
EXTRACT_SCHEMA => <EXTRACT SCHEMA>
)
Paramètres
| Paramètre | Type de données | Description |
|---|---|---|
MODEL <MODEL NAME> |
MODEL | Nom du service de modèle enregistré. Pour plus d'informations, consultez la rubrique Paramètres du modèle. Remarque : le type de sortie de ce modèle doit être VARIANT. |
<INPUT COLUMN NAME> |
STRING | Colonne contenant le texte brut dont il faut extraire les informations. |
<EXTRACT_SCHEMA> |
STRING | Chaîne JSON définissant les champs à extraire et leurs types de données. Doit être une constante. |
Valeurs de retour
| Colonne | Type de données | Description |
|---|---|---|
extracted_json |
STRING | Champs extraits sous forme de chaîne JSON. |
Exemples
Données de test
| id | description |
|---|---|
| 1 | Xiao Ming a 18 ans et vit à Hangzhou. Son numéro de téléphone est . |
Instructions SQL
L'exemple suivant utilise un modèle intégré Flink et la fonction AI_EXTRACT pour extraire les informations utilisateur.
CREATE TEMPORARY MODEL general_model
INPUT (`input` STRING)
OUTPUT (`content` VARIANT)
WITH (
'provider' = 'openai-compat',
'task' = 'chat/completions',
'model' = 'qwen3.6-flash'
);
CREATE TEMPORARY VIEW infos(id, description)
AS VALUES (1, 'Xiao Ming is 18 years old and lives in Hangzhou. His phone number is ******.');
-- Positional argument style
SELECT id, extracted_json
FROM infos,
LATERAL TABLE(
AI_EXTRACT(
MODEL general_model,
description,
'{"name":"string","phone":"string","address":"string","age":"int"}'));
-- Named argument style
SELECT id, extracted_json
FROM infos,
LATERAL TABLE(
AI_EXTRACT(
MODEL => MODEL general_model,
INPUT => description,
EXTRACT_SCHEMA => '{"name":"string","phone":"string","address":"string","age":"int"}'));
Sortie
| id | extracted_json |
|---|---|
| 1 | {"address":"Hangzhou","age":18,"name":"Xiao Ming","phone":"******"} |