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

Spring AI启动时调用OpenAI Embedding接口失败求助

问题分析与解决

错误原因

启动时自动发起OpenAI请求是因为PgVectorStore初始化过程中需要确定嵌入向量的维度,默认逻辑会调用EmbeddingClient.dimensions()方法,该方法会发送一个使用text-embedding-ada-002模型的测试请求(内容为Hello World)到OpenAI Embedding API。

报错java.net.HttpRetryException: cannot retry due to server authentication, in streaming mode的核心原因:

  • 认证请求失败后,流式模式下无法重试(OpenAI Embedding API默认采用流式响应,重试机制不支持该场景下的认证重试)
  • 可能伴随API密钥配置错误、网络代理拦截认证请求等问题。

解决方法

1. 手动指定嵌入向量维度(最直接有效)

在Spring Boot配置文件中添加配置,直接指定PgVectorStore的向量维度,避免初始化时调用OpenAI API:

# application.yml
spring:
  ai:
    vectorstore:
      pgvector:
        dimensions: 1536 # text-embedding-ada-002模型的固定维度为1536

或者properties格式:

# application.properties
spring.ai.vectorstore.pgvector.dimensions=1536

2. 验证API密钥配置

确认spring.ai.openai.api-key配置正确:

  • 密钥无拼写错误、未过期且权限充足
  • 配置在对应环境的配置文件中(避免环境配置混淆)

3. 调整重试策略(可选)

如果是重试机制导致的问题,可禁用或调整Spring AI的重试配置:

spring:
  ai:
    openai:
      embedding:
        retry:
          enabled: false

4. 升级Spring AI版本

当前使用的是0.8.0-SNAPSHOT快照版本,后续稳定版本可能优化了PgVectorStore初始化逻辑,避免启动时的强制API请求,可尝试升级至正式稳定版本。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 09:54:58