AI_EXTRACT adalah fungsi AI di MaxCompute yang memanggil model untuk mengekstraksi informasi terstruktur dari teks berdasarkan label yang ditentukan.
Sintaksis
STRING AI_EXTRACT(
STRING <model_name>,
STRING <version_name>,
STRING <input>,
ARRAY<STRING> <labels>
[, STRING <model_parameters>]
);Parameter
model_name: Wajib diisi. STRING yang menentukan nama model yang akan digunakan. Untuk informasi selengkapnya, lihat fungsi AI SQL.
version_name: Wajib diisi. STRING yang menentukan versi model yang akan digunakan. Untuk menggunakan versi default, tentukan
DEFAULT_VERSION.input: Wajib diisi. STRING yang berisi teks sumber.
labels: Wajib diisi. ARRAY<STRING> yang menentukan label yang akan diekstraksi. Array harus berisi 1 hingga 20 label.
-
model_parameters: Opsional. String yang menentukan parameter model dalam format JSON, seperti max_tokens, temperature, dan top_p. Contohnya:
'{"max_tokens": 500, "temperature": 0.6, "top_p": 0.95}'.-
max_tokens: Jumlah maksimum token yang dihasilkan dalam satu panggilan model. Nilai default untuk model publik MaxCompute adalah 4096.
-
temperature: Nilai antara 0 dan 1 yang mengatur tingkat keacakan output model. 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 dipertimbangkan oleh model. Nilai yang lebih tinggi menghasilkan rentang yang lebih luas dan variasi yang lebih besar, sedangkan nilai yang lebih rendah menghasilkan rentang yang lebih sempit dan output yang lebih fokus.
-
Nilai kembalian
Mengembalikan STRING dalam format JSON yang berisi semua label yang diekstraksi beserta nilai-nilainya.
Jika
inputbukan STRING ataulabelsbukanARRAY<STRING>, fungsi akan mengembalikan error.Jika
labelsmerupakan konstanta dan berisi lebih dari 20 item, fungsi akan mengembalikan error.Jika
inputataulabelsbernilai NULL, atau jikainputberupa string kosong (""), fungsi akan mengembalikan NULL.Jika nilai untuk label tertentu tidak ditemukan dalam teks
input, nilai untuk label tersebut akan bernilai NULL dalam objek JSON yang dikembalikan.
Contoh
Contoh 1: Ekstraksi dengan label konstan
Contoh ini memanggil model publik qwen3-max dari MaxCompute untuk mengekstraksi informasi terstruktur dari deskripsi teks.
-- Gunakan layanan komputasi model dalam Pekerjaan SQL
SET odps.task.major.version=sql_modelstudio;
SET odps.namespace.schema=true;
SELECT AI_EXTRACT(
bigdata_public_modelset.default.`qwen3-max`,
DEFAULT_VERSION,
'John Smith is a 35-year-old software engineer working at Alibaba Cloud in Hangzhou. He joined the company in 2020 and specializes in distributed computing.',
ARRAY('name', 'age', 'occupation', 'company', 'city', 'year_joined')
) AS extracted_info;
-- Hasil:
+------------------------------------------------------------------------------------------------------------------------------------+
| extracted_info |
+------------------------------------------------------------------------------------------------------------------------------------+
| {"name":"John Smith","age":"35","occupation":"software engineer","company":"Alibaba Cloud","city":"Hangzhou","year_joined":"2020"} |
+------------------------------------------------------------------------------------------------------------------------------------+Contoh 2: Ekstraksi dari data tabel
Contoh ini memanggil model publik Qwen3-4B-GGUF dari MaxCompute untuk mengekstraksi informasi produk, masalah, dan sentimen dari ulasan pelanggan dalam sebuah tabel.
-- Data contoh
CREATE TABLE customer_reviews (
review STRING
);
INSERT INTO customer_reviews VALUES
('The new laptop has excellent battery life but the keyboard feels cheap.'),
('Delivery was fast. The headphones sound quality is amazing for the price.'),
('Returned the monitor due to dead pixels. Customer service was helpful though.');
-- Ekstraksi informasi terstruktur dari ulasan pelanggan dalam tabel
SET odps.sql.ai.treat.as.common.model=true;
SET odps.namespace.schema=true;
SELECT
review,
AI_EXTRACT(
bigdata_public_modelset.default.`Qwen3-4B-GGUF`,
DEFAULT_VERSION,
review,
ARRAY('product', 'issue', 'sentiment')
) AS extracted_info
FROM customer_reviews;
-- Hasil:
+-----------------------------------------------------------------------------+-------------------------------------------------------------------------+
| review | extracted_info |
+-----------------------------------------------------------------------------+-------------------------------------------------------------------------+
| The new laptop has excellent battery life but the keyboard feels cheap. | {"product":"laptop","issue":"keyboard feels cheap","sentiment":"mixed"} |
| Delivery was fast. The headphones sound quality is amazing for the price. | {"product":"headphones","issue":null,"sentiment":"positive"} |
| Returned the monitor due to dead pixels. Customer service was helpful though. | {"product":"monitor","issue":"dead pixels","sentiment":"negative"} |
+-----------------------------------------------------------------------------+-------------------------------------------------------------------------+