Fungsi AI StarRocks menyematkan kemampuan model bahasa besar (LLM) langsung ke dalam SQL, memungkinkan Anda menjalankan analisis teks, transformasi, dan generasi sebagai bagian dari kueri OLAP apa pun—tanpa memindahkan data ke pipeline eksternal.
Kedua belas fungsi bawaan mengembalikan nilai bertipe VARCHAR, FLOAT, JSON, atau BOOLEAN yang secara alami dapat dikombinasikan dengan operasi JOIN, GROUP BY, agregasi, dan filter. Data mentah tetap berada di StarRocks; hanya bidang yang diteruskan ke fungsi yang dikirim ke titik akhir model.
Setiap pengguna mendapatkan kuota percobaan gratis sebesar 1 juta token. Setelah melebihi kuota percobaan gratis, penggunaan tambahan akan dikenai biaya berdasarkan konsumsi token aktual. Untuk detail harga, lihat Harga fungsi AI.
Keunggulan fitur
-
Efisiensi konkurensi tinggi: Empat thread mendorong ratusan panggilan LLM secara konkuren. Pendekatan sisi klien akan memerlukan jumlah proses yang setara, dan penjadwal OS akan kolaps jauh sebelum beban kerja selesai.
-
Tanpa operasi pembatasan laju: Perlindungan tiga lapis bawaan plus penanganan kompatibel DashScope memastikan pelanggan tidak perlu mempertimbangkan mekanisme RPM atau TPM.
-
Data tetap di tempatnya: Seluruh pipeline berjalan dalam SQL di dalam database, tanpa ETL dan tanpa risiko eksfiltrasi data.
-
Biaya token lebih rendah: Predicate pushdown mengurangi volume panggilan, caching menghilangkan duplikasi, dan pencatatan akurat melacak setiap token. Beban kerja yang sama dapat menghemat biaya hingga 30% atau lebih.
-
Keandalan tingkat industri: Toleransi kesalahan tingkat baris, retry cerdas, dan observabilitas berbasis Profile memungkinkan pekerjaan batch jutaan baris berjalan tanpa pengawasan.
Kasus penggunaan
|
Kasus penggunaan |
Fungsi |
|
Skor sentimen siap dashboard pada ulasan pelanggan |
|
|
Penandaan otomatis katalog produk atau tiket dukungan |
|
|
Mengekstraksi bidang terstruktur (nama, tanggal, lokasi) dari teks bebas |
|
|
Menyamarkan PII sebelum menulis ke lingkungan staging |
|
|
Pembersihan dan standarisasi konten yang dibuat pengguna |
|
|
Meringkas dokumen panjang atau utas tiket |
|
|
Menerjemahkan dan melokalkan catatan multibahasa |
|
|
Memberi peringkat FAQ atau hasil pencarian berdasarkan relevansi semantik |
|
|
Penyelesaian teks AI umum dan pembuatan konten |
|
|
Menyaring baris berdasarkan kondisi bahasa alami |
|
|
Menjalankan tanya jawab terhadap basis pengetahuan atau resource kustom |
|
Prasyarat
Sebelum memulai, pastikan Anda memenuhi persyaratan kernel dan jaringan:
Persyaratan versi kernel
-
3.3.20-2.1.1 dan yang lebih baru
-
3.5.16-2.1.1 dan yang lebih baru
Konfigurasi akses jaringan
Node BE StarRocks memerlukan akses internet arah keluar untuk mencapai titik akhir layanan model eksternal. Siapkan Gateway NAT pada VPC tempat kluster Anda berjalan:
-
Buat Gateway NAT dan bind Elastic IP Address (EIP) ke gateway tersebut.
-
Tambahkan aturan SNAT yang mengarahkan traffic dari Blok CIDR node BE melalui Gateway NAT.
-
Konfirmasi bahwa tabel rute VPC dan kebijakan security group Anda mengizinkan lalu lintas outbound.
Untuk detail penyiapan, lihat Gateway NAT Internet.
Referensi fungsi
Semua fungsi dipanggil dalam SQL standar. Hasil dikembalikan sebagai nilai bertipe dan dapat digunakan langsung dalam ekspresi kueri berikutnya.
|
Fungsi |
Apa yang dilakukan |
Mengembalikan |
|
|
Mengklasifikasikan teks sebagai positif, negatif, netral, campuran, atau tidak diketahui |
VARCHAR |
|
|
Menetapkan satu label dari daftar kustom |
JSON |
|
|
Mengambil entitas bernama dan mengembalikannya sebagai JSON |
JSON |
|
|
Mengganti kategori PII tertentu dengan |
VARCHAR |
|
|
Memperbaiki tata bahasa dan ejaan |
VARCHAR |
|
|
Menghasilkan ringkasan, dengan batas kata opsional |
VARCHAR |
|
|
Menerjemahkan teks ke bahasa target |
VARCHAR |
|
|
Mengembalikan skor kemiripan semantik dari 0 hingga 1 |
FLOAT |
|
|
Menghasilkan konten menggunakan model dan prompt tertentu |
VARCHAR |
|
|
Menghasilkan konten dengan parameter tambahan (temperature, max_tokens, dll.) |
VARCHAR |
|
|
Menyaring baris dengan mengevaluasi kondisi bahasa alami |
BOOLEAN |
|
|
Menjalankan kueri terhadap resource atau basis pengetahuan kustom |
VARCHAR |
Detail fungsi
ai_sentiment
Mengklasifikasikan sentimen dari teks input.
Sintaks
ai_sentiment(text)
Parameter
|
Parameter |
Tipe |
Deskripsi |
|
|
VARCHAR |
Teks yang akan dianalisis |
Nilai Kembali
VARCHAR — 'positive', 'negative', 'neutral', 'mixed', atau 'unknown'. Mengembalikan NULL jika sentimen tidak dapat ditentukan.
Contoh
Pengujian nilai tunggal:
SELECT ai_sentiment('I am happy');
-- Returns: 'positive'
Terapkan pada kolom tabel:
SELECT
review_id,
review_text,
ai_sentiment(review_text) AS sentiment
FROM customer_reviews
LIMIT 10;
ai_classify
Menetapkan satu label dari daftar yang Anda definisikan.
Sintaks
ai_classify(text, labels)
Parameter
|
Parameter |
Tipe |
Deskripsi |
|
|
VARCHAR |
Teks yang akan diklasifikasi |
|
|
ARRAY<VARCHAR> |
Label kandidat — minimal 2 dan maksimal 20 elemen |
Mengembalikan
JSON — berisi hasil klasifikasi. Mengembalikan NULL jika klasifikasi gagal.
Contoh
Pengujian nilai tunggal:
SELECT ai_classify('My password is leaked.', ['urgent', 'not urgent']);
-- Returns: {"labels": ["urgent"]}
Tag deskripsi produk secara massal:
SELECT
product_id,
description,
ai_classify(description, ['clothing', 'shoes', 'accessories', 'furniture']) AS category
FROM products
LIMIT 10;
ai_extract
Mengekstraksi entitas bernama dari teks dan mengembalikannya sebagai objek JSON.
Sintaks
ai_extract(text, entity_labels)
Parameter
|
Parameter |
Tipe |
Deskripsi |
|
|
VARCHAR |
Teks yang akan diekstraksi |
|
|
ARRAY<VARCHAR> |
Jenis entitas yang akan diekstraksi, misalnya |
Nilai Kembali
Objek JSON di mana kunci adalah jenis entitas dan nilai adalah teks yang diekstraksi.
Contoh
SELECT ai_extract(
'John Doe lives in New York and works for Acme Corp.',
['person', 'location', 'organization']
);
-- Returns: {"person":"John Doe","location":"New York","organization":"Acme Corp"}
ai_redact
Mengganti kategori PII tertentu dengan [REDACTED].
Sintaks
ai_redact(text, categories)
Parameter
|
Parameter |
Tipe |
Deskripsi |
|
|
VARCHAR |
Teks yang akan disamarkan |
|
|
ARRAY<VARCHAR> |
Kategori PII yang akan disamarkan, misalnya |
Mengembalikan
VARCHAR dengan entitas yang cocok diganti oleh [REDACTED].
Contoh
Pengujian nilai tunggal:
SELECT ai_redact(
'John Doe lives in New York. His email is john.doe@example.com.',
['person', 'email']
);
-- Returns: "[REDACTED] lives in New York. His email is [REDACTED]."
Samarkan PII di seluruh tabel log sebelum ekspor:
SELECT
log_id,
ai_redact(log_text, ['person', 'email', 'phone']) AS redacted_log
FROM audit_logs
LIMIT 10;
ai_fix_grammar
Memperbaiki tata bahasa dan ejaan dalam teks.
Sintaks
ai_fix_grammar(text)
Parameter
|
Parameter |
Tipe |
Deskripsi |
|
|
VARCHAR |
Teks yang akan diperbaiki |
Mengembalikan
VARCHAR dengan tata bahasa dan ejaan yang telah diperbaiki.
Contoh
SELECT ai_fix_grammar('This sentence have some mistake');
-- Returns: "This sentence has some mistake"
ai_summarize
Menghasilkan ringkasan singkat dari teks input.
Sintaks
ai_summarize(text)
Parameter
|
Parameter |
Tipe |
Wajib |
Deskripsi |
|
|
VARCHAR |
Ya |
Teks yang akan diringkas |
Mengembalikan
Ringkasan VARCHAR.
Contoh
SELECT ai_summarize(
'Apache Spark is a unified analytics engine for large-scale data processing...',
10
);
-- Returns: "Spark: unified engine for large-scale data processing with APIs and tools."
ai_translate
Menerjemahkan teks dari satu bahasa ke bahasa lain.
Sintaks
ai_translate(text, source_lang, target_lang)
Parameter
|
Parameter |
Tipe |
Deskripsi |
|
|
VARCHAR |
Teks yang akan diterjemahkan |
|
|
VARCHAR |
Kode bahasa sumber (ISO 639-1) |
|
|
VARCHAR |
Kode bahasa target (ISO 639-1) |
Kode bahasa umum:
|
Bahasa |
Kode |
|
Arab |
|
|
Tionghoa (Sederhana) |
|
|
Inggris |
|
|
Prancis |
|
|
Jerman |
|
|
Hindi |
|
|
Jepang |
|
|
Bahasa Korea |
|
|
Portugis |
|
|
Rusia |
|
|
Spanyol |
|
Nilai Kembali
VARCHAR yang telah diterjemahkan.
Contoh
SELECT ai_translate('Hello, how are you?', 'en', 'es');
-- Returns: "Hola, ¿cómo estás?"
ai_similarity
Menghitung kemiripan semantik antara dua teks.
Sintaks
ai_similarity(text1, text2)
Parameter
|
Parameter |
Tipe |
Deskripsi |
|
|
VARCHAR |
Teks pertama |
|
|
VARCHAR |
Teks kedua |
Mengembalikan
FLOAT antara 0 dan 1. Skor 1,0 berarti teks identik. Skor ini terutama digunakan untuk pengurutan.
Contoh
SELECT ai_similarity(
'I enjoy hiking in the mountains.',
'I love walking through mountain trails.'
);
-- Returns: 0.82
ai_complete
Menghasilkan konten menggunakan model tertentu. Mendukung dua bentuk overload: bentuk sederhana dan bentuk berparameter.
Sintaks
-- Overload 1: Sederhana
ai_complete(model, prompt)
-- Overload 2: Dengan parameter
ai_complete(model, prompt, params)
Parameter
|
Parameter |
Tipe |
Deskripsi |
|
|
VARCHAR |
Nama model, misalnya |
|
|
VARCHAR |
Prompt yang mengarahkan pembuatan konten |
|
|
MAP<VARCHAR, VARCHAR> |
Opsional. Parameter model tambahan seperti |
Pengembalian
VARCHAR — teks yang dihasilkan.
Contoh
Bentuk sederhana:
SELECT ai_complete('qwen-plus', 'Write a catchy email subject for a summer bike sale with a 20% discount');
-- Returns: "Summer Cycling Carnival: 20% Off for a Limited Time!"
Dengan parameter:
SELECT ai_complete('qwen-plus', 'Summarize the benefits of cloud computing', map{'temperature':'0.7', 'max_tokens':'200'});
-- Returns: "Cloud computing offers scalable resources, cost efficiency..."
ai_filter
Mengevaluasi kondisi bahasa alami terhadap teks dan mengembalikan TRUE atau FALSE. Berguna untuk menyaring baris dalam klausa WHERE.
Sintaks
ai_filter(text, condition)
Parameter
|
Parameter |
Tipe |
Deskripsi |
|
|
VARCHAR |
Teks yang akan dievaluasi |
|
|
VARCHAR |
Kondisi bahasa alami yang menjelaskan kriteria filter |
Mengembalikan
BOOLEAN — TRUE jika teks memenuhi kondisi, FALSE jika tidak.
Contoh
SELECT * FROM reviews WHERE ai_filter(review_text, 'mentions product quality issues');
-- Returns rows where the review text discusses product quality problems
ai_custom_query
Menjalankan kueri terhadap resource kustom atau basis pengetahuan.
Sintaks
ai_custom_query(resource, prompt)
Parameter
|
Parameter |
Tipe |
Deskripsi |
|
|
VARCHAR |
Nama resource kustom atau basis pengetahuan yang akan dikueri |
|
|
VARCHAR |
Kueri atau pertanyaan yang diajukan ke resource |
Nilai Kembali
VARCHAR.
Contoh
SELECT ai_custom_query('my_knowledge_base', 'What is StarRocks?');
-- Returns: "StarRocks is a high-performance analytical data warehouse..."
Konfigurasi kluster
Perilaku fungsi AI dikendalikan oleh parameter dinamis BE. Ubah parameter tersebut saat runtime menggunakan ADMIN SET CONFIG — tidak perlu restart.
Untuk melihat nilai saat ini:
SELECT * FROM information_schema.be_configs WHERE NAME LIKE 'ai_%';
Koneksi model
|
Parameter |
Bawaan |
Deskripsi |
|
|
|
Titik akhir layanan model. Mendukung titik akhir Chat/Completions yang kompatibel OpenAI. |
|
|
|
Model yang akan dipanggil. Mendukung model generasi teks. |
|
|
|
Kunci API untuk Alibaba Cloud Model Studio. Lihat Dapatkan Kunci API. |
|
|
|
Prompt sistem yang diterapkan ke semua fungsi AI. |
|
|
|
Timeout koneksi HTTP dalam milidetik (bawaan: 10 detik). |
|
|
|
Timeout permintaan HTTP dalam milidetik (bawaan: 10 menit). |
|
|
|
Jumlah maksimum permintaan HTTP konkuren ke model. Mengontrol throughput permintaan. |
|
|
(Format kompatibel OpenAI) |
Templat isi permintaan. Placeholder: |
Ukuran batch
Setiap fungsi mengirim permintaan ke model dalam batch. Batch yang lebih besar mengurangi jumlah panggilan model dan dapat memperpendek waktu respons total.
|
Parameter |
Bawaan |
Fungsi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Templat prompt
Setiap fungsi menggunakan templat prompt yang dapat dikonfigurasi. Placeholder templat menggunakan $0, $1, dll.
|
Parameter |
Placeholder |
Fungsi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|