You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用LangChain_AWS调用BedrockEmbeddings返回None值问题

问题

使用langchain_aws的BedrockEmbeddings处理文本嵌入时,调用embed_documents后得到包含None值的列表。

相关代码:

from langchain_community.llms.bedrock import Bedrock 
from langchain_aws import BedrockEmbeddings
import boto3

# Initialize the Bedrock client
bedrock_client = boto3.client(service_name='bedrock-runtime')

# Initialize Bedrock Embeddings
bedrock_embeddings = BedrockEmbeddings(
    model_id="amazon.titan-text-express-v1",
    credentials_profile_name="default",
    client=bedrock_client,
    region_name="ap-south-1"
)

embed_data=bedrock_embeddings.embed_documents(["This is a content of the document", "This is another document"])

print(embed_data)

输出结果:

[None, None]
解决方案
  • 核心问题:模型类型不匹配
    你指定的amazon.titan-text-express-v1是大语言模型(用于文本生成),并非专门的嵌入模型,BedrockEmbeddings只能使用嵌入类模型来生成向量。

  • 替换为正确的嵌入模型ID
    选择Bedrock支持的嵌入模型,例如:

    • amazon.titan-embed-text-v1:通用文本嵌入模型,适合大多数文本向量生成场景
    • amazon.titan-embed-image-v1:多模态嵌入模型,支持文本和图片输入
  • 修正后的代码示例

from langchain_aws import BedrockEmbeddings
import boto3

# 初始化Bedrock客户端时指定区域,避免配置冲突
bedrock_client = boto3.client(service_name='bedrock-runtime', region_name="ap-south-1")

bedrock_embeddings = BedrockEmbeddings(
    model_id="amazon.titan-embed-text-v1",
    credentials_profile_name="default",
    client=bedrock_client,
    region_name="ap-south-1"
)

embed_data = bedrock_embeddings.embed_documents(["This is a content of the document", "This is another document"])

print(embed_data)
  • 额外检查项
    • 确认AWS凭证(default配置文件)拥有Bedrock服务的调用权限,以及所选嵌入模型的访问权限
    • 验证ap-south-1区域是否支持你选择的嵌入模型,部分模型可能仅在特定AWS区域提供服务

内容的提问来源于stack exchange,提问作者Md Tausif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 04:03:11