使用Langchain将Blob文件导入Pinecone时出现'str'对象赋值错误
问题排查:调用Pinecone.from_texts时抛出'str' object does not support item assignment错误
常见原因及解决方法
元数据参数类型错误
Pinecone.from_texts的metadatas参数要求是字典组成的列表,每条文本对应一个元数据字典。如果误传单个字符串(比如直接传文件名而非[{"filename": "xxx"}]),内部逻辑会尝试对字符串执行字典式赋值操作,触发该错误。
解决:确保metadatas是列表包裹的字典结构,单条数据也要保持格式:metadatas = [{"source": "你的Blob文件名"}]文本参数格式异常
即便loader.load返回的Document结构正常,若后续处理中错误将单个Document的page_content字符串直接传入,而非字符串列表,也会导致参数类型不匹配。
解决:从Document列表中提取文本组成字符串列表:docs = loader.load() texts = [doc.page_content for doc in docs]依赖版本兼容问题
旧版的langchain-pinecone或pinecone-client可能存在参数处理逻辑bug,导致对输入类型的校验出错。
解决:升级依赖包:pip install --upgrade langchain-pinecone pinecone-client索引/命名空间参数类型错误
初始化Pinecone向量存储时,若index_name或namespace参数被误传为字典类型,内部处理时会尝试修改该参数的属性,引发字符串赋值错误。
解决:确保这两个参数为字符串类型:pinecone_index = Pinecone.from_texts( texts=texts, embedding=你的嵌入模型, index_name="你的索引名称", namespace="可选命名空间" )
内容的提问来源于stack exchange,提问作者Luis Valencia
相关产品推荐
相关产品推荐

