iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
生成式 AI

LangChain 愛 Azure AI系列 第 6

Day06-Azure OpenAI 結合 LangChain 做 Embedding 向量

  • 分享至 

  • xImage
  •  

在 RAG 流程中,第一步就是將文本轉換為向量。這裡我們將示範如何使用 Azure OpenAI 的 Embedding 模型結合 LangChain,將文件內容轉為向量。

  1. 在 Azure OpenAI 的 Foundry Portal 建立 Embedding 模型。

和我們在第三天時建立 GPT 模型時一樣,我們要部署起一個 Embedding 模型。我們這裡部署 text-embedding-3-small【拼音】 模型,這個模型一般稱為三小模型,是 OpenAI CP 值最高的模型,也就是語義相似度的理解高且價格便宜。如下圖所示。

lanchain love azure ai 系列文

  1. 一樣填寫表單建立模型,如下圖所示,這裡和第三天的方式一樣,因此不再特別說明。這裡我直接把它取名為 3-small

lanchain love azure ai 系列文

  1. 接著我們就可以開始來把文本 embedding 了。我們使用下面的程式碼
from langchain_openai import AzureOpenAIEmbeddings

AZURE_OPENAI_API_KEY = "xx"         
AZURE_OPENAI_ENDPOINT = "https://chatgpteastus.openai.azure.com/" 
AZURE_OPENAI_EMBEDDING_DEPLOYMENT = "3-small"

text = "LangChain 是最讚的大語言模型應用開發框架,之一"

embeddings_model = AzureOpenAIEmbeddings(
    api_key=AZURE_OPENAI_API_KEY,
    azure_deployment=AZURE_OPENAI_EMBEDDING_DEPLOYMENT,
    openai_api_version="2024-10-21",
    azure_endpoint=AZURE_OPENAI_ENDPOINT,
)

vector = embeddings_model.embed_query(text)
print(f"向量維度: {len(vector)}")
print(f"向量前5維: {vector[:5]}")

  1. 然後用指令跑起來 uv run python day06.py,就可以看到如下圖的結果。

lanchain love azure ai 系列文

  1. 你可以試著把 text 抽換成出師表或是其他很長的文章,你會發現向量維度都會是 1536 維。因為維度是模型本身決定的,和文本長度沒有相關。維度高和語義相關性的表現會有正相關,但是不是絕對的。text-embedding-3-large 的維度更高,表現更好,但是也更貴。

明天我們就來建立 Azure AI search ,把向量資料整合進去吧!!


上一篇
Day05-生成式 AI 最主流的應用:RAG
下一篇
Day07-建立Azure AI Search 基本觀念
系列文
LangChain 愛 Azure AI7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言