跳到主要內容
Open In ColabOpen on GitHub

LindormVectorStore

本筆記本涵蓋如何開始使用 Lindorm 向量儲存庫。

設定

若要存取 Lindorm 向量儲存庫,您需要建立 Lindorm 帳戶、取得 ak/sk,並安裝 langchain-lindorm-integration 整合套件。

%pip install -qU "langchain-lindorm-integration"

憑證

前往這裡註冊 Lindorm 並產生 ak/sk。

import os


class Config:
SEARCH_ENDPOINT = os.environ.get("SEARCH_ENDPOINT", "SEARCH_ENDPOINT")
SEARCH_USERNAME = os.environ.get("SEARCH_USERNAME", "root")
SEARCH_PWD = os.environ.get("SEARCH_PASSWORD", "<PASSWORD>")
AI_LLM_ENDPOINT = os.environ.get("AI_ENDPOINT", "<AI_ENDPOINT>")
AI_USERNAME = os.environ.get("AI_USERNAME", "root")
AI_PWD = os.environ.get("AI_PASSWORD", "<PASSWORD>")
AI_DEFAULT_EMBEDDING_MODEL = "bge_m3_model" # set to your model

初始化

這裡我們使用部署在 Lindorm AI 服務上的嵌入模型。

from langchain_lindorm_integration.embeddings import LindormAIEmbeddings
from langchain_lindorm_integration.vectorstores import LindormVectorStore

embeddings = LindormAIEmbeddings(
endpoint=Config.AI_LLM_ENDPOINT,
username=Config.AI_USERNAME,
password=Config.AI_PWD,
model_name=Config.AI_DEFAULT_EMBEDDING_MODEL,
)

index = "test_index"
vector = embeddings.embed_query("hello word")
dimension = len(vector)
vector_store = LindormVectorStore(
lindorm_search_url=Config.SEARCH_ENDPOINT,
embedding=embeddings,
http_auth=(Config.SEARCH_USERNAME, Config.SEARCH_PWD),
dimension=dimension,
embeddings=embeddings,
index_name=index,
)

管理向量儲存庫

將項目新增至向量儲存庫

from langchain_core.documents import Document

document_1 = Document(page_content="foo", metadata={"source": "https://example.com"})

document_2 = Document(page_content="bar", metadata={"source": "https://example.com"})

document_3 = Document(page_content="baz", metadata={"source": "https://example.com"})

documents = [document_1, document_2, document_3]

vector_store.add_documents(documents=documents, ids=["1", "2", "3"])
API 參考:文件
['1', '2', '3']

從向量儲存庫刪除項目

vector_store.delete(ids=["3"])
{'took': 400,
'timed_out': False,
'total': 1,
'deleted': 1,
'batches': 1,
'version_conflicts': 0,
'noops': 0,
'retries': {'bulk': 0, 'search': 0},
'throttled_millis': 0,
'requests_per_second': -1.0,
'throttled_until_millis': 0,
'failures': []}

查詢向量儲存庫

一旦您的向量儲存庫已建立,並且已新增相關文件,您很可能希望在執行您的鏈或代理程式期間查詢它。

直接查詢

執行簡單的相似性搜尋可以如下完成

results = vector_store.similarity_search(query="thud", k=1)
for doc in results:
print(f"* {doc.page_content} [{doc.metadata}]")
* foo [{'source': 'https://example.com'}]

如果您想要執行相似性搜尋並接收相應的分數,您可以執行

results = vector_store.similarity_search_with_score(query="thud", k=1)
for doc, score in results:
print(f"* [SIM={score:3f}] {doc.page_content} [{doc.metadata}]")
* [SIM=0.671268] foo [{'source': 'https://example.com'}]

用於檢索增強生成的使用方式

有關如何使用此向量儲存庫進行檢索增強生成 (RAG) 的指南,請參閱以下章節

API 參考

有關所有 LindormVectorStore 功能和配置的詳細文件,請前往API 參考


此頁面是否對您有幫助?