快速開始使用 Attu Desktop
1.簡介
Attu是 Milvus 的多合一、開放源碼管理工具。它具有直觀的圖形化使用者介面 (GUI),讓您輕鬆與資料庫互動。只需幾下點擊,您就可以視覺化您的集群狀態、管理元資料、執行資料查詢等。
2.安裝桌面應用程式
訪問 AttuGitHub 發佈頁面下載桌面版 Attu。選擇適合您作業系統的版本,並依照安裝步驟進行。
適用於 macOS (M 系列晶片) 的注意事項:
如果遇到錯誤:
attu.app is damaged and cannot be opened.
在終端機執行以下指令,以繞過此問題:
sudo xattr -rd com.apple.quarantine /Applications/attu.app
3.連接至 Milvus
Attu 支援連線至Milvus Standalone和Zilliz Cloud,提供使用本機或雲端託管資料庫的彈性。
要在本機使用 Milvus Standalone:
- 按照Milvus 安裝指南啟動 Milvus Standalone。
- 開啟 Attu 並輸入連線資訊:
- Milvus 位址:您的 Milvus Standalone 伺服器 URI,例如 http://localhost:19530
- 其他可選設定:您可以依據您的 Milvus 設定來設定,或保留為預設值。
- 點擊 「連接 」訪問您的數據庫。
您也可以在Zilliz Cloud 上連接完全管理的 Milvus。只需將
Milvus Address
和token
設定為 Zilliz Cloud 實例的公共端點和 API 金鑰。
- 按一下以存取您的資料庫。
4.準備資料、建立集合和插入資料
4.1 準備資料
我們使用Milvus 文件 2.4.x中的常見問題頁面作為本範例的資料集。
下載並擷取資料:
wget https://github.com/milvus-io/milvus-docs/releases/download/v2.4.6-preview/milvus_docs_2.4.x_en.zip
unzip -q milvus_docs_2.4.x_en.zip -d milvus_docs
處理 Markdown 檔案:
from glob import glob
text_lines = []
for file_path in glob("milvus_docs/en/faq/*.md", recursive=True):
with open(file_path, "r") as file:
file_text = file.read()
text_lines += file_text.split("# ")
4.2 產生嵌入
定義一個嵌入模型,使用milvus_model
產生文字嵌入。我們以DefaultEmbeddingFunction
模型為例,這是一個預先訓練好的輕量級嵌入模型。
from pymilvus import model as milvus_model
embedding_model = milvus_model.DefaultEmbeddingFunction()
# Generate test embedding
test_embedding = embedding_model.encode_queries(["This is a test"])[0]
embedding_dim = len(test_embedding)
print(embedding_dim)
print(test_embedding[:10])
輸出:
768
[-0.04836066 0.07163023 -0.01130064 -0.03789345 -0.03320649 -0.01318448
-0.03041712 -0.02269499 -0.02317863 -0.00426028]
4.3 建立集合
連接到 Milvus 並建立一個 Collection:
from pymilvus import MilvusClient
# Connect to Milvus Standalone
client = MilvusClient(uri="http://localhost:19530")
collection_name = "attu_tutorial"
# Drop collection if it exists
if client.has_collection(collection_name):
client.drop_collection(collection_name)
# Create a new collection
client.create_collection(
collection_name=collection_name,
dimension=embedding_dim,
metric_type="IP", # Inner product distance
consistency_level="Strong"
)
4.4 插入資料
迭代文本行、建立嵌入模型,並將資料插入 Milvus:
from tqdm import tqdm
data = []
doc_embeddings = embedding_model.encode_documents(text_lines)
for i, line in enumerate(tqdm(text_lines, desc="Creating embeddings")):
data.append({"id": i, "vector": doc_embeddings[i], "text": line})
client.insert(collection_name=collection_name, data=data)
4.5 可視化資料和模式
現在我們可以使用 Attu 的介面來視覺化資料模式和插入的實體。模式顯示已定義的欄位,包括id
欄位類型Int64
和vector
欄位類型FloatVector(768)
,以及Inner Product (IP)
公制。集合載入了72 個實體。
此外,我們可以檢視插入的資料,包括 ID、向量嵌入以及儲存文字內容等元資料的動態欄位。介面支援根據指定條件或動態欄位進行篩選和查詢。
5.可視化搜尋結果及關係
Attu 提供強大的介面,可視化和探索資料關係。若要檢視插入的資料點及其相似性關係,請遵循下列步驟:
5.1執行搜尋
導覽到 Attu 的向量搜尋索引標籤。
- 按一下「產生隨機資料」按鈕以建立測試查詢。
- 按一下「搜尋」,以根據產生的資料擷取結果。
結果會顯示在表格中,顯示 ID、相似度得分,以及每個匹配實體的動態欄位。
5.2探索資料關係
按一下結果面板中的 [探索] (Explore)按鈕,可以將查詢向量與搜尋結果之間的關係可視化為類似知識圖表的結構。
- 中央節點代表搜尋向量。
- 連接的節點代表搜尋結果,按一下它們會顯示對應節點的詳細資訊。
5.3展開圖形
按兩下任何結果節點可展開其連線。此動作會顯示選取節點與資料集中其他資料點之間的其他關係,從而建立一個更大、相互連結的知識圖形。
透過此擴充檢視,可根據向量相似性深入探索資料點的關聯方式。
6.結論
Attu 簡化了儲存於 Milvus 的向量資料的管理與可視化。從資料插入、查詢執行到互動探索,它提供了一個直觀的介面來處理複雜的向量搜尋任務。憑藉動態模式支援、圖形化搜尋視覺化和靈活的查詢篩選器等功能,Attu 讓使用者能夠有效地分析大型資料集。
利用 Attu 的視覺化探索工具,使用者可以更好地瞭解他們的資料,找出隱藏的關係,並做出以資料為導向的決策。現在就開始使用 Attu 和 Milvus 探索您自己的資料集!