Todos os produtos
Search
Central de documentação

MaxCompute:AI_GENERATE

Última atualização: Jul 24, 2026

A função AI_GENERATE do MaxCompute invoca um modelo com um prompt para executar uma tarefa de inferência. Ela atende a diversos cenários, como geração de linguagem natural, análise lógica complexa, análise de sentimentos e compreensão multimodal. Esse recurso permite processar dados não estruturados diretamente via SQL, sem depender de serviços externos.

Sintaxe

A função AI_GENERATE possui assinaturas diferentes para modelos de linguagem grandes (LLMs) e modelos de linguagem grandes multimodais (MLLMs).

  • Se o model_type for um LLM, a assinatura da função é:

    STRING AI_GENERATE(
      STRING <model_name> , 
      STRING <version_name>, 
      STRING <prompt> 
      [, STRING <model_parameters>]
    );
  • Se o model_type for um MLLM, a assinatura da função é:

    STRING AI_GENERATE(
      STRING <model_name>, 
      STRING <version_name>, 
      STRING | BINARY <unstructured_data> ,
      STRING <prompt> 
      STRING <type>
      [, STRING <model_parameters>]
    );

Parâmetros

  • model_name: Obrigatório. Valor STRING que especifica o nome do modelo. O model_type do modelo deve ser LLM ou MLLM.

  • version_name: Obrigatório. Valor STRING que define a versão do modelo. Para invocar a versão padrão, especifique DEFAULT_VERSION.

  • prompt: Obrigatório. Prompt enviado ao modelo. Deve ser uma constante, um nome de coluna ou uma expressão do tipo STRING.

  • unstructured_data: Obrigatório quando o model_type é MLLM. Aceita valores STRING ou BINARY.

    Define os dados multimodais a serem processados. Pode ser uma URL STRING de imagem, áudio ou vídeo, ou a representação BINARY de uma imagem. Caso utilize o tipo BINARY, também será necessário definir um parâmetro de entrada BINARY durante a criação do modelo.

  • type: Quando unstructured_data for uma URL STRING referente a imagem, áudio ou vídeo, o parâmetro type é obrigatório. Os valores suportados são IMAGE, AUDIO e VIDEO. Exemplos:

    • Áudio: AI_GENERATE(model, version,audio_url, prompt, 'AUDIO');

    • Vídeo: AI_GENERATE(model, version, video_url, prompt, 'VIDEO');

    • Imagem: AI_GENERATE(model, version, image_url, prompt, 'IMAGE');

  • model_parameters: Opcional. STRING. Especifica 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, enquanto 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 escolha pelo modelo. Um valor maior amplia o leque de opções e aumenta a diversidade; já um valor menor restringe as possibilidades e gera resultados mais focados.

Nota

Para utilizar uma função de IA na inferência com um modelo público, primeiro ative o uso de modelos públicos executando o comando SET odps.sql.using.public.model=true;.

Valor de retorno

Retorna uma STRING contendo o conteúdo gerado pelo modelo.

Exemplos

Exemplo 1: Realizar análise de sentimentos

Utilize o modelo público qwen3.7-max fornecido pelo MaxCompute para analisar sentimentos em dados de comentários de usuários online.

SET odps.namespace.schema=true;

SELECT 
    prompt,
    AI_GENERATE(
        bigdata_public_modelset.default.`qwen3.7-max`,
        DEFAULT_VERSION,
        concat('Please classify the sentiment of the following comment. The output must be exactly one of the following three options: Positive, Negative, Neutral. Comment to analyze: ', prompt)
    ) AS generated_text
FROM (
    VALUES 
        ('The weather is great today, and I am in a good mood! The sun is shining, perfect for a walk. /no_think'),
        ('The weather is great today, and I am in a good mood! The sun is shining /no_think'),
        ('Technology is advancing rapidly, and artificial intelligence is changing lives. /no_think'),
        ('The control measures are excellent, kudos to the healthcare workers! /no_think'),
        ('The quality of this product is very poor /no_think')
) t (prompt);

-- The following result is returned:
+--------+----------------+
| prompt | generated_text |
+--------+----------------+
| The weather is great today, and I am in a good mood! The sun is shining, perfect for a walk. /no_think | Positive         |
| The weather is great today, and I am in a good mood! The sun is shining /no_think | Positive         |
| Technology is advancing rapidly, and artificial intelligence is changing lives. /no_think | Neutral          |
| The control measures are excellent, kudos to the healthcare workers! /no_think | Positive         |
| The quality of this product is very poor /no_think | Negative         |
+--------+----------------+

Exemplo 2: Gerar conteúdo

Invoque o modelo público deepseek-v4-pro disponibilizado pelo MaxCompute para realizar inferência e geração de conteúdo diretamente.

SET odps.namespace.schema=true;

SELECT AI_GENERATE(bigdata_public_modelset.default.`deepseek-v4-pro`,DEFAULT_VERSION,'what is the capital of China');

