AI_EXTRACT adalah fungsi AI MaxCompute yang memanggil model untuk mengekstraksi informasi tertentu dari teks berdasarkan daftar label.
Sintaksis
STRING AI_EXTRACT(
STRING <model_name>,
STRING <version_name>,
STRING <input>,
ARRAY<STRING> <labels>
[, STRING <model_parameters>]
);Parameter
model_name: Wajib diisi. STRING. Nama model yang akan digunakan. Untuk informasi selengkapnya, lihat Fungsi AI SQL.
version_name: Wajib diisi. STRING. Nama versi model yang akan digunakan. Untuk menggunakan versi default, tentukan
DEFAULT_VERSION.input: Wajib diisi. STRING. Teks dari mana informasi akan diekstraksi.
labels: Wajib diisi. Tipe data:ARRAY<STRING>. Daftar label yang ingin Anda ekstraksi. Jumlah label dapat berkisar antara 1 hingga 20.model_parameters: Opsional. STRING. Menentukan parameter model seperti
max_tokens,temperature, dantop_p. Formatnya berupa 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 variasi yang lebih besar, sedangkan nilai yang lebih rendah mempersempit rentang dan menghasilkan hasil yang lebih fokus.
Nilai kembalian
Mengembalikan STRING dalam format JSON yang berisi semua label yang diekstraksi beserta nilai-nilainya. Fungsi ini mengikuti aturan berikut:
Jika
inputbukan STRING ataulabelsbukan ARRAY<STRING>, fungsi mengembalikan error.Jika array konstan diberikan untuk
labelsdan berisi lebih dari 20 label, fungsi mengembalikan error.Jika
inputataulabelsbernilai NULL, atau jikainputberupa string kosong (""), fungsi mengembalikan NULL.Jika teks
inputtidak memiliki informasi untuk suatu label dalam arraylabels, nilai label tersebut dalam output adalah NULL.
Contoh
Contoh 1: Ekstraksi dengan label konstan
Panggil model publik MaxCompute qwen3.7-max untuk mengekstraksi informasi terstruktur dari teks yang diberikan berdasarkan label yang ditentukan.
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} |
+----------------+Contoh 2: Ekstraksi dari data tabel
Panggil model publik MaxCompute deepseek-v4-pro untuk mengekstraksi informasi produk, masalah, dan sentimen dari ulasan pelanggan yang tersimpan dalam tabel.
-- 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
Pemecahan masalah model publik
Gejala: Saat Anda memanggil public model yang didukung oleh Model Computing Service, Anda menerima error berikut:
FAILED: ODPS-0130071:[1,8] Semantic analysis exception - inference quota status check failed, error message: region cn-shanghai not found in inference quotaPenyebab: Model Computing Service belum diaktifkan di region project Anda (misalnya, cn-shanghai). Akibatnya, MaxCompute tidak dapat mengakses AI inference resources.
Solusi: Buka Alibaba Cloud console dan aktifkan Model Computing Service untuk region project Anda. Untuk petunjuk lengkap, lihat Pembelian dan penggunaan Model Computing Service MaxCompute.