Bagikan melalui


Aplikasi cerdas dan AI

Berlaku untuk: SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL database dalam Microsoft Fabric

Artikel ini memberikan gambaran umum tentang penggunaan opsi kecerdasan buatan (AI), seperti OpenAI dan vektor, untuk membangun aplikasi cerdas dengan SQL Database Engine di SQL Server dan Azure SQL Managed Instance.

Untuk Azure SQL Database dan SQL Database di Fabric, lihat aplikasi pintar dan AI.

Untuk sampel dan contoh, kunjungi repositori Sampel SQL AI.

Gambaran Umum

Model bahasa besar (LLM) memungkinkan pengembang untuk membuat aplikasi yang didukung AI dengan pengalaman pengguna yang familier.

Menggunakan LLM dalam aplikasi membawa nilai yang lebih besar dan pengalaman pengguna yang ditingkatkan ketika model dapat mengakses data yang tepat, pada waktu yang tepat, dari database aplikasi Anda. Proses ini dikenal sebagai Retrieval Augmented Generation (RAG) dan SQL Database Engine memiliki banyak fitur yang mendukung pola baru ini, menjadikannya database yang bagus untuk membangun aplikasi cerdas.

Tautan berikut menyediakan kode sampel dari berbagai opsi untuk membangun aplikasi cerdas:

Opsi AI Description
SQL MCP Server Antarmuka yang stabil dan diatur untuk database Anda, menentukan serangkaian alat dan konfigurasi.
Azure OpenAI Hasilkan embedding untuk RAG dan mengintegrasikan dengan model apa pun yang didukung oleh Azure OpenAI.
Vektor Pelajari cara menyimpan vektor dan menggunakan fungsi vektor dalam database.
Pencarian Azure AI Gunakan database Anda bersama Pencarian Azure AI untuk melatih LLM pada data Anda.
Aplikasi cerdas Pelajari cara membuat solusi end-to-end menggunakan pola umum yang dapat direplikasi dalam skenario apa pun.

SQL MCP Server dalam aplikasi AI

SQL MCP Server berada langsung di jalur data untuk agen AI.

  • Saat model menghasilkan permintaan, server menyediakan antarmuka yang stabil dan diatur ke database Anda.
  • Alih-alih mengekspos skema mentah atau mengandalkan SQL yang dihasilkan, SQL merutekan semua akses melalui serangkaian alat yang ditentukan yang didukung oleh konfigurasi Anda.

Pendekatan ini membuat interaksi tetap dapat diprediksi dan memastikan setiap operasi selaras dengan izin dan struktur yang Anda tentukan. Untuk informasi selengkapnya, lihat aka.ms/sql/mcp.

Dengan memisahkan penalaran dari eksekusi, model berfokus pada niat sementara SQL MCP Server menangani bagaimana niat tersebut menjadi kueri yang valid. Karena area permukaan dibatasi dan dijelaskan, agen dapat menemukan kemampuan yang tersedia, memahami input dan output, dan beroperasi tanpa menebak. Desain ini mengurangi kesalahan dan menghilangkan kebutuhan akan rekayasa prompt yang kompleks untuk mengkompensasi ambiguitas skema.

Bagi pengembang, pendekatan ini berarti AI dapat dengan aman berpartisipasi dalam beban kerja nyata.

Kamu bisa:

  • Definisikan entitas satu kali
  • Menerapkan peran dan batasan

Platform selanjutnya:

  • Memberlakukan entitas, peran, dan batasan secara konsisten
  • Membuat fondasi yang andal untuk aplikasi berbasis agen melalui data SQL.

Konfigurasi yang sama yang mendukung REST dan GraphQL juga mengatur MCP, sehingga tidak ada duplikasi aturan atau logika. Untuk informasi selengkapnya, lihat aka.ms/dab/docs.

Konsep utama untuk menerapkan RAG dengan Azure OpenAI

Bagian ini mencakup konsep utama yang sangat penting untuk menerapkan RAG dengan Azure OpenAI di Database Engine SQL.

Generasi Didukung Pengambilan (RAG)

