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

调用OpenAIEmbeddings的get_embeddings方法触发AttributeError错误求助

解决OpenAIEmbeddings的AttributeError问题:'get_embeddings'方法不存在

错误原因

OpenAIEmbeddings类并未提供get_embeddings方法,获取文本嵌入向量的正确方法为:

  • 处理单条查询文本:使用embed_query()方法
  • 处理多条文档文本:使用embed_documents()方法

修正后的完整代码

同时修复原代码中分割文本与原始Item索引不匹配的问题(原代码直接用split_texts的索引去取原始texts的元素会导致结果错误),推荐使用更清晰的索引映射方式:

import os
import pandas as pd
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import FAISS 

# 设置OpenAI API密钥
os.environ["OPENAI_API_KEY"] = "你的API密钥"

# 初始化嵌入模型
embedding = OpenAIEmbeddings()

# 加载Excel数据
df = pd.read_excel('sampledata.xlsx')

# 提取Item列文本
texts = df['Item'].tolist()

# 文本分割(若Item文本较短可省略此步骤)
text_splitter = CharacterTextSplitter.from_tiktoken_encoder(chunk_size=10, chunk_overlap=0)
split_texts = []
# 记录每个分割文本对应的原始Item,避免索引混乱
original_items = []
for item in texts:
    chunks = text_splitter.split_text(item)
    for chunk in chunks:
        split_texts.append(chunk)
        original_items.append(item)

# 创建FAISS向量库
vectordb = FAISS.from_texts(texts=split_texts, embedding=embedding)

# 查询处理
query = "Pen"
# 获取查询向量(单条文本用embed_query)
query_vector = embedding.embed_query(query)

# 搜索相似结果
top_k = 10
distances, indices = vectordb.search(query_vector, top_k)

# 打印结果(使用original_items匹配分割文本对应的原始Item)
for i in range(len(distances[0])):
    idx = indices[0][i]
    print(f"原始Item: {original_items[idx]}, 匹配文本块: {split_texts[idx]}, 距离: {distances[0][i]}")

额外优化建议

  1. 若Item列文本较短,可直接跳过文本分割步骤,避免索引匹配的麻烦。
  2. 创建向量库时可添加元数据,方便后续直接获取原始数据:
# 示例:添加原始Item作为元数据
from langchain.schema import Document
docs = [Document(page_content=item, metadata={"original_item": item}) for item in texts]
vectordb = FAISS.from_documents(documents=docs, embedding=embedding)

# 搜索时直接读取元数据
results = vectordb.similarity_search_with_score(query, k=top_k)
for doc, score in results:
    print(f"原始Item: {doc.metadata['original_item']}, 相似度分数: {score}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 00:13:29