Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
SQL 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:
- Sisipkan data ke dalam tabel.
- Tautkan instans Anda ke Pencarian Azure AI.
- Buat Azure model OpenAI GPT-4 dan sambungkan ke Pencarian Azure AI.
- 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
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:
Untuk contoh tambahan tentang menggunakan Azure SQL dan OpenAI, lihat artikel berikut ini, yang juga berlaku untuk SQL Server dan Azure SQL Managed Instance:
- Buat gambar dengan Azure OpenAI Service (DALL-E) dan Azure SQL
- Gunakan Titik Akhir REST OpenAI dengan Azure SQL
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)
Pencarian Azure AI
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:
- Azure OpenAI pada data Anda
- Retrieval Augmented Generation (RAG) dalam Pencarian Azure AI
- Vector Search dengan Azure SQL dan Pencarian Azure AI
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:
Untuk sampel end-to-end yang menunjukkan cara membangun aplikasi yang diaktifkan AI menggunakan sesi abstrak sebagai himpunan data sampel, lihat:
- Bagaimana saya membangun pemberi rekomendasi sesi dalam 1 jam menggunakan OpenAI.
- Gunakan Retrieval Augmented Generation untuk membangun asisten untuk sesi konferensi.
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:
- langchain-sqlserver Paket PyPI.
Beberapa sampel menggunakan Azure SQL dengan LangChain:
Contoh ujung-ke-ujung:
- Bangun chatbot pada data Anda sendiri dalam 1 jam dengan Azure SQL, Langchain, dan Chainlit: Bangun chatbot menggunakan RAG pattern pada data Anda sendiri dengan menggunakan LangChain untuk mengatur panggilan LLM dan Chainlit untuk UI.
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.