使用 LlamaIndex 与部署在 Vertex AI Endpoint 中的嵌入模型交互¶
Vertex AI 端点是一个托管资源,用于部署机器学习模型(如嵌入模型),以便对新数据进行预测。
本 Notebook 演示了如何使用 VertexEndpointEmbedding
类,借助 LlamaIndex 与嵌入模型端点进行交互。
设置¶
如果你在 Colab 上打开此 Notebook,可能需要安装 LlamaIndex 🦙。
In [ ]
已复制!
%pip install llama-index-embeddings-vertex-endpoint
%pip install llama-index-embeddings-vertex-endpoint
In [ ]
已复制!
! pip install llama-index
! pip install llama-index
你需要指定端点信息(端点 ID、项目 ID 和区域)才能与部署在 Vertex AI 中的模型进行交互。
In [ ]
已复制!
ENDPOINT_ID = "<-YOUR-ENDPOINT-ID->"
PROJECT_ID = "<-YOUR-PROJECT-ID->"
LOCATION = "<-YOUR-GCP-REGION->"
ENDPOINT_ID = "<-YOUR-ENDPOINT-ID->" PROJECT_ID = "<-YOUR-PROJECT-ID->" LOCATION = "<-YOUR-GCP-REGION->"
需要提供凭据才能连接到端点。你可以选择:
- 通过指定
service_account_file
参数,使用服务账号 JSON 文件。 - 通过
service_account_info
参数直接提供服务账号信息。
使用服务账号文件的示例
In [ ]
已复制!
from llama_index.embeddings.vertex_endpoint import VertexEndpointEmbedding
SERVICE_ACCOUNT_FILE = "<-YOUR-SERVICE-ACCOUNT-FILE-PATH->.json"
embed_model = VertexEndpointEmbedding(
endpoint_id=ENDPOINT_ID,
project_id=PROJECT_ID,
location=LOCATION,
service_account_file=SERVICE_ACCOUNT_FILE,
)
from llama_index.embeddings.vertex_endpoint import VertexEndpointEmbedding SERVICE_ACCOUNT_FILE = "<-YOUR-SERVICE-ACCOUNT-FILE-PATH->.json" embed_model = VertexEndpointEmbedding( endpoint_id=ENDPOINT_ID, project_id=PROJECT_ID, location=LOCATION, service_account_file=SERVICE_ACCOUNT_FILE, )
使用直接服务账号信息的示例:
In [ ]
已复制!
from llama_index.embeddings.vertex_endpoint import VertexEndpointEmbedding
SERVICE_ACCOUNT_INFO = {
"private_key": "<-PRIVATE-KEY->",
"client_email": "<-SERVICE-ACCOUNT-EMAIL->",
"token_uri": "https://oauth2.googleapis.com/token",
}
embed_model = VertexEndpointEmbedding(
endpoint_id=ENDPOINT_ID,
project_id=PROJECT_ID,
location=LOCATION,
service_account_info=SERVICE_ACCOUNT_INFO,
)
from llama_index.embeddings.vertex_endpoint import VertexEndpointEmbedding SERVICE_ACCOUNT_INFO = { "private_key": "<-PRIVATE-KEY->", "client_email": "<-SERVICE-ACCOUNT-EMAIL->", "token_uri": "https://oauth2.googleapis.com/token", } embed_model = VertexEndpointEmbedding( endpoint_id=ENDPOINT_ID, project_id=PROJECT_ID, location=LOCATION, service_account_info=SERVICE_ACCOUNT_INFO, )
基本用法¶
调用 get_text_embedding
¶
In [ ]
已复制!
embeddings = embed_model.get_text_embedding(
"Vertex AI is a managed machine learning (ML) platform provided by Google Cloud. It allows data scientists and developers to build, deploy, and scale machine learning models efficiently, leveraging Google's ML infrastructure."
)
embeddings = embed_model.get_text_embedding( "Vertex AI 是 Google Cloud 提供的一个托管机器学习 (ML) 平台。它使数据科学家和开发人员能够有效地构建、部署和扩展机器学习模型,利用 Google 的 ML 基础设施。" )
In [ ]
已复制!
embeddings[:10]
embeddings[:10]
Out [ ]
[0.011612358, 0.01030837, -0.04710829, -0.030719217, 0.027658276, -0.031597693, 0.012065322, -0.037609763, 0.02321099, 0.012868305]
调用 get_text_embedding_batch
¶
In [ ]
已复制!
embeddings = embed_model.get_text_embedding_batch(
[
"Vertex AI is a managed machine learning (ML) platform provided by Google Cloud. It allows data scientists and developers to build, deploy, and scale machine learning models efficiently, leveraging Google's ML infrastructure.",
"Vertex is integrated with llamaIndex",
]
)
embeddings = embed_model.get_text_embedding_batch( [ "Vertex AI 是 Google Cloud 提供的一个托管机器学习 (ML) 平台。它使数据科学家和开发人员能够有效地构建、部署和扩展机器学习模型,利用 Google 的 ML 基础设施。", "Vertex 已集成到 llamaIndex", ] )
In [ ]
已复制!
len(embeddings)
len(embeddings)
Out [ ]
2