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

使用OpenAI Embeddings遇ValidationError问题求助

解决OpenAI Embeddings调用的ValidationError问题

错误原因分析

  1. 第一个代码错误:model_name参数已被LangChain新版本弃用,当前OpenAIEmbeddings类使用model参数指定模型,传入model_name会触发「额外字段不允许」的验证错误。
  2. 第二个代码错误:导入路径错误,openai_embed并非官方包,正确的导入路径需从LangChain的对应模块获取。

正确解决方案

情况1:使用旧版LangChain(v0.1之前)

保持原导入路径,将model_name替换为model:

import openai
from langchain.embeddings.openai import OpenAIEmbeddings

# 可通过环境变量设置API密钥,或直接传入openai_api_key参数
embeddings = OpenAIEmbeddings(model="ada")

query_result = embeddings.embed_query("Hello world")
print(len(query_result))

情况2:使用新版LangChain(v0.1及之后)

LangChain已拆分出独立的langchain-openai包,需先安装:

pip install langchain-openai

然后使用新的导入路径:

import os
from langchain_openai import OpenAIEmbeddings

os.environ["OPENAI_API_KEY"] = "<你的API密钥>"
embeddings = OpenAIEmbeddings(model="text-embedding-ada-002")  # 推荐使用完整模型名,ada是别名

query_result = embeddings.embed_query("Hello world")
print(len(query_result))

额外注意事项

  • 确保API密钥有效,且账户拥有对应模型的调用权限。
  • 若使用环境变量设置密钥,无需在代码中重复传入openai_api_key参数,LangChain会自动读取。

内容的提问来源于stack exchange,提问作者6080_ Atharva_Kulkarni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 23:02:11