使用LangChain调用Google Palm Embedding时遇404 NotFound错误求助
问题排查与解决方案
错误根源定位
错误提示指向GooglePalmEmbeddings的调用返回404,说明Google Palm嵌入服务已被弃用或模型不可用,和你推测的Gemini-1.5-pro LLM实例化无关,核心问题在嵌入层的工具类。
具体修复步骤
1. 替换嵌入模型实现
Google Palm相关嵌入服务已整合到Gemini生态,需将GooglePalmEmbeddings替换为GoogleGenerativeAIEmbeddings:
- 修改导入语句:
# 移除旧的导入 # from langchain_community.embeddings import GooglePalmEmbeddings # 添加新的导入 from langchain_google_genai import GoogleGenerativeAIEmbeddings - 替换嵌入实例化代码:
# 替换原有的embeddings实例化 embeddings = GoogleGenerativeAIEmbeddings( model="models/embedding-001", # Google官方推荐的Gemini嵌入模型 google_api_key=os.getenv('GOOGLE_API_KEY') )
2. 验证Gemini LLM模型配置
确保GoogleGenerativeAI的模型名称正确,且API Key拥有对应模型的访问权限:
llm = GoogleGenerativeAI(model="gemini-1.5-pro")
- 若仍有问题,可尝试降级为
gemini-pro(基础版)测试权限是否正常。
3. 升级LangChain依赖包
旧版本依赖可能不支持新的Gemini服务,执行以下命令升级:
pip install --upgrade langchain langchain-google-genai langchain-community
4. 优化代码冗余(可选)
你的代码中重复定义了generate_query和chain变量,可整理为:
# 移除第一次的generate_query和chain定义,只保留基于few_shot_prompt的版本 # 原代码中: # generate_query = create_sql_query_chain(llm, db) # ... # chain = (...) # 这些代码可以删除,只保留后续基于few_shot_prompt的链构建逻辑
验证修复
重新运行项目,若仍出现404错误,需检查:
- Google API Key是否有效,且已启用Generative AI API
- 网络环境是否能访问Google的API服务
内容的提问来源于stack exchange,提问作者Ikki
相关产品推荐
相关产品推荐

