AI_EXTRACT é uma função de IA do MaxCompute que chama um modelo para extrair informações específicas de um texto com base em uma lista de rótulos.
Sintaxe
STRING AI_EXTRACT(
STRING <model_name>,
STRING <version_name>,
STRING <input>,
ARRAY<STRING> <labels>
[, STRING <model_parameters>]
);
Parâmetros
model_name: Obrigatório. STRING. Nome do modelo a usar. Para mais informações, consulte SQL AI function.
version_name: Obrigatório. STRING. Nome da versão do modelo a usar. Para usar a versão padrão, especifique
DEFAULT_VERSION.input: Obrigatório. STRING. Texto do qual extrair as informações.
labels: Obrigatório. Tipo de dados:ARRAY<STRING>. Lista de rótulos a extrair. A quantidade pode variar de 1 a 20.-
model_parameters: Opcional. STRING. Defina parâmetros do modelo como
max_tokens,temperatureetop_p. O formato é uma string JSON:'{"max_tokens": 500, "temperature": 0.6, "top_p": 0.95}'.max_tokens: Número máximo de tokens gerados em uma única chamada ao modelo. Para modelos públicos do MaxCompute, o valor padrão é 4.096.
temperature: Valor entre 0 e 1 que controla a aleatoriedade da saída. Valores mais altos resultam em saídas mais criativas e diversificadas; valores mais baixos produzem resultados mais determinísticos e conservadores.
top_p: Valor entre 0 e 1 que limita o intervalo de rótulos candidatos disponíveis para o modelo. Valores mais altos ampliam o intervalo e aumentam a diversidade; valores mais baixos restringem o intervalo e geram resultados mais focados.
Valor retornado
Retorna uma STRING no formato JSON contendo todos os rótulos extraídos e seus respectivos valores. A função segue estas regras:
Se
inputnão for uma STRING oulabelsnão for um ARRAY<STRING>, a função retorna um erro.Se um array constante fornecido para
labelscontiver mais de 20 rótulos, a função retorna um erro.Se
inputoulabelsfor NULL, ou seinputfor uma string vazia (""), a função retorna NULL.Se o texto de
inputnão contiver informações para algum rótulo no arraylabels, o valor desse rótulo será NULL na saída.
Exemplos
Exemplo 1: Extração com rótulos constantes
Chame o modelo público do MaxCompute qwen3.7-max para extrair informações estruturadas do texto fornecido conforme os rótulos especificados.
SET odps.namespace.schema=true;
SELECT AI_EXTRACT(
bigdata_public_modelset.default.`qwen3.7-max`,
DEFAULT_VERSION,
'Zhang Wei is a 35-year-old software engineer who works at the Alibaba Cloud office in Hangzhou. He joined the company in 2020 and specializes in distributed computing.',
ARRAY('Name', 'Age', 'Occupation', 'Company', 'City', 'Year Joined')
) AS extracted_info;
-- Result
+----------------+
| extracted_info |
+----------------+
| {\n "Name": "Zhang Wei",\n "Age": 35,\n "Occupation": "Software Engineer",\n "Company": "Alibaba Cloud",\n "City": "Hangzhou",\n "Year Joined": 2020\n} |
+----------------+
Exemplo 2: Extração de dados de tabela
Chame o modelo público do MaxCompute deepseek-v4-pro para extrair informações sobre product, problema e sentimento de avaliações de clientes armazenadas em uma tabela.
-- Sample data
CREATE TABLE customer_reviews (
review STRING
);
INSERT INTO customer_reviews VALUES
('The new laptop has great battery life, but the keyboard feels a bit off.'),
('Shipping was fast, and the sound quality of the headphones is excellent for the price. Very satisfied.'),
('The monitor had dead pixels, so I returned it. The customer service was helpful, though.');
-- Call the model to extract structured information from customer reviews in the table
SET odps.namespace.schema=true;
SELECT
review,
AI_EXTRACT(
bigdata_public_modelset.default.`deepseek-v4-pro`,
DEFAULT_VERSION,
review,
ARRAY('Product', 'Issue', 'Sentiment')
) AS extracted_info
FROM customer_reviews;
-- Result
+--------+----------------+
| review | extracted_info |
+--------+----------------+
| The new laptop has great battery life, but the keyboard feels a bit off. | {"Product": "Laptop", "Issue": "Keyboard feels off", "Sentiment": "Negative"} |
| Shipping was fast, and the sound quality of the headphones is excellent for the price. Very satisfied. | {"Product": "Headphones", "Issue": null, "Sentiment": "Positive"} |
| The monitor had dead pixels, so I returned it. The customer service was helpful, though. | {"Product": "Monitor", "Issue": "Dead pixels", "Sentiment": "Negative"} |
+--------+----------------+
FAQ
Solução de problemas com modelos públicos
Sintoma: Ao chamar um public model compatível com o Model Computing Service, você recebe o seguinte erro:
FAILED: ODPS-0130071:[1,8] Semantic analysis exception - inference quota status check failed, error message: region cn-shanghai not found in inference quota
Causa: O Model Computing Service não está ativado na region do seu project (por exemplo, cn-shanghai). Consequentemente, o MaxCompute não consegue acessar os AI inference resources.
Solução: Acesse o Alibaba Cloud console e ative o Model Computing Service para a region do seu project. Para instruções detalhadas, consulte Purchase and use the MaxCompute Model Computing Service.