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

未使用OpenAIEmbeddings却出现Langchain弃用警告的排查求助

解决Langchain未直接调用OpenAIEmbeddings却触发弃用警告的问题

问题说明

使用Langchain实现Figma文件处理的Python代码中,未直接调用OpenAIEmbeddings类,但仍收到Langchain弃用警告,提示langchain_community.embeddings.openai.OpenAIEmbeddings已在langchain-community 0.0.9版本弃用,将在0.2.0版本移除,需安装langchain-openai包并从该包导入对应类。按提示执行操作后问题仍存在。

警告信息

C:\Users\ADMIN\AppData\Local\Programs\Python\Python311\Lib\site-packages\langchain_core_api\deprecation.py:117: LangChainDeprecationWarning: The class langchain_community.embeddings.openai.OpenAIEmbeddings was deprecated in langchain-community 0.0.9 and will be removed in 0.2.0. An updated version of the class exists in the langchain-openai package and should be used instead. To use it run pip install -U langchain-openai and import as from langchain_openai import OpenAIEmbeddings.
warn_deprecated(

原代码

import os
from langchain.indexes.vectorstore import VectorstoreIndexCreator
from langchain_core.prompts import SystemMessagePromptTemplate, HumanMessagePromptTemplate, ChatPromptTemplate
from langchain_community.document_loaders.figma import FigmaFileLoader
from langchain_openai import ChatOpenAI

os.environ["OPENAI_API_KEY"] ='api key'
figma_loader = FigmaFileLoader(
    access_token="Token",
    ids="0-1",
    key=key,
)
index = VectorstoreIndexCreator().from_loaders([figma_loader])
figma_doc_retriever = index.vectorstore.as_retriever()

# I have no idea if the Jon Carmack thing makes for better code. YMMV.
system_prompt_template = """ You are expert Jon Carmack. 
It should also include the functionality of the design.
Everything must be as a List.
Figma file nodes and metadata: {context} """
human_prompt_template = "Code the {text}. Ensure it's mobile responsive"
system_message_prompt = SystemMessagePromptTemplate.from_template(
    system_prompt_template
)
human_message_prompt = HumanMessagePromptTemplate.from_template(
    human_prompt_template
)

human_input='Give me a list of test cases for the current webpage'
gpt_4 = ChatOpenAI(api_key='api key',temperature=0.02, model_name="gpt-4")
relevant_nodes = figma_doc_retriever.get_relevant_documents(human_input)
conversation = [system_message_prompt, human_message_prompt]
chat_prompt = ChatPromptTemplate.from_messages(conversation)
response = gpt_4.invoke(
    chat_prompt.format_prompt(
        context=relevant_nodes, text=human_input
    ).to_messages()
)
print(response.content)

解决方案

原因分析

VectorstoreIndexCreator默认会使用langchain_community.embeddings.openai.OpenAIEmbeddings创建向量索引,即使代码中没有显式调用该类,内部逻辑仍会自动引用,因此触发了弃用警告。

解决步骤

  1. 确保安装最新版langchain-openai包:
pip install -U langchain-openai
  1. 在代码中导入langchain_openai.OpenAIEmbeddings
  2. 创建VectorstoreIndexCreator时,显式指定embedding参数为OpenAIEmbeddings实例,覆盖默认实现

修改后的代码

import os
from langchain.indexes.vectorstore import VectorstoreIndexCreator
from langchain_core.prompts import SystemMessagePromptTemplate, HumanMessagePromptTemplate, ChatPromptTemplate
from langchain_community.document_loaders.figma import FigmaFileLoader
from langchain_openai import ChatOpenAI, OpenAIEmbeddings  # 新增导入

os.environ["OPENAI_API_KEY"] ='api key'
figma_loader = FigmaFileLoader(
    access_token="Token",
    ids="0-1",
    key=key,
)
# 显式指定embedding参数,使用langchain-openai中的类
index = VectorstoreIndexCreator(embedding=OpenAIEmbeddings()).from_loaders([figma_loader])
figma_doc_retriever = index.vectorstore.as_retriever()

# I have no idea if the Jon Carmack thing makes for better code. YMMV.
system_prompt_template = """ You are expert Jon Carmack. 
It should also include the functionality of the design.
Everything must be as a List.
Figma file nodes and metadata: {context} """
human_prompt_template = "Code the {text}. Ensure it's mobile responsive"
system_message_prompt = SystemMessagePromptTemplate.from_template(
    system_prompt_template
)
human_message_prompt = HumanMessagePromptTemplate.from_template(
    human_prompt_template
)

human_input='Give me a list of test cases for the current webpage'
gpt_4 = ChatOpenAI(api_key='api key',temperature=0.02, model_name="gpt-4")
relevant_nodes = figma_doc_retriever.get_relevant_documents(human_input)
conversation = [system_message_prompt, human_message_prompt]
chat_prompt = ChatPromptTemplate.from_messages(conversation)
response = gpt_4.invoke(
    chat_prompt.format_prompt(
        context=relevant_nodes, text=human_input
    ).to_messages()
)
print(response.content)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 18:17:08