-- The following result is returned:
+-----+
| _c0 |
+-----+
| The capital of China is **Beijing**. |
+-----+

Exemplo 3: Processar dados multimodais

  • Processamento de imagens

    Chame o modelo público qwen3.7-plus para classificar categorias de produtos com base em uma URL de imagem e um prompt. Neste exemplo, a Object Table chama-se image_demo.

    -- Enable the three-tier model.
    SET odps.namespace.schema=true;
    
    -- Create an Object Table.
    CREATE OBJECT TABLE IF NOT EXISTS image_demo
    WITH SERDEPROPERTIES ('odps.properties.rolearn'='acs:ram::xxxxxxxxxxxxxxxx:role/aliyunodpsdefaultrole')
    LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/muze-demo/poster_11/';
    
    ALTER TABLE image_demo REFRESH METADATA;
    
    SELECT COUNT(*) AS ROW_COUNT FROM image_demo; 
    +------------+
    | row_count  |
    +------------+
    | 50         |
    +------------+
    
    -- Invoke the public model qwen3.7-plus to label product categories based on an image URL and a prompt.
    SELECT
      key,
      AI_GENERATE(
        bigdata_public_modelset.default.`qwen3.7-plus`,  DEFAULT_VERSION, image_url,
        'Identify and extract the product category from the e-commerce product poster. The output must be exactly one of the following six options: Beauty, Apparel, Daily necessities, Food, Other, Electronics. Do not include any other text or information.','IMAGE'
      ) AS item_catagory
      FROM (
        SELECT GET_SIGNED_URL_FROM_OSS(
          'muze_project.default.image_demo', key, 604800
        ) AS image_url, key AS key
        FROM muze_project.default.image_demo
    ) Limit 10;
    
    -- The following result is returned:
    +------+---------------+
    | key  | item_catagory |
    +------+---------------+
    | O1CN01085bQu2GXxbXWRZdR_!!190979026-0-alimamazszw.jpg | Electronics     |
    | O1CN01090E2K2IpTwrsnKig_!!2200646859335-0-alimamazszw.jpg | Daily necessities |
    | O1CN01104c5a1V8Ve9lucF0_!!2212022232608-0-alimamazszw.jpg | Food            |
    | O1CN01113ir71oWIvnjQ5VI_!!2207697805232-0-alimamazszw.jpg | Beauty          |
    | O1CN01174q2u1ZlDaCqi6bG_!!2212097133234-0-alimamazszw.jpg | Other           |
    | O1CN01361qwo2D9HOv5WB4p_!!826038566-0-alimamazszw.jpg | Other           |
    | O1CN01413KK82ANWsnkpDh4_!!802948191-0-alimamazszw.jpg | Apparel         |
    | O1CN01446lv42D12HPYUDpl_!!1573418548-0-alimamazszw.jpg | Apparel         |
    | O1CN01447sWy2E4zJ1YgpM0_!!1676208692-0-alimamazszw.jpg | Beauty          |
    | O1CN01526tSJ1QY5hF6zdE7_!!2867731987-0-alimamazszw.jpg | Food            |
    +------+---------------+
  • Processamento de áudio

    Após criar um modelo remoto PAI-EAS chamado PAI_EAS_Qwen25_Omni_3B e uma Object Table, invoque a função de IA. Para etapas detalhadas, consulte Usar um modelo remoto do MaxCompute para gerar automaticamente descrições de produtos de e-commerce.

    Nota É possível usar um endpoint VPC (recomendado) ou um endpoint de rede pública do PAI-EAS.

    • Ao optar por um endpoint VPC do PAI-EAS, ative uma conexão dedicada e especifique o nome da conexão configurada ao invocar a função de IA. Para detalhes de configuração, consulte Solução de acesso VPC (conexão dedicada).

    • Caso prefira um endpoint de rede pública do PAI-EAS, adicione-o à lista de permissões de rede externa do MaxCompute antes de chamar a função de IA. Para instruções de configuração, consulte Procedimento de acesso à rede.

    Chame o modelo com uma URL de áudio e um prompt para classificar a categoria do áudio. Neste exemplo, a Object Table chama-se music_demo. Baixe o conjunto de dados de áudio neste link de download.

    SELECT
      key,
      AI_GENERATE(
        PAI_EAS1_Qwen25_Omni_3B, v1, audio_url,
        "Accurately analyze the music genre of the audio. The result must be one of the following seven options, with no additional information: Classical, Country, Hip-hop, Metal, Pop, Reggae, Rock","AUDIO"
      ) as item_catagory
      from (
        select GET_SIGNED_URL_FROM_OSS(
          'project_test_model.default.music_demo', key, 604800
        ) as audio_url, key as key
        from project_test_model.default.music_demo
    ) Limit 42;

    Clique para expandir e visualizar os resultados

    +------+---------------+
    | key  | item_catagory |
    +------+---------------+
    | classical.00000.wav | Classical     |
    | classical.00001.wav | Classical     |
    | classical.00002.wav | Classical     |
    | classical.00003.wav | Classical     |
    | classical.00004.wav | Classical     |
    | classical.00005.wav | Classical     |
    | country.00000.wav | Country       |
    | country.00001.wav | Country       |
    | country.00002.wav | Country       |
    | country.00003.wav | Country       |
    | country.00004.wav | Country       |
    | country.00005.wav | Rock          |
    | hiphop.00000.wav | Hip-hop       |
    | hiphop.00001.wav | Hip-hop       |
    | hiphop.00002.wav | Hip-hop       |
    | hiphop.00003.wav | Hip-hop       |
    | hiphop.00004.wav | Hip-hop       |
    | hiphop.00005.wav | Hip-hop       |
    | metal.00000.wav | Metal         |
    | metal.00001.wav | Metal         |
    | metal.00002.wav | Rock          |
    | metal.00003.wav | Metal         |
    | metal.00004.wav | Metal         |
    | metal.00005.wav | Metal         |
    | pop.00000.wav | Pop           |
    | pop.00001.wav | Pop           |
    | pop.00002.wav | Pop           |
    | pop.00003.wav | Pop           |
    | pop.00004.wav | Rock          |
    | pop.00005.wav | Pop           |
    | reggae.00000.wav | Reggae        |
    | reggae.00001.wav | Reggae        |
    | reggae.00002.wav | Reggae        |
    | reggae.00003.wav | Reggae        |
    | reggae.00004.wav | Reggae        |
    | reggae.00005.wav | Reggae        |
    | rock.00000.wav | Rock          |
    | rock.00001.wav | Rock          |
    | rock.00002.wav | Rock          |
    | rock.00003.wav | Rock          |
    | rock.00004.wav | Rock          |
    | rock.00005.wav | Rock          |
    +------+---------------+