RAG adalah teknik yang meningkatkan kemampuan LLM untuk menghasilkan respons yang relevan dan informatif dengan mengambil data tambahan dari sumber eksternal. Misalnya, RAG dapat mengkueri artikel atau dokumen yang berisi pengetahuan khusus domain yang terkait dengan pertanyaan atau permintaan pengguna. LLM kemudian dapat menggunakan data yang diambil ini sebagai referensi saat menghasilkan responsnya. Misalnya, pola RAG sederhana menggunakan Database Engine SQL dapat berupa:

  1. Sisipkan data ke dalam tabel.
  2. Tautkan instans Anda ke Pencarian Azure AI.
  3. Buat Azure model OpenAI GPT-4 dan sambungkan ke Pencarian Azure AI.
  4. Mengobrol dan mengajukan pertanyaan tentang data Anda dengan menggunakan model Azure OpenAI yang terlatih dari aplikasi Anda serta dari data dalam instans Anda.

Pola RAG, dengan rekayasa yang cepat, melayani tujuan meningkatkan kualitas respons dengan menawarkan informasi yang lebih kontekstual ke model. RAG memungkinkan model untuk menerapkan basis pengetahuan yang lebih luas dengan menggabungkan sumber eksternal yang relevan ke dalam proses pembuatan, menghasilkan respons yang lebih komprehensif dan terinformasi. Untuk informasi selengkapnya tentang LLM grounding, lihat LLM Grounding - Microsoft Community Hub.

Permintaan dan rekayasa permintaan

Prompt adalah teks atau informasi spesifik yang berfungsi sebagai instruksi untuk model bahasa besar (LLM), atau sebagai data kontekstual yang dapat digunakan LLM untuk membangun lebih lanjut. Pengarahan dapat mengambil berbagai bentuk, seperti pertanyaan, pernyataan, atau bahkan cuplikan kode.

Contoh perintah yang dapat Anda gunakan untuk menghasilkan respons dari LLM meliputi:

  • Petunjuk: memberikan arahan kepada LLM
  • Konten utama: memberikan informasi kepada LLM untuk diproses
  • Contoh: membantu mengkondisikan model ke tugas atau proses tertentu
  • Petunjuk: arahkan keluaran LLM ke arah yang benar
  • Konten pendukung: mewakili informasi tambahan yang dapat digunakan LLM untuk menghasilkan output

Proses pembuatan prompt yang baik untuk skenario disebut rekayasa prompt. Untuk informasi selengkapnya tentang prompt dan praktik terbaik untuk rekayasa prompt, lihat Teknik rekayasa prompt.

Beberapa Token

Token adalah potongan kecil teks yang dihasilkan dengan memisahkan teks input menjadi segmen yang lebih kecil. Segmen-segmen ini dapat berupa kata atau grup karakter, bervariasi panjangnya dari satu karakter ke seluruh kata. Misalnya, kata hamburger dibagi menjadi token seperti ham, , burdan ger sementara kata pendek dan umum seperti pear dianggap sebagai token tunggal.

Di Azure OpenAI, API mentokenisasi teks input. Jumlah token yang diproses di setiap permintaan API tergantung pada faktor-faktor seperti panjang parameter input, output, dan permintaan. Kuantitas token yang sedang diproses juga berdampak pada waktu respons dan throughput model. Setiap model memiliki batasan jumlah token yang dapat diambil dalam satu permintaan dan respons dari Azure OpenAI. Untuk mempelajari selengkapnya, lihat Azure OpenAI dalam kuota dan batas Azure AI Foundry Model.

Vectors

Vektor adalah array angka yang diurutkan (biasanya float) yang dapat mewakili informasi tentang beberapa data. Misalnya, gambar dapat direpresentasikan sebagai vektor nilai piksel, atau string teks dapat direpresentasikan sebagai vektor nilai ASCII. Proses untuk mengubah data menjadi vektor disebut vektorisasi. Untuk informasi selengkapnya, lihat Contoh vektor.

Bekerja dengan data vektor lebih mudah dengan pengenalan jenis data vektor dan fungsi vektor.

Pemadatan

Embedding adalah vektor yang mewakili fitur-fitur penting dari data. Penyematan sering dipelajari dengan menggunakan model pembelajaran mendalam, dan pembelajaran mesin dan model AI menggunakannya sebagai fitur. Penyematan juga dapat menangkap kesamaan semantik antara konsep serupa. Misalnya, saat menghasilkan penyematan untuk kata-kata person dan human, Anda dapat mengharapkan penyematannya (representasi vektor) serupa dalam nilai karena kata-kata juga serupa secara semantik.

