×
Community Blog Menghasilkan Kueri SQL dengan Qwen Alibaba Cloud

Menghasilkan Kueri SQL dengan Qwen Alibaba Cloud

dalam tutorial ini, kami akan menunjukkan cara menggunakan model Qwen Alibaba Cloud untuk menghasilkan kueri SQL dari bahasa alami.

Lanskap AI Generatif Gartner: Menang Cepat & Mungkin Menang

Kerangka Kerja "Menang Cepat" Gartner

1
_Source: Gartner (2023)_

Menurut Gartner,"Menang Cepat" adalah kasus penggunaan yang:

  • Menghasilkan nilai bisnis sedang hingga tinggi
  • Memerlukan biaya penerapan, kompleksitas, dan risiko yang rendah
  • Dapat diimplementasikan dengan cepat dengan alat dan sumber daya yang sudah ada

Proyek ini sangat cocok untuk organisasi yang berupaya mencapai ROI (Return On Investment) awal dari AI generatif tanpa perubahan besar dalam infrastruktur.

Text-to-SQL sebagai sebuah "Menang Cepat"

Solusi kami menjadikan Menang Cepat sebagai contoh karena:

  1. Biaya Implementasi Rendah: Memanfaatkan database yang sudah ada (misalnya, PostgreSQL) dan API (Qwen-Max).
  2. Time-to-Value yang Cepat: Penerapan dalam hitungan jam, bukan bulan.
  3. Dampak Dapat Diskalakan: Mengotomatisasi tugas SQL berulang untuk mengurangi biaya tenaga kerja dan kesalahan.
  4. Risiko Minimal: Integrasi yang mulus dengan alur kerja saat ini; tidak perlu ada perubahan yang mengganggu.

Perbandingan kasus penggunaan GenAI 2024 Gartner

2
_Source: Gartner, Inc. (2024)_

Dalam analisis Gartner, pembuatan kode(termasuk text-to-SQL) terbagi dalam kuadran "Mungkin Menang"kelayakan tinggi, nilai tinggi, risiko rendah. Poin penting

  • Kelayakan Tinggi: Alat, seperti Qwen-Max, menghasilkan SQL yang andal dari bahasa alami.
  • Nilai Bisnis Tinggi: Mengotomatisasi tugas berulang, mengurangi kesalahan, dan mempercepat wawasan data.
  • Risiko Rendah: Gangguan minimal dibandingkan dengan aplikasi AI yang kompleks.

Mengapa Text-to-SQL Sesuai dengan "Mungkin Menang"

1. Efisiensi Biaya:

  • Mengurangi Upaya Manual: Pengembang dan analis berfokus pada pekerjaan strategis.
  • Tingkat Kesalahan Lebih Rendah: SQL yang dihasilkan AI meminimalkan kesalahan sintaksis/logika.

2. Skalabilitas:

  • Pelaporan Otomatis: Membuat ribuan kueri untuk dasbor atau audit.
  • Integrasi dengan Sistem yang Sudah Ada: Bekerja dengan database, seperti PostgreSQL.

3. Time-to-Value yang Cepat:

  • Penyiapan Cepat: Penerapan dalam hitungan jam menggunakan API, seperti Qwen-Max.
  • Pelatihan Minimal: Pengguna hanya memerlukan keterampilan bahasa dasar alami.

Kesimpulan: Text-to-SQL adalah Investasi Risiko Rendah yang Strategis

Dengan mengadopsi solusi text to-SQL, organisasi selaras dengan rekomendasi Gartner untuk memprioritaskan inisiatif AI berdampak tinggi dengan risiko rendah. Ini bukan sekadar otomatisasi—ini tentang membuka produktivitas dan mempercepat keputusan berbasis data dengan investasi minimal di depan.

Untuk wawasan yang lebih mendalam, jelajahi laporan Gartner:

Struktur ini menekankan keselarasan bisnis, mitigasi risiko, dan ROI pragmatis-sangat cocok untuk para eksekutif dan pengambil keputusan.

Mendalami Teknis: Membangun Chatbot Text-to-SQL Anda

Kueri SQL: Masalah yang Dihadapi Setiap Pengembang

3

Menulis kueri SQL itu memakan waktu, rawan kesalahan, dan mahal. Apakah Anda menganalisis data pelanggan atau membuat laporan, menerjemahkan pertanyaan bahasa alami ke dalam SQL membutuhkan pemahaman mendalam tentang database. Bagaimana jika Anda bisa mengotomatisasi proses ini menggunakan AI, dan menghemat biaya?

Dalam artikel ini, kita akan membangunchatbot text-to-SQL yang didukung oleh Qwen3 Alibaba Cloud (kita akan menggunakan Qwen-Max dalam contoh ini), sebuah model bahasa besar (LLM) yang canggih. Chatbot ini terhubung ke database PostgreSQL, mengubah kueri manusia menjadi SQL, dan memberikan hasil—semua tanpa menulis satu baris SQL pun secara manual.

Anda akan mengurangi waktu pengembangan dan pengeluaran cloud dengan harga API hemat biaya Alibaba Cloud dan akurasi tinggi Qwen-Max.

Langkah 1: Mulai Menggunakan Model Studio Alibaba Cloud

1.1 Masuk ke Model Studio

Kunjungi Alibaba Cloud dandaftar. Setelah masuk, buka tautan konsol Model Studio ([](https://www.alibabacloud.com/en/product/modelstudio)).

1.2 Buat Kunci API Anda

Buka tautan halaman Manajemen Kunci API ([](https://bailian.console.alibabacloud.com/?tab=app#/api-key)) dan buat kunci API baru. Simpan dengan aman—ini adalah token akses Anda ke Qwen-Max.

1.3 Siapkan Lingkungan Python Anda

Buat lingkungan virtual dan instal dependensi:

# Buat lingkungan virtual
python3 -m venv venv
source venv/bin/activate

# Instal paket yang diperlukan
pip install openai python-dotenv psycopg2-binary tabulate

Simpan yang berikut ini dalam requirements.txt:

openai
python-dotenv
psycopg2-binary
tabulate

1.4 Uji API Qwen-Max

Jalankan pengujian cepat menggunakan kode contoh yang disediakan untuk memastikan kunci Anda berfungsi.

import os
from openai import OpenAI

try:
    client = OpenAI(
        # Jika variabel lingkungan tidak dikonfigurasi, ganti baris berikut dengan kunci API Anda: api_key="sk-xxx",
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
    )

    completion = client.chat.completions.create(
        model="qwen-plus",  # Daftar model: https://www.alibabacloud.com/help/en/model-studio/getting-started/models
        messages=[
            {'role': 'system', 'content': 'Anda asisten yang sangat membantu.'},
            {'role': 'user', 'content': 'Siapa Anda?'}
            ]
    )
    print(completion.choices[0].message.content)
except Exception as e:
    print(f"Pesan kesalahan: {e}")
    print("Untuk informasi lebih lanjut, lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code")

Langkah 2: Siapkan PostgreSQL untuk Otomatisasi

2.1 Buat Instans ApsaraDB RDS dengan PostgreSQL

Gunakan ApsaraDB for PostgreSQL untuk menyiapkan instans PostgreSQL terkelola. Lihat dokumentasi ini untuk detailnya.

Opsi lainnya adalah mengikuti panduan langkah demi langkah ini untuk menyediakan database PostgreSQL 17 di Alibaba Cloud dan menghubungkannya ke mesin lokal Anda menggunakan psql.

Langkah 1: Masuk ke Konsol ApsaraDB RDS

4

  1. Masuk ke Konsol Alibaba Cloud.
  2. Navigasikan ke ApsaraDB RDS > Mulai Cepat (seperti yang ditunjukkan dalam gambar).

Langkah 2: Konfigurasikan Pengaturan Database

Gunakan antarmuka yang ditunjukkan dalam gambar di atas untuk menyiapkan instans PostgreSQL 17 Anda:

Pengaturan Tindakan
Wilayah Pilih wilayah (misalnya, Singapura).
Mesin Database Pilih PostgreSQL dan pilihversi 17 dari dropdown.
Otorisasi SLR Pastikan 'Diotorisasi' dicentang untuk keamanan yang ditingkatkan.
Edisi Pilih Edisi Ketersediaan Tinggi untuk redundansi.
Jenis Produk Pilih Standar untuk sebagian besar kasus penggunaan.
Jenis Penyimpanan Pilih ESSD Premium untuk I/O berperforma tinggi.
Jenis Jaringan Pilih VPC untuk isolasi yang aman.
Tambahkan ke Daftar Putih Aktifkan Ya untuk mengizinkan koneksi dari IP atau VPC lokal Anda.

Langkah 3: Selesaikan dan Luncurkan

  1. Tinjau konfigurasi Anda dan klik Buat.
  2. Tunggu instans masuk ke status Berjalan (biasanya 5–10 menit).

Langkah 4: Ambil Detail Koneksi

Setelah instans aktif:

  1. Buka tab Gambaran Umum di konsol ApsaraDB RDS.
  2. Perhatikan Titik akhir, Port, Nama pengguna, dan Kata sandi.

Langkah 5: Hubungkan Secara Lokal dengan psql

Instal psql di mesin lokal Anda (jika belum diinstal), kemudian hubungkan mengunakan:

psql -h <ENDPOINT> -U <USERNAME> -d <DATABASE_NAME> -p <PORT>

Ganti placeholder dengan nilai Anda (misalnya,-d postgres untuk database default).

Berhasil!

Untuk detail konfigurasi yang lebih mendalam, lihat dokumentasi resmi Alibaba Cloud:

2.2 Instal Alat PostgreSQL

di macOS/Linux, jalankan:

brew install postgresql  # macOS
sudo apt install postgresql-client  # Ubuntu

2.3 Pulihkan Contoh Database Penyewaan DVD

Unduh contoh database Penyewaan DVD dan pulihkan:

# Restore the database
pg_restore -U your_user -h your_host -p your_port -d dvdrental dump_file.tar

2.4 Uji dengan psql atau pgAdmin

Jalankan contoh kueri untuk mengonfirmasi semuanya berfungsi:

SELECT * FROM film LIMIT 5;

Langkah 3: Buat Chatbot Text to-SQL

3.1 Gambaran Umum Kode

Skrip berikut menggunakan Qwen-Max untuk mengonversi kueri bahasa alami menjadi SQL dan menjalankannya di PostgreSQL.

import os
import psycopg2
from openai import OpenAI
from dotenv import load_dotenv
from tabulate import tabulate

load_dotenv()

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
)

def generate_sql_query(natural_language_query):
    system_prompt = """
Anda asisten yang sangat membantu yang dilatih untuk mengonversi kueri bahasa alami menjadi pernyataan SQL.
Skema database mencakup tabel berikut:
- film_category (category_id, name)
- film (film_id, title, category_id)
- inventory (inventory_id, film_id, store_id)
- rental (rental_id, inventory_id, customer_id, return_date, rental_date)
- payment (payment_id, customer_id, staff_id, rental_id, amount, payment_date)

Buat kueri SQL  valid yang menjawab pertanyaan pengguna.
"""

    response = client.chat.completions.create(
        model="qwen-max",
        messages=[
            {"role": "system", "content": system_prompt},
            {"role": "user", "content": natural_language_query}
        ],
        temperature=0.2
    )

    sql_query = response.choices[0].message.content.strip()

    # Ekstrak SQL antara "```sql" dan "```"
    start_marker = "```sql"
    end_marker = "```"
    start_idx = sql_query.find(start_marker)
    end_idx = sql_query.find(end_marker, start_idx + len(start_marker))

    if start_idx != -1 and end_idx != -1:
        sql_query = sql_query[start_idx + len(start_marker):end_idx]
    elif start_idx != -1:
        sql_query = sql_query[start_idx + len(start_marker):]
    elif end_idx != -1:
        sql_query = sql_query[:end_idx]

    sql_query = sql_query.strip()

    # Kembali ke kata kunci 'pilih'
    if not sql_query.lower().startswith("select"):
        select_index = sql_query.lower().find("select")
        if select_index != -1:
            sql_query = sql_query[select_index:]

    return sql_query.strip()

def execute_sql_query(sql_query):
    conn = psycopg2.connect(
        dbname=os.getenv("DB_NAME"),
        user=os.getenv("DB_USER"),
        password=os.getenv("DB_PASSWORD"),
        host=os.getenv("DB_HOST"),
        port=os.getenv("DB_PORT")
    )
    cursor = conn.cursor()
    try:
        cursor.execute(sql_query)
        columns = [desc[0] for desc in cursor.description]
        rows = cursor.fetchall()
        return columns, rows
    except Exception as e:
        print(f"Kesalahan saat menjalankan SQL: {e}")
        return [], []
    finally:
        cursor.close()
        conn.close()

def main():
    user_query = "tampilkan jumlah total berdasarkan masing-masing id pembayaran yang lebih besar dari 10"
    print("Menghasilkan kueri SQL...")
    sql_query = generate_sql_query(user_query)
    print("SQL Dihasilkan:")
    print(sql_query)

    print("\nMenjalankan kueri SQL...")
    columns, rows = execute_sql_query(sql_query)

    if columns and rows:
        print("\nHasil Kueri:")
        print(tabulate(rows, headers=columns, tablefmt="psql"))
    else:
        print("Tidak ada hasil.")

if __name__ == "__main__":
    main()

3.2 Cara Kerja

  • generate_sql_query(): Menggunakan Qwen-Max untuk mengonversi bahasa alami menjadi SQL.
  • execute_sql_query(): Menghubungkan ke PostgreSQL dan menjalankan SQL yang dihasilkan SQL.
  • main(): Mengatur alur.

5

Hasilnya seharusnya mirip dengan gambar di atas. Selain itu, kode ini dapat dikembangkan lebih jauh dan dimodifikasi untuk membuat dasbor, dan akan diintegrasikan dengan ChatBI. Tidak secanggih ChatBI QuickBI, tetapi, ini adalah awal yang baik.

3.3 Tips Debugging

  • Uji output SQL langsung di psql atau pgAdmin sebelum menjalankan di Python.
  • Gunakan print(repr(sql_query)) untuk men-debug karakter tersembunyi.

Mengapa Solusi ini Hemat Biaya

  1. Mengurangi Tenaga Manual: Tidak perlu pengembang atau analis untuk menulis kueri SQL.
  2. Biaya API Rendah: Qwen-max lebih menarik dibandingkan dengan LLM lain dalam hal kecepatan dan menawarkan akurasi serupa dengan biaya lebih rendah.
  3. Infrastruktur Penskalaan Otomatis: Layanan terkelola Alibaba Cloud menangani penskalaan, yang mengurangi biaya umum DevOps.

Kesimpulan: Melampaui Text-to-SQL

Chatbot ini hanyalah permulaan. Dengan seri Qwen dari Alibaba Cloud, Anda dapat memperluas ke:

  • ChatBI: Membangun dasbor percakapan.
  • Sistem Agen: Mengotomatisasi alur kerja kompleks dengan panggilan fungsi.
  • AI Multimodal: Menambahkan analisis gambar/video dengan Qwen-VL.

Siap untuk memangkas biaya dan meningkatkan produktivitas? Mulai dengan chatbot text to SQL ini– dan buka potensi penuh otomatisasi yang didukung AI.

Langkah Berikutnya

  • Coba kode tersebut di lingkungan Alibaba Cloud Anda.
  • Jelajahi fitur canggih Qwen.
  • Bagikan kasus penggunaan Anda dalam komentar!


Artikel ini diterjemahkan dari bahasa Inggris. Lihat artikel aslinyadi sini.

0 0 0
Share on

Regional Content Hub

125 posts | 4 followers

You may also like

Comments

Regional Content Hub

125 posts | 4 followers

Related Products