Todos os produtos
Search
Central de documentação

MaxCompute:AI_EXTRACT

Última atualização: Jul 24, 2026

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, temperature e top_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 input não for uma STRING ou labels não for um ARRAY<STRING>, a função retorna um erro.

  • Se um array constante fornecido para labels contiver mais de 20 rótulos, a função retorna um erro.

  • Se input ou labels for NULL, ou se input for uma string vazia (""), a função retorna NULL.

  • Se o texto de input não contiver informações para algum rótulo no array labels, 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.