Halaman ini menjelaskan cara membuat dan menyimpan sematan vektor. Untuk ringkasan, lihat Penyimpanan embedding vektor.
Sebelum memulai
Anda harus memiliki instance Cloud SQL dengan flag database vektor diaktifkan.
Membuat embedding vektor berdasarkan data baris
Anda dapat membuat embedding vektor untuk data baris tertentu menggunakan API embedding teks seperti Vertex AI atau OpenAI. Anda dapat menggunakan API embedding teks apa pun dengan embedding vektor Cloud SQL. Namun, Anda harus menggunakan Text Embedding API yang sama untuk pembuatan vektor string kueri. Anda tidak dapat menggabungkan API yang berbeda untuk data sumber dan vektorisasi kueri.
Misalnya, Anda dapat membuat penyematan vektor dari Vertex AI:
from vertexai.language_models import TextEmbeddingModel
def text_embedding() -> list:
"""Text embedding with a Large Language Model."""
model = TextEmbeddingModel.from_pretrained("text-embedding-004")
embeddings = model.get_embeddings(["What is life?"])
for embedding in embeddings:
vector = embedding.values
print(f"Length of Embedding Vector: {len(vector)}")
return vector
if __name__ == "__main__":
text_embedding()
Menyimpan embedding vektor
Bagian ini memberikan contoh pernyataan untuk menyimpan embedding vektor di Cloud SQL.
Membuat tabel baru dengan kolom penyematan vektor
Gunakan pernyataan CREATE TABLE
dengan kolom yang menggunakan jenis data VECTOR
.
Gunakan sintaksis berikut untuk membuat tabel:
CREATE TABLE TABLE_NAME(
id INTEGER
PRIMARY KEY
AUTO_INCREMENT,
title VARCHAR(60),
EMBEDDING_COLUMN_NAME
VECTOR(VECTOR_DIMENSIONS)
USING VARBINARY);
Ganti parameter berikut:
TABLE_NAME
: nama tabel tempat Anda ingin menyimpan penyematan.EMBEDDING_COLUMN_NAME
: nama kolom yang menyimpan penyematan.VECTOR_DIMENSIONS
: jumlah dimensi yang akan digunakan untuk embedding.
Dalam contoh berikut, kolom embedding memiliki vektor dengan tiga dimensi. Data yang disimpan dalam kolom ini memiliki jenis data VARBINARY
.
CREATE TABLE books(
id INTEGER PRIMARY KEY AUTO_INCREMENT, title VARCHAR(60), embedding VECTOR(3) USING VARBINARY);
Menambahkan kolom sematan vektor ke tabel yang ada
Gunakan pernyataan ALTER TABLE
untuk menambahkan kolom penyematan vektor ke tabel yang ada. Kolom harus menggunakan jenis data VECTOR
untuk menyimpan penyematan.
Dalam contoh berikut, kolom embedding yang memiliki vektor dengan tiga dimensi disisipkan ke dalam tabel. Data yang disimpan dalam kolom ini memiliki
jenis data VARBINARY
.
ALTER TABLE books
ADD COLUMN embedding
VECTOR(3)
USING VARBINARY;
Menyisipkan embedding vektor
Gunakan INSERT
dengan fungsi string_to_vector
untuk menyisipkan nilai sematan vektor ke dalam tabel.
Dalam contoh berikut, vektor dengan tiga dimensi disisipkan ke dalam kolom embedding.
INSERT INTO books
(
title,
embedding)
VALUES (('book title', string_to_vector('[1,2,3]')));
Menyisipkan beberapa embedding vektor
Gunakan INSERT
dengan
fungsi string_to_vector
untuk menyisipkan daftar embedding vektor yang dipisahkan koma.
Dalam pernyataan berikut, dua penyematan, yang masing-masing berisi vektor dengan tiga dimensi dan dimasukkan ke dalam kolom penyematan.
INSERT INTO books
(
title,
embedding)
VALUES
(
(
'book title',
string_to_vector('[1,2,3]')),
('book title', string_to_vector('[4,5,6]')));
Meng-upsert embedding vektor
Gunakan operasi INSERT
atau UPDATE
pada tabel dengan
fungsi string_to_vector
untuk menambahkan kolom penyematan vektor, menggunakan sintaksis berikut.
Dalam pernyataan berikut, upsert digunakan untuk menyisipkan atau mengupdate kolom embedding dengan embedding yang berisi vektor dengan tiga dimensi.
INSERT INTO books
(
id,
title,
embedding)
VALUES
(
(
1,
'book title',
string_to_vector('[1,2,3]')))
ON DUPLICATE KEY UPDATE embedding = string_to_vector('[1,2,3]');
Memperbarui embedding vektor
Gunakan UPDATE
dengan
fungsi string_to_vector
untuk memperbarui penyematan vektor.
Dalam pernyataan berikut, UPDATE
digunakan untuk memperbarui kolom penyematan dengan
vektor tiga dimensi.
UPDATE books
SET embedding = string_to_vector('[7,8,9]')
WHERE id = 1;
Mengambil embedding vektor
Untuk mengambil embedding vektor, gunakan
fungsi vector_to_string
Cloud SQL
bersama dengan nama embedding.
Dalam pernyataan berikut, kolom penyematan diambil untuk dilihat.
SELECT vector_to_string(embedding) FROM books WHERE id = 1;
Menghapus penyematan vektor
Gunakan DELETE
dengan
fungsi string_to_vector
untuk menghapus penyematan vektor dari tabel. Jika ada indeks vektor, Anda harus menghapusnya terlebih dahulu. Untuk mengetahui informasi selengkapnya, lihat
Menghapus indeks vektor.
Dalam pernyataan berikut, DELETE
digunakan untuk menghapus nilai di kolom
embedding.
DELETE FROM books
WHERE embedding = string_to_vector('[1,2,3]');
Langkah berikutnya
- Baca ringkasan tentang penelusuran vektor di Cloud SQL.
- Pelajari cara mengaktifkan dan menonaktifkan penyematan vektor di instance Anda.
- Pelajari cara membuat indeks vektor.
- Pelajari cara melakukan penelusuran pada embedding vektor.