All Products
Search
Document Center

MaxCompute:AI_GENERATE

Last Updated:Jul 25, 2026

AI_GENERATE adalah fungsi AI MaxCompute yang memanggil model melalui prompt untuk menjalankan tugas inferensi. Fungsi ini mendukung berbagai skenario, seperti generasi bahasa alami, analisis logika kompleks, analisis sentimen, dan pemahaman multi-modal, serta memungkinkan Anda memproses data tidak terstruktur secara langsung menggunakan SQL tanpa bergantung pada layanan eksternal.

Sintaksis

Fungsi AI_GENERATE memiliki signature berbeda untuk large language models (LLM) dan multi-modal large language models (MLLM).

  • Jika model_type adalah LLM, signature fungsinya adalah sebagai berikut:

    STRING AI_GENERATE(
      STRING <model_name> , 
      STRING <version_name>, 
      STRING <prompt> 
      [, STRING <model_parameters>]
    );
  • Jika model_type adalah MLLM, signature fungsinya adalah sebagai berikut:

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

Parameter

  • model_name: Wajib diisi. Nilai STRING yang menentukan nama model. model_type model tersebut harus berupa LLM atau MLLM.

  • version_name: Wajib diisi. Nilai STRING yang menentukan versi model. Untuk memanggil versi default, tentukan DEFAULT_VERSION.

  • prompt: Wajib diisi. Prompt untuk model. Harus berupa konstanta, nama kolom, atau ekspresi bertipe STRING.

  • unstructured_data: Wajib diisi jika model_type adalah MLLM. Nilai STRING atau BINARY.

    Menentukan data multi-modal yang akan diproses, yang dapat berupa URL STRING untuk gambar, audio, atau video, atau representasi BINARY dari gambar. Jika Anda menentukan tipe BINARY, Anda juga harus menentukan parameter input BINARY saat membuat model.

  • type: Jika unstructured_data berupa URL STRING untuk gambar, audio, atau video, parameter type wajib diisi. Nilai yang didukung adalah IMAGE, AUDIO, dan VIDEO. Contohnya:

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

    • Video: AI_GENERATE(model, version, video_url, prompt, 'VIDEO');

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

  • model_parameters: Opsional. STRING. Menentukan parameter model seperti max_tokens, temperature, dan top_p. Formatnya adalah string JSON:

    '{"max_tokens": 500, "temperature": 0.6, "top_p": 0.95}'.

    • max_tokens: Jumlah maksimum token yang dihasilkan dalam satu panggilan model. Untuk model publik MaxCompute, nilai default-nya adalah 4.096.

    • temperature: Nilai antara 0 dan 1 yang mengatur tingkat keacakan output. Nilai yang lebih tinggi menghasilkan output yang lebih kreatif dan beragam, sedangkan nilai yang lebih rendah menghasilkan output yang lebih deterministik dan konservatif.

    • top_p: Nilai antara 0 dan 1 yang membatasi rentang label kandidat yang dapat dipilih oleh model. Nilai yang lebih tinggi memungkinkan rentang yang lebih luas dan keragaman lebih besar, sedangkan nilai yang lebih rendah mempersempit rentang dan menghasilkan hasil yang lebih fokus.

Catatan

Untuk menggunakan fungsi AI guna melakukan inferensi dengan model publik, Anda harus terlebih dahulu mengaktifkan penggunaan model publik dengan menjalankan perintah SET odps.sql.using.public.model=true;.

Nilai kembalian

Mengembalikan STRING yang berisi konten yang dihasilkan oleh model.

Contoh

Contoh 1: Melakukan analisis sentimen

Gunakan model publik qwen3.7-max yang disediakan oleh MaxCompute untuk melakukan analisis sentimen pada data komentar pengguna 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);

-- Hasil berikut dikembalikan:
+--------+----------------+
| 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         |
+--------+----------------+

Contoh 2: Menghasilkan konten

Panggil model publik deepseek-v4-pro yang disediakan oleh MaxCompute untuk langsung melakukan inferensi model dan pembuatan konten.

SET odps.namespace.schema=true;

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

-- Hasil berikut dikembalikan:
+-----+
| _c0 |
+-----+
| The capital of China is **Beijing**. |
+-----+

Contoh 3: Melakukan pemrosesan data multi-modal

  • Pemrosesan gambar

    Panggil model publik qwen3.7-plus untuk memberi label kategori produk berdasarkan URL gambar dan prompt. Dalam contoh ini, Object Table bernama image_demo.

    -- Aktifkan model tiga tingkat.
    SET odps.namespace.schema=true;
    
    -- Buat 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         |
    +------------+
    
    -- Panggil model publik qwen3.7-plus untuk memberi label kategori produk berdasarkan URL gambar dan 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;
    
    -- Hasil berikut dikembalikan:
    +------+---------------+
    | 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            |
    +------+---------------+
  • Pemrosesan audio

    Setelah Anda membuat model remote PAI-EAS bernama PAI_EAS_Qwen25_Omni_3B dan Object Table, Anda dapat memanggil fungsi AI tersebut. Untuk langkah-langkah detailnya, lihat Gunakan model remote MaxCompute untuk menghasilkan deskripsi produk e-commerce secara otomatis.

    Catatan Anda dapat menggunakan endpoint VPC (direkomendasikan) atau endpoint jaringan publik PAI-EAS.

    • Jika Anda menggunakan endpoint VPC PAI-EAS, Anda harus mengaktifkan koneksi jalur sewa dan menentukan nama koneksi jaringan yang telah dikonfigurasi saat memanggil fungsi AI. Untuk detail konfigurasi, lihat Solusi akses VPC (koneksi jalur sewa).

    • Jika Anda menggunakan endpoint jaringan publik PAI-EAS, Anda harus menambahkan endpoint tersebut ke daftar izin jaringan eksternal MaxCompute sebelum memanggil fungsi AI. Untuk petunjuk konfigurasi, lihat Prosedur Akses Jaringan.

    Panggil model dengan URL audio dan prompt untuk memberi label kategori audio. Dalam contoh ini, Object Table bernama music_demo. Anda dapat mengunduh set data audio dari tautan unduh berikut.

    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;

    Klik untuk memperluas dan melihat hasil

    +------+---------------+
    | 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          |
    +------+---------------+

FAQ

Penyelesaian masalah model publik

Gejala: Memanggil model publik melalui layanan komputasi model mengembalikan error berikut:

FAILED: ODPS-0130071:[1,8] Semantic analysis exception - inference quota status check failed, error message: region cn-shanghai not found in inference quota

Penyebab: Layanan komputasi model belum diaktifkan untuk wilayah proyek Anda (misalnya, cn-shanghai), sehingga mencegah pemanggilan resource inferensi AI.

Solusi: Aktifkan layanan komputasi model untuk wilayah proyek Anda di Konsol Alibaba Cloud. Untuk petunjuk detail, lihat Pembelian dan penggunaan layanan komputasi model MaxCompute.

Penyelesaian masalah model remote PAI-EAS

Jika pemanggilan model remote MaxCompute menggunakan fungsi AI_GENERATE mengembalikan hasil kosong, ikuti langkah-langkah berikut untuk memecahkan masalah:

  1. Periksa parameter Buat model remote

    • PAI_EAS_SERVICE_NAME:

      Periksa apakah layanan EAS telah ditambahkan ke kelompok layanan.

      • Jika ya, Anda harus menentukan nama dalam format group_name.service_name, seperti group.service_name.

      • Jika tidak, cukup tentukan nama layanan EAS saja.

    • Endpoint:

      Saat menyetel parameter ENDPOINT model, jangan sertakan informasi setelah .com dalam alamat, baik Anda menggunakan alamat jaringan publik EAS maupun alamat VPC (direkomendasikan). Contoh format alamat yang benar adalah: http://1*************70.cn-shanghai.pai-eas.aliyuncs.com.

    • APIKEY:

      Verifikasi bahwa token layanan PAI-EAS benar.

    Untuk mendapatkan nilai parameter, lihat 6.1 Mendapatkan endpoint dan token.

  2. Periksa parameter fungsi AI_GENERATE.

    • Untuk data audio dan video, tipe BINARY tidak didukung untuk unstructured_data.

    • Jika Anda menggunakan URL STRING dan fungsi mengembalikan hasil kosong, verifikasi bahwa parameter type telah ditentukan dengan benar. Nilai yang didukung adalah IMAGE, AUDIO, dan VIDEO. Contohnya:

      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. Periksa status waktu proses

    Nonaktifkan secara manual tugas akselerasi kueri untuk menghilangkan dampak tugas SQLRT terhadap pemanggilan model. Sebelum memanggil fungsi AI_GENERATE, tambahkan baris berikut: set odps.mcqa.disable=true;

    Dalam beberapa skenario, akselerasi kueri diaktifkan secara default saat Anda mengirimkan pekerjaan. Fitur ini dapat mengganggu pemanggilan model remote dan harus dinonaktifkan secara manual.

  4. Periksa resource PAI-EAS

    Pastikan resource PAI-EAS untuk model remote mencukupi. Selama eksekusi pekerjaan, periksa adanya masalah terkait resource, seperti error kehabisan memori (OOM). Jika masalah tersebut terjadi, tingkatkan kapasitas resource dan coba ulang pekerjaan.