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

如何为AzureOpenAIEmbeddings传递配置并解决创建嵌入模型报错

问题解决建议

错误1:values参数无效

AzureOpenAIEmbeddings类不支持values参数,直接传递该参数会触发Embeddings.create()的参数错误。解决方式是直接传递配置中的有效参数,或展开符合类定义的参数字典。

错误2:model_kwargs类型错误

model_kwargs要求为字典类型(用于传递给OpenAI API的额外参数),你将其设为空字符串"",导致代码尝试调用keys()方法时失败。

正确实现步骤

  1. 清理无效参数:generation_max_tokens是聊天/生成模型的参数,嵌入模型不需要,从配置中移除该字段。
  2. 修正model_kwargs类型:如果不需要额外API参数,将其设为空字典{}或None。
  3. 正确初始化嵌入模型:使用专门的嵌入模型(而非聊天模型),并传递有效参数。

修正后的代码示例

from langchain_openai import AzureOpenAIEmbeddings

# 修正后的模型配置
model_config = {
    "allowed_special": "",
    "chunk_size": 50,
    "disallowed_special": "all",
    "embedding_ctx_length": 8191,
    "model_kwargs": {}  # 改为空字典,或设为None
}

embeddings_model = AzureOpenAIEmbeddings(
    deployment="<deployment_name>",
    model="text-embedding-ada-002",  # 嵌入任务需使用专门的嵌入模型,而非gpt-35-turbo
    openai_api_type="azure",
    **model_config
)

额外注意点

  • 不要用聊天模型(如gpt_35_turbo)执行嵌入任务,Azure OpenAI嵌入需使用专属嵌入模型(例如text-embedding-ada-002),否则会导致API调用失败。
  • 确认deployment参数对应你的Azure OpenAI部署中嵌入模型的部署名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 03:25:53