Bagikan melalui


Aplikasi cerdas dan AI

Berlaku untuk: Database SQL SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed Instancedi 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, tinjau Aplikasi cerdas 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
Azure OpenAI Hasilkan penyematan untuk RAG dan integrasikan 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 dengan Azure AI Search 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.

Konsep utama untuk menerapkan RAG dengan Azure OpenAI

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

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 SQL Database Engine dapat berupa:

  1. Sisipkan data ke dalam tabel.
  2. Tautkan instans Anda ke Azure AI Search.
  3. Buat model Azure OpenAI GPT4 dan sambungkan ke Azure AI Search.
  4. Mengobrol dan mengajukan pertanyaan tentang data Anda menggunakan model Azure OpenAI terlatih dari aplikasi Anda dan 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 pangkalan 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 grounding LLM, lihat Grounding LLMs - Microsoft Community Hub.

Permintaan dan rekayasa permintaan

Perintah mengacu pada teks atau informasi tertentu yang berfungsi sebagai instruksi ke LLM, atau sebagai data kontekstual yang dapat dibangun LLM. Pengarahan dapat mengambil berbagai bentuk, seperti pertanyaan, pernyataan, atau bahkan cuplikan kode.

Contoh perintah yang dapat digunakan untuk menghasilkan respons dari LLM:

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

Proses pembuatan permintaan 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 akan dibagi menjadi token seperti ham, , burdan ger sementara kata pendek dan umum seperti pear akan dianggap sebagai satu token.

Di Azure OpenAI, teks input yang disediakan ke API diubah menjadi token (ditokenisasi). 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. Ada batasan jumlah token yang dapat diambil setiap model dalam satu permintaan/respons dari Azure OpenAI. Untuk mempelajari selengkapnya, lihat Azure OpenAI pada model Azure AI Foundry serta kuota dan batasannya.

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, dalam menghasilkan penyematan untuk kata-kata person dan human, kami akan mengharapkan penyematannya (representasi vektor) serupa dalam nilai karena kata-kata juga serupa secara semantik.

Fitur Azure OpenAI mencakup model untuk membuat penyematan dari data teks. Layanan ini memecah teks menjadi token dan menghasilkan penyematan menggunakan model yang telah dilatih sebelumnya oleh OpenAI. Untuk mempelajari selengkapnya, lihat Memahami embedding dalam Azure OpenAI pada Model Azure AI Foundry.

Pencarian vektor mengacu pada 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 sama secara semantik, dan harus menemukan kata person sebagai kecocokan dekat. Kedekatan ini, atau jarak, diukur 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 penyematan untuk data dan dokumen kueri Anda 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 di ribuan, atau jutaan, poin data menjadi menantang. Ada juga trade-off antara pencarian lengkap dan perkiraan metode pencarian tetangga terdekat (ANN) termasuk latensi, throughput, akurasi, dan biaya, yang semuanya tergantung pada persyaratan aplikasi Anda.

Vektor di Mesin SQL Database dapat disimpan dan dikueri secara efisien, seperti yang dijelaskan di bagian berikutnya, 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. Teks, gambar, atau suara dapat dikonversi menjadi penyematan. Model Azure OpenAI dapat mengubah informasi dunia nyata menjadi penyematan. Model tersedia sebagai endpoint REST dan dapat dengan mudah dimanfaatkan dari Mesin Database SQL menggunakan prosedur simpanan sistem sp_invoke_external_rest_endpoint, yang tersedia mulai dari SQL Server 2025 (17.x) dan Azure SQL Managed Instance yang dikonfigurasi dengan Always-up-to-date update policy.

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 penyematan hanyalah salah satu opsi integrasi yang Anda miliki saat bekerja dengan SQL Managed Instance dan OpenAI. Anda dapat membiarkan salah satu model yang tersedia mengakses data yang disimpan di SQL Database Engine untuk membuat solusi di mana pengguna Anda dapat berinteraksi dengan data, seperti contoh berikut:

Cuplikan layar 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 memungkinkan penyimpanan data vektor yang efisien dan dioptimalkan, dan dilengkapi dengan serangkaian fungsi untuk membantu pengembang merampingkan implementasi pencarian vektor dan kesamaan. Menghitung jarak antara dua vektor dapat dilakukan dalam satu baris kode menggunakan fungsi baru VECTOR_DISTANCE . Untuk informasi dan contoh selengkapnya, tinjau Indeks pencarian vektor dan vektor 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 SQL Database Engine dan Azure AI Search. Anda dapat menjalankan model obrolan yang didukung pada data yang disimpan di SQL Database Engine, tanpa harus melatih atau menyempurnakan model, berkat integrasi Azure AI Search dengan Azure OpenAI dan SQL Database Engine. Menjalankan model pada data memungkinkan Anda mengobrol di atas, dan menganalisis, data Anda dengan akurasi dan kecepatan yang lebih besar.

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

Aplikasi cerdas

Mesin SQL Database dapat digunakan untuk membangun aplikasi cerdas yang menyertakan fitur AI, seperti pemberi rekomendasi, dan Pengambilan Augmented Generation (RAG) seperti yang ditunjukkan oleh diagram berikut:

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

Untuk sampel end-to-end untuk membangun aplikasi yang mendukung AI menggunakan abstrak sesi sebagai himpunan data sampel, lihat:

Nota

Integrasi LangChain dan integrasi Kernel Semantik mengandalkan jenis data vektor, yang tersedia dimulai dengan SQL Server 2025 (17.x) dan di Azure SQL Managed Instance yang dikonfigurasi dengan kebijakan pembaruan always-up-to-date.

Integrasi LangChain

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

Beberapa sampel tentang menggunakan Azure SQL dengan LangChain:

Contoh end-to-end:

Integrasi Kernel Semantik

Semantic Kernel adalah SDK sumber terbuka yang memungkinkan Anda dengan mudah membangun agen yang dapat memanggil kode yang ada. Sebagai SDK yang sangat dapat diperluas, Anda dapat menggunakan Semantic Kernel 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 Semantic Kernel membantu membangun solusi berkemampuan AI ada di sini:

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