AI_EXTRACT extrae información estructurada de texto sin procesar mediante un modelo de lenguaje grande (LLM).
Limitaciones
Solo es compatible con el motor de computación en tiempo real Ververica Runtime (VVR) 11.4 o posterior.
Para usar el servicio Flink AI (modelos integrados), se requiere VVR 11.7 o posterior y debe activar el servicio Flink AI. Para más detalles, consulte Servicio Flink AI (modelos integrados).
La plataforma del servicio de modelos limita el rendimiento. Cuando el tráfico alcanza el límite de acceso de la plataforma, se produce contrapresión en los operadores de Flink que se usan en las instrucciones
AI_EXTRACT. Una limitación de velocidad severa puede provocar tiempos de espera agotados y reiniciar el trabajo de Flink.
Sintaxis
AI_EXTRACT(
MODEL => MODEL <MODEL NAME>,
INPUT => <INPUT COLUMN NAME>,
EXTRACT_SCHEMA => <EXTRACT SCHEMA>
)
Parámetros
|
Parámetro |
Tipo de dato |
Descripción |
|
|
MODEL |
El nombre del servicio de modelo registrado. Para más información, consulte Model Settings. Nota: el tipo de salida de este modelo debe ser |
|
|
STRING |
La columna que contiene el texto sin procesar del cual se extraerá la información. |
|
|
STRING |
Una cadena JSON que define los campos por extraer y sus tipos de dato. Debe ser una constante. |
Valores de retorno
|
Columna |
Tipo de dato |
Descripción |
|
|
STRING |
Los campos extraídos como una cadena JSON. |
Ejemplos
Datos de prueba
|
id |
descripción |
|
1 |
Xiao Ming is 18 years old and lives in Hangzhou. His phone number is . |
Instrucciones SQL
En el siguiente ejemplo se hace referencia a un modelo integrado de Flink y se usa AI_EXTRACT para extraer información del usuario.
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"}'));
Salida
|
id |
extracted_json |
|
1 |
|