Perguntas frequentes

Solução de problemas com modelos públicos

Sintoma: A chamada a um modelo público por meio do service de computação de modelos retorna 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 service de computação de modelos não está ativado para a região do seu projeto (por exemplo, cn-shanghai), o que impede a invocação de recursos de inferência de IA.

Solução: Ative o service de computação de modelos para a região do seu projeto no console Alibaba Cloud. Para instruções detalhadas, consulte Comprar e usar o service de computação de modelos do MaxCompute.

Solução de problemas com modelos remotos PAI-EAS

Se uma chamada a um modelo remoto do MaxCompute usando a função AI_GENERATE retornar um resultado vazio, siga estas etapas para solucionar o problema:

  1. Verifique os parâmetros de Criar modelo remoto

    • PAI_EAS_SERVICE_NAME:

      Confira se o service EAS foi adicionado a um grupo de services.

      • Em caso positivo, especifique o nome no formato group_name.service_name, como group.service_name.

      • Caso contrário, informe apenas o nome do service EAS.

    • Endpoint:

      Ao definir o parâmetro ENDPOINT do modelo, não inclua as informações após .com no endereço, independentemente de usar o endereço de rede pública do EAS ou o endereço VPC (recomendado). Um exemplo de formato correto é: http://1*************70.cn-shanghai.pai-eas.aliyuncs.com.

    • APIKEY:

      Valide se o token do service PAI-EAS está correto.

    Para obter os valores dos parâmetros, consulte 6.1 Obter um endpoint e token.

  2. Revise os parâmetros da função AI_GENERATE

    • Para dados de áudio e vídeo, o tipo BINARY não é suportado em unstructured_data.

    • Se você usar uma URL STRING e a função retornar um resultado vazio, confirme se o parâmetro type foi especificado corretamente. Os valores válidos são IMAGE, AUDIO e VIDEO. Por exemplo:

      SELECT
        key,
        AI_GENERATE(
          PAI_EAS1_Qwen25_Omni_3B, v1, audio_url,
          "Accurately analyze the music genre of the audio. The result must be one of the following seven options, with no additional information: Classical, Country, Hip-hop, Metal, Pop, Reggae, Rock","AUDIO"
        ) as item_catagory
        from (
          select GET_SIGNED_URL_FROM_OSS(
            'project_test_model.default.music_demo', key, 604800
          ) as audio_url, key as key
          from project_test_model.default.music_demo
      ) Limit 42;
  3. Analise o status de execução

    Desative manualmente a tarefa de aceleração de consultas para eliminar o impacto da tarefa SQLRT nas chamadas ao modelo. Antes da chamada à função AI_GENERATE, adicione: set odps.mcqa.disable=true;

    Em alguns cenários, a aceleração de consultas vem ativada por padrão ao enviar um job. Esse recurso pode interferir na invocação de modelos remotos e precisa ser desativado manualmente.

  4. Verifique os recursos do PAI-EAS

    Garanta que os recursos do PAI-EAS para o modelo remoto sejam suficientes. Durante a execução do job, monitore problemas relacionados a recursos, como erros de falta de memória (OOM). Se isso ocorrer, aumente os recursos e tente executar o job novamente.