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)
Database SQL Azure SQL database
di Microsoft Fabric
AI_GENERATE_EMBEDDINGS adalah fungsi bawaan yang membuat penyematan (array vektor) menggunakan definisi model AI yang dibuat sebelumnya yang disimpan dalam database.
Sintaksis
AI_GENERATE_EMBEDDINGS ( source USE MODEL model_identifier [ PARAMETERS optional_json_request_body_parameters ] )
Argumen
sumber
Ekspresi jenis karakter apa pun (misalnya, nvarchar, varchar, nchar, atau char).
model_identifier
Nama model eksternal yang didefinisikan sebagai EMBEDDINGS jenis yang digunakan untuk membuat array vektor penyematan.
Untuk informasi selengkapnya, lihat MEMBUAT MODEL EKSTERNAL.
optional_json_request_body_parameters
Daftar parameter tambahan berformat JSON yang valid. Parameter ini ditambahkan ke isi pesan permintaan REST sebelum dikirim ke lokasi titik akhir model eksternal. Parameter ini bergantung pada apa yang didukung dan diterima oleh titik akhir model eksternal.
Tipe pengembalian
AI_GENERATE_EMBEDDINGS mengembalikan tabel kolom tunggal yang barisnya adalah array vektor penyematan yang dihasilkan yang dikembalikan sebagai JSON.
Mengembalikan format
Format JSON yang dikembalikan adalah sebagai berikut:
[
0.0023929428,
0.00034713413,
-0.0023142276,
-0.025654867,
-0.011492423,
0.0010358924,
-0.014836246,
0.0035484824,
0.000045630233,
-0.027581815,
0.023816079,
0.005012586,
-0.027732948,
-0.010088143,
...
-0.014571763
]
Komentar
Prasyarat
Anda harus memenuhi prasyarat berikut untuk menggunakan AI_GENERATE_EMBEDDINGS:
Aktifkan
sp_invoke_external_endpointpada database, dengan perintah berikut:EXECUTE sp_configure 'external rest endpoint enabled', 1; RECONFIGURE WITH OVERRIDE;Buat model eksternal dari jenis tersebut
EMBEDDINGS, yang dapat diakses melalui pemberian, peran, dan/atau izin yang benar.
Parameter opsional
Parameter optional_json_request_body_parameters di AI_GENERATE_EMBEDDINGS digunakan ketika parameter titik akhir perlu ditambahkan ke isi pesan permintaan penyematan. Menambahkan parameter opsional akan mengambil alih nilai pada runtime jika parameter tersebut ditentukan dalam definisi model.
Misalnya, jika model eksternal berisi parameter untuk dimensions diatur ke 1536, dengan meneruskan parameter tersebut di optional_json_request_body_parameters runtime dengan nilai baru seperti yang terlihat di sini: json_object("dimensions":755), dimensions parameter pada model ditimpa.
Nilai yang diteruskan ke optional_json_request_body_parameters harus JSON yang valid.
Membuat titik akhir penyematan
Untuk informasi selengkapnya tentang membuat titik akhir penyematan, tinjau proses Azure OpenAI di Azure AI Foundry Models, OpenAI, atau Ollama.
Acara yang Diperpanjang (XEvent)
AI_GENERATE_EMBEDDINGS memiliki peristiwa yang diperluas (ai_generate_embeddings_summary) yang dapat diaktifkan untuk pemecahan masalah. Ini berisi informasi tentang permintaan dan respons REST seperti kode status, kesalahan apa pun yang ditemui, dan nama model yang digunakan. Kejadian external_rest_endpoint_summary yang diperluas berisi informasi tambahan yang dapat untuk pemecahan masalah dan penelusuran kesalahan permintaan REST.
Contoh
Sebuah. Membuat penyematan dengan pernyataan SELECT
Contoh berikut menunjukkan cara menggunakan AI_GENERATE_EMBEDDINGS fungsi dengan pernyataan select yang mengembalikan hasil dalam array JSON.
SELECT id,
AI_GENERATE_EMBEDDINGS(large_text USE MODEL MyAzureOpenAIModel)
FROM myTable;
B. Membuat penyematan dengan pernyataan SELECT menggunakan AI_GENERATE_CHUNKS
Contoh berikut menunjukkan cara menggunakan AI_GENERATE_EMBEDDINGS fungsi dengan fungsi AI_GENERATE_CHUNKS untuk meneruskan teks yang dipecah dalam ukuran potongan tertentu dengan pernyataan select yang mengembalikan hasil array vektor.
SELECT id,
title,
large_text,
AI_GENERATE_EMBEDDINGS(c.chunk_text USE MODEL MyAzureOpenAIModel)
FROM myTable
CROSS APPLY AI_GENERATE_CHUNKS (
SOURCE = large_text,
CHUNK_TYPE = FIXED,
CHUNK_SIZE = 10
) AS c;
C. Membuat penyematan dengan pembaruan tabel
Contoh berikut menunjukkan cara menggunakan AI_GENERATE_EMBEDDINGS fungsi dengan pernyataan pembaruan tabel untuk mengembalikan hasil array vektor ke dalam kolom tipe data vektor.
UPDATE t
SET myEmbeddings = AI_GENERATE_EMBEDDINGS(t.text USE MODEL MyAzureOpenAIModel)
FROM myTable AS t;
D. Membuat penyematan dengan pernyataan SELECT dan PARAMETERS
Contoh berikut menunjukkan cara menggunakan AI_GENERATE_EMBEDDINGS fungsi dengan pernyataan pilih dan meneruskan parameter opsional ke titik akhir, yang mengembalikan hasil array vektor.
SELECT id,
AI_GENERATE_EMBEDDINGS(large_text USE MODEL MyAzureOpenAIModel PARAMETERS TRY_CONVERT (JSON, N'{"dimensions":768}'))
FROM myTable;
E. Coba lagi menyematkan pembuatan dengan retry_count opsi PARAMETERS
Jika panggilan penyematan mengalami kode status HTTP yang menunjukkan masalah sementara, Anda dapat mengonfigurasi permintaan untuk mencoba kembali secara otomatis.
Untuk menentukan jumlah percobaan ulang, tambahkan JSON berikut ke PARAMETERS opsi. Nilai ini harus berupa bilangan bulat positif antara nol (0) dan sepuluh (10) inklusif, dan tidak boleh .NULL
Nota
Jika retry_count nilai ditentukan dalam AI_GENERATE_EMBEDDINGS kueri, nilai tersebut akan menggantikan ( retry_count jika ditentukan) dalam konfigurasi model eksternal.
SELECT id,
AI_GENERATE_EMBEDDINGS(large_text USE MODEL MyAzureOpenAIModel PARAMETERS TRY_CONVERT (JSON, N'{"retry_count":10}'))
FROM myTable;
F. Contoh lengkap dengan pembuatan model, pemotongan, dan pembuatan penyematan
Contoh berikut menunjukkan proses end-to-end untuk membuat data Anda siap AI menggunakan Azure OpenAI API Key:
Gunakan CREATE EXTERNAL MODEL untuk mendaftar dan membuat model penyematan Anda dapat diakses.
Pisahkan himpunan data menjadi potongan-potongan yang lebih kecil dengan AI_GENERATE_CHUNKS, sehingga data sesuai dengan jendela konteks model dan meningkatkan akurasi pengambilan.
Hasilkan penyematan menggunakan
AI_GENERATE_EMBEDDINGS.Sisipkan hasil ke dalam tabel dengan tipe data vektor.
Nota
Ganti <password> dengan kata sandi yang valid.
Aktifkan pemanggilan titik akhir REST eksternal di server database:
EXECUTE sp_configure 'external rest endpoint enabled', 1;
RECONFIGURE WITH OVERRIDE;
GO
Buat kunci master database:
IF NOT EXISTS (SELECT *
FROM sys.symmetric_keys
WHERE [name] = '##MS_DatabaseMasterKey##')
BEGIN
CREATE MASTER KEY ENCRYPTION BY PASSWORD = N'<password>';
END
GO
Buat kredensial akses ke Azure OpenAI menggunakan kunci:
CREATE DATABASE SCOPED CREDENTIAL [https://my-azure-openai-endpoint.cognitiveservices.azure.com/]
WITH IDENTITY = 'HTTPEndpointHeaders', secret = '{"api-key":"YOUR_AZURE_OPENAI_KEY"}';
GO
Buat model eksternal untuk memanggil titik akhir REST penyematan Azure OpenAI:
CREATE EXTERNAL MODEL MyAzureOpenAIModel
WITH (
LOCATION = 'https://my-azure-openai-endpoint.cognitiveservices.azure.com/openai/deployments/text-embedding-ada-002/embeddings?api-version=2023-05-15',
API_FORMAT = 'Azure OpenAI',
MODEL_TYPE = EMBEDDINGS,
MODEL = 'text-embedding-ada-002',
CREDENTIAL = [https://my-azure-openai-endpoint.cognitiveservices.azure.com/]
);
Buat tabel dengan teks untuk dipotong dan sisipkan data:
CREATE TABLE textchunk
(
text_id INT IDENTITY (1, 1) PRIMARY KEY,
text_to_chunk NVARCHAR (MAX)
);
GO
INSERT INTO textchunk (text_to_chunk)
VALUES ('All day long we seemed to dawdle through a land which was full of beauty of every kind. Sometimes we saw little towns or castles on the top of steep hills such as we see in old missals; sometimes we ran by rivers and streams which seemed from the wide stony margin on each side of them to be subject to great floods.'),
('My Friend, Welcome to the Carpathians. I am anxiously expecting you. Sleep well to-night. At three to-morrow the diligence will start for Bukovina; a place on it is kept for you. At the Borgo Pass my carriage will await you and will bring you to me. I trust that your journey from London has been a happy one, and that you will enjoy your stay in my beautiful land. Your friend, DRACULA')
GO
Buat tabel baru untuk menyimpan teks yang dipotong dan penyematan vektor:
CREATE TABLE text_embeddings
(
embeddings_id INT IDENTITY (1, 1) PRIMARY KEY,
chunked_text NVARCHAR (MAX),
vector_embeddings VECTOR(1536)
);
Masukkan teks yang dipotong dan penyematan vektor ke dalam tabel text_embeddings menggunakan AI_GENERATE_CHUNKS dan AI_GENERATE_EMBEDDINGS:
INSERT INTO text_embeddings (chunked_text, vector_embeddings)
SELECT c.chunk,
AI_GENERATE_EMBEDDINGS(c.chunk USE MODEL MyAzureOpenAIModel)
FROM textchunk AS t
CROSS APPLY AI_GENERATE_CHUNKS (
SOURCE = t.text_to_chunk,
CHUNK_TYPE = FIXED,
CHUNK_SIZE = 100
) AS c;
Lihat hasilnya
SELECT *
FROM text_embeddings;
Konten terkait
- BUAT MODEL EKSTERNAL (Transact-SQL)
- UBAH MODEL EKSTERNAL (Transact-SQL)
- JATUHKAN MODEL EKSTERNAL (Transact-SQL)
- AI_GENERATE_CHUNKS (Transact-SQL)
- sp_panggil_titik_akhir_rest_eksternal
- Membuat dan menyebarkan Azure OpenAI di sumber daya Azure AI Foundry Models
- Menyambungkan SQL Server Anda ke Azure Arc