瞭解嵌入工作流程示例

本頁提供工作流程範例,說明如何搭配使用mysql.ml_embedding()函式和mysql vector查詢功能,處理儲存在資料表中的資料。本例使用純文字輸入內容,從某個資料庫中擷取結果,該資料庫是透過大型語言模型 (LLM) 導向的語意剖析機制來分析文字意思。

嵌入工作流程情境範例

假設資料庫在 MySQL 適用的 Cloud SQL 上執行,且具有下列特點:

  • 資料庫包含資料表:items。這個表格的每一列都說明貴商家銷售的項目。

  • items 資料表包含 complaints 欄。這個資料欄會以純文字格式,儲存買家對各個項目提出的申訴。

  • 資料庫會與 Vertex AI Model Garden 整合,因此可存取 gemini-embedding LLM。

雖然這個資料庫會儲存有關商品的申訴內容,但這些申訴內容是以純文字形式儲存,因此難以查詢。舉例來說,如果想瞭解哪些商品最常收到顧客投訴,原因是他們收到的商品顏色有誤,您可以在資料表上執行一般 SQL 查詢,尋找各種關鍵字相符項目。不過,這種做法只會比對包含這些完全一致關鍵字的資料列。

舉例來說,如果 complaints 欄位只包含 The picture shows a blue one, but the one I received was red,則 SELECT * FROM item WHERE complaints LIKE "%wrong color%" 等基本 SQL 查詢不會傳回資料列。

使用 LLM 輔助嵌入的 SQL 查詢,有助於填補這項落差。套用嵌入後,您可以在這個範例中查詢表格,找出與指定文字提示詞 (例如「顏色錯誤」) 語意相似的項目。

下列步驟說明如何在先前所述的範例情境中啟用這項功能。

準備資料表

在 items 資料表的內容上執行 LLM 查詢前,您必須先準備資料表,根據現有資料儲存及建立嵌入的索引。

建立資料欄來儲存嵌入內容

在表格中新增資料欄,用來儲存嵌入內容。

sql ALTER TABLE items ADD COLUMN complaint_embedding vector(3072) using varbinary;

本範例將 3072 指定為引數,因為 gemini-embedding LLM 支援的維度數量就是這麼多。詳情請參閱「產生嵌入內容」。

這個範例會將 vector 資料類型套用至資料欄,簡化搭配資料欄值使用 pgvector 函式和運算子的程序。

填入新資料欄

使用 mysql.ml_embedding() 函式,根據 complaints 欄中每列的文字值,在這個新欄中填入嵌入。在本範例中,Cloud SQL 會使用 ID 為 gemini-embedding 的 LLM 生成嵌入,版本為 001。

UPDATE items SET complaint_embedding = mysql.ml_embedding('gemini-embedding-001', complaints);
這個範例會將 mysql.ml_embedding() 的二進位傳回值隱含轉換為 vector 值,以便將值儲存在您在「建立欄位來儲存嵌入內容」中建立的 vector 欄位。

建立索引

如要提升效能,請在 items 資料表中新增索引。

CREATE VECTOR INDEX complaint_embed_idx ON items(complaint_embedding)
  USING SCANN DISTANCE_MEASURE=COSINE;

如要進一步瞭解如何建立這類索引,請參閱「建立最鄰近鄰居索引」。此外,如要進一步瞭解如何透過設定參數調整索引,請參閱「查詢和索引嵌入」。

使用提供的文字執行 LLM 輔助查詢

現在可以對 items 資料表執行語意最鄰近查詢。下列查詢使用 approx_distance 函式完成下列動作:

  • 根據與 It was the wrong color 文字的語意鄰近程度,排序表格列。
  • 傳回前 10 大申訴案件。

查詢會顯示第一個排序資料列的 id 和 name 值。

SELECT mysql.ML_EMBEDDING('gemini-embedding-001', 'It was the wrong color') into @query_vector;

select id, name from items order by approx_distance(complaint_embedding , @query_vector,'distance_measure=cosine') limit 10;

後續步驟

  • 整合 Cloud SQL 與 Vertex AI

  • 向量嵌入使用訣竅

  • 從 Cloud SQL 執行個體叫用線上預測

  • 使用 LangChain 建構採用 LLM 的應用程式