Halaman ini menjelaskan cara membuat dan menyimpan penyematan vektor. Untuk ringkasan, lihat Penyimpanan penyematan vektor.
Sebelum memulai
Anda harus memiliki instance Cloud SQL dengan flag database vektor yang 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 penyematan teks apa pun dengan penyematan vektor Cloud SQL. Namun, Anda harus menggunakan API penyematan teks 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 penyematan 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 penyematan.
Dalam contoh berikut, kolom penyematan memiliki vektor dengan tiga dimensi. Data yang disimpan di 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 penyematan 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 penyematan yang memiliki vektor dengan tiga dimensi disisipkan ke dalam tabel. Data yang disimpan di 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 penyematan vektor ke dalam tabel.
Dalam contoh berikut, vektor dengan tiga dimensi disisipkan ke dalam kolom penyematan.
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, masing-masing berisi vektor dengan tiga dimensi dan disisipkan 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]')));
Memperbarui dan menyisipkan 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 memperbarui 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 dengan tiga dimensi.
UPDATE books
SET embedding = string_to_vector('[7,8,9]')
WHERE id = 1;
Mengambil embedding vektor
Untuk mengambil penyematan vektor, gunakan fungsi vector_to_string
Cloud SQL bersama dengan nama penyematan.
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
penyematan.
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.