Azure OpenAI menampilkan model untuk membuat penyematan dari data teks. Layanan ini memecah teks menjadi token dan menghasilkan penyematan dengan menggunakan model yang telah dilatih sebelumnya oleh OpenAI. Untuk mempelajari lebih lanjut, lihat Memahami penyematan di Azure OpenAI dalam Model Azure AI Foundry.

Pencarian vektor adalah proses menemukan semua vektor dalam himpunan data yang secara semantik mirip dengan vektor kueri tertentu. Oleh karena itu, vektor kueri untuk kata human mencari seluruh kamus untuk kata yang mirip secara semantik, dan harus menemukan kata person sebagai kecocokan dekat. Kedekatan ini, atau jarak, diukur dengan menggunakan metrik kesamaan seperti kesamaan kosinus. Vektor yang lebih dekat memiliki kesamaan, semakin kecil jarak di antara mereka.

Pertimbangkan skenario di mana Anda menjalankan kueri lebih dari jutaan dokumen untuk menemukan dokumen yang paling mirip dalam data Anda. Anda dapat membuat embedding untuk data dan dokumen pencarian Anda dengan menggunakan Azure OpenAI. Kemudian, Anda dapat melakukan pencarian vektor untuk menemukan dokumen yang paling mirip dari himpunan data Anda. Namun, melakukan pencarian vektor di beberapa contoh adalah hal sepele. Melakukan pencarian yang sama ini pada ribuan atau jutaan poin data menjadi tantangan. Ada juga trade-off antara metode pencarian lengkap dan perkiraan metode pencarian tetangga terdekat (ANN), termasuk latensi, throughput, akurasi, dan biaya. Semua trade-off ini tergantung pada persyaratan aplikasi Anda.

Anda dapat menyimpan dan mengkueri vektor secara efisien di Database Engine SQL, seperti yang dijelaskan di bagian berikutnya. Kemampuan ini memungkinkan pencarian tetangga terdekat yang tepat dengan performa yang hebat. Anda tidak perlu memutuskan antara akurasi dan kecepatan: Anda dapat memiliki keduanya. Menyimpan penyematan vektor bersama data dalam solusi terintegrasi meminimalkan kebutuhan untuk mengelola sinkronisasi data dan mempercepat waktu ke pasar Anda untuk pengembangan aplikasi AI.

Azure OpenAI

Penyematan adalah proses mewakili dunia nyata sebagai data. Anda dapat mengonversi teks, gambar, atau suara menjadi penyematan. Model Azure OpenAI dapat mengubah informasi dunia nyata menjadi embedding. Anda dapat mengakses model sebagai endpoint REST, sehingga Anda dapat dengan mudah menggunakannya dari SQL Database Engine dengan menggunakan prosedur sistem yang tersimpan sp_invoke_external_rest_endpoint. Prosedur ini tersedia mulai dari SQL Server 2025 (17.x) dan Azure SQL Managed Instance yang dikonfigurasi dengan kebijakan pembaruan selalu terbaru.

DECLARE @retval AS INT,
        @response AS NVARCHAR (MAX),
        @payload AS NVARCHAR (MAX);

SET @payload = JSON_OBJECT('input':@text);

EXECUTE
    @retval = sp_invoke_external_rest_endpoint
    @url = 'https://<openai-url>/openai/deployments/<model-name>/embeddings?api-version = 2023-03-15-preview',
    @method = 'POST',
    @credential = [https://<openai-url>/openai/deployments/<model-name>],
    @payload = @payload,
    @response = @response OUTPUT;

DECLARE @e AS VECTOR(1536) = JSON_QUERY(@response, '$.result.data[0].embedding');

Menggunakan panggilan ke layanan REST untuk mendapatkan embedding hanyalah salah satu opsi integrasi yang tersedia ketika bekerja dengan SQL Managed Instance dan OpenAI. Anda dapat membiarkan salah satu model tersedia mengakses data yang disimpan di Database Engine SQL untuk membuat solusi di mana pengguna Anda dapat berinteraksi dengan data, seperti contoh berikut:

Screenshot dari bot AI yang menjawab pertanyaan menggunakan data yang disimpan di SQL Server.

Untuk contoh tambahan tentang menggunakan Azure SQL dan OpenAI, lihat artikel berikut ini, yang juga berlaku untuk SQL Server dan Azure SQL Managed Instance:

Contoh vektor

Jenis data vektor khusus secara efisien menyimpan data vektor dan mencakup serangkaian fungsi untuk membantu pengembang merampingkan implementasi pencarian vektor dan kesamaan. Anda dapat menghitung jarak antara dua vektor dalam satu baris kode dengan menggunakan fungsi baru VECTOR_DISTANCE . Untuk informasi dan contoh selengkapnya, lihat indeks pencarian dan vektor Vector di SQL Database Engine.

Contohnya:

CREATE TABLE [dbo].[wikipedia_articles_embeddings_titles_vector]
(
    [article_id] [int] NOT NULL,
    [embedding] [vector](1536) NOT NULL,
)
GO

SELECT TOP(10)
    *
FROM
    [dbo].[wikipedia_articles_embeddings_titles_vector]
ORDER BY
    VECTOR_DISTANCE('cosine', @my_reference_vector, embedding)

Terapkan pola RAG dengan menggunakan Database Engine SQL dan Pencarian Azure AI. Anda dapat menjalankan model obrolan yang didukung pada data yang disimpan di Database Engine SQL tanpa harus melatih atau menyempurnakan model dengan mengintegrasikan Pencarian Azure AI dengan Azure OpenAI dan Database Engine SQL. Saat menjalankan model pada data Anda, Anda dapat berinteraksi dengan data Anda dan menganalisisnya dengan akurasi dan kecepatan yang lebih tinggi.

Untuk mempelajari selengkapnya tentang integrasi Pencarian Azure AI dengan Azure OpenAI dan Database Engine SQL, lihat artikel berikut ini. Artikel ini juga berlaku untuk SQL Server dan Azure SQL Managed Instance:

Aplikasi cerdas

Anda dapat menggunakan Database Engine SQL untuk membangun aplikasi cerdas yang menyertakan fitur AI, seperti pemberi rekomendasi dan Retrieval Augmented Generation (RAG), seperti yang ditunjukkan oleh diagram berikut:

Diagram berbagai fitur AI untuk membangun aplikasi cerdas dengan Azure SQL Database.

Untuk sampel end-to-end yang menunjukkan cara membangun aplikasi yang diaktifkan AI menggunakan sesi abstrak sebagai himpunan data sampel, lihat:

Nota

Integrasi LangChain dan integrasi Kernel Semantik mengandalkan jenis data vector, yang tersedia mulai dari SQL Server 2025 (17.x) dan dalam Azure SQL Managed Instance yang dikonfigurasi dengan kebijakan pembaruan Always-up-to-date atau SQL Server 2025, Azure SQL Database, dan database SQL di Microsoft Fabric.

Integrasi LangChain

LangChain adalah kerangka kerja terkenal untuk mengembangkan aplikasi yang didukung oleh model bahasa. Untuk contoh yang menunjukkan bagaimana Anda dapat menggunakan LangChain untuk membuat chatbot pada data Anda sendiri, lihat:

Beberapa sampel menggunakan Azure SQL dengan LangChain:

Contoh ujung-ke-ujung:

integrasi Kernel Semantik

Kernel Semantik adalah SDK sumber terbuka yang dapat Anda gunakan untuk membangun agen yang memanggil kode yang ada dengan mudah. Sebagai SDK yang sangat luas, Anda dapat menggunakan Kernel Semantik dengan model dari OpenAI, Azure OpenAI, Hugging Face, dan banyak lagi. Dengan menggabungkan kode C#, Python, dan Java yang ada dengan model ini, Anda dapat membangun agen yang menjawab pertanyaan dan mengotomatiskan proses.

Contoh seberapa mudah Kernel Semantik membantu Anda membangun solusi yang mendukung AI adalah:

  • Chatbot utama?: Bangun chatbot pada data Anda sendiri menggunakan pola NL2SQL dan RAG untuk pengalaman pengguna utama.