SpringAI接入openAI配置出现的问题全解析
SpringAI接入openAI配置出现的四个问题全解析
- 1、无法下载openAI或SpringAI依赖包
- 1.1、思路就是从哪个源下载所需的依赖包
- 1.2、解决思路:我们可以看阿里的中央仓库是否有集成SpringAI的依赖,从它这里下也是可以的。我们看看阿里云云效maven地址,搜索 spring-ai-bom 选择对应版本即可,一定要记得看其他搭配SpringAI的组件依赖,例如openai,PgVector等 我这里使用的是1.0.0-M6
- 2、使用openAI报错余额不足
- 2.1、报错原因
- 2.2 解决思路:我们单纯只进行聊天则选择对应模型即可,那如果选择openAI可能会出现免费额度用完了调用不了,我们可以使用第三方的接口 只需要更换api地址即可其他配置不变。我现在用的是:OpenAI-Hub,有0.2的免费额度,足够自己测试使用了。您需要的情况下感谢使用我的邀请码,谢谢了!
- 3、配置openAI的embedding进行向量相似度的检索增强时会报错404地址
- 3.1 主要原因是官方的源码配置的路径地址只有接口地址即 embeddingsPath="/v1/embeddings"
- 3.2 解决 我们自己需要配置全路径才能访问到即
- 3.3、对应的源码默认配置可不用管:
- 4、openAI的向量维度和向量数据库的向量表维度类型不一致报错
- 4.1、原因是openAI的embedding的dimensions默认就是1536,三种embedding方式都是该维度,而我的PgVector向量数据库的维度是384。
- 4.2 解决思路:目前openAI的dimensions:1536更该也会报错,只能让我们的向量数据库的维度类型修改为1536来适配它才可。
1、无法下载openAI或SpringAI依赖包
1.1、思路就是从哪个源下载所需的依赖包
第一个是中央仓库来下载 这也是springAI文档官方推荐的,但有时它就是下载不下来怎么办?
我们一般默认配置的是阿里的中央仓库
1.2、解决思路:我们可以看阿里的中央仓库是否有集成SpringAI的依赖,从它这里下也是可以的。我们看看阿里云云效maven地址,搜索 spring-ai-bom 选择对应版本即可,一定要记得看其他搭配SpringAI的组件依赖,例如openai,PgVector等 我这里使用的是1.0.0-M6
https://maven.aliyun.com/mvn/search
<dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>1.0.0-M6</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${springboot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies>
<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-pgvector-store-spring-boot-starter</artifactId><version>1.0.0-M6</version></dependency><!-- <dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-ollama-spring-boot-starter</artifactId><version>1.0.0-M6</version></dependency>--><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-openai-spring-boot-starter</artifactId><version>1.0.0-M6</version></dependency>
2、使用openAI报错余额不足
2.1、报错原因
You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs
2.2 解决思路:我们单纯只进行聊天则选择对应模型即可,那如果选择openAI可能会出现免费额度用完了调用不了,我们可以使用第三方的接口 只需要更换api地址即可其他配置不变。我现在用的是:OpenAI-Hub,有0.2的免费额度,足够自己测试使用了。您需要的情况下感谢使用我的邀请码,谢谢了!
https://api.openai-hub.com/register?aff=yPcX
3、配置openAI的embedding进行向量相似度的检索增强时会报错404地址
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7ccd17a2] 2025-08-19T18:16:12.947+08:00 WARN 70580 --- [0.0-8000-exec-6]
o.s.a.a.r.SpringAiRetryAutoConfiguration :
Retry error. Retry count:1
org.springframework.ai.retry.NonTransientAiException: 404 -
atorg.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration$2.handleError(SpringAiRetryAutoConfiguration.java:100) ~[spring-ai-spring-boot-autoconfigure-1.0.0-M6.jar:1.0.0-M6] at
3.1 主要原因是官方的源码配置的路径地址只有接口地址即 embeddingsPath=“/v1/embeddings”
3.2 解决 我们自己需要配置全路径才能访问到即
embeddings-path: https://api.openai-hub.com/v1/embeddings
# 如果是openai直接使用这个 https://api.openai.com/v1/embeddings
openai:api-key: 自己的keybase-url: https://api.openai-hub.com # https://api.openai-hub.com https://api.openai.comchat:options:model: gpt-4o-mini # 模型名,例如 gpt-4o, gpt-4o-mini, gpt-3.5-turbotemperature: 1.2 #0 ~ 2 创作的随机性 如果是小说类则越大越好 如果是数学运算则是越小越好 一般设置0 0.7 1.2max-tokens: 1024 #限制模型输出的最大token数量,1个token大概是0.75个英文单词 或几个中文 大概是七八百字embedding:enabled: true # 启用嵌入功能options:model: text-embedding-ada-002 # text-embedding-ada-002 text-embedding-3-small text-embedding-3-large(更精)dimensions: 1536embeddings-path: https://api.openai-hub.com/v1/embeddings # https://api.openai-hub.com https://api.openai.com/v1/embeddings
3.3、对应的源码默认配置可不用管:
4、openAI的向量维度和向量数据库的向量表维度类型不一致报错
This model does not support specifying dimensions. (request id: 2025081919572123296323KwxnhkI)
org.springframework.ai.retry.NonTransientAiException: 400 - {"error":{"message":"This model does not support specifying dimensions. (request id: 2025081919572123296323KwxnhkI)","type":"invalid_request_error"}}at org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration$2.handleError(SpringAiRetryAutoConfiguration.java:100) ~[spring-ai-spring-boot-autoconfigure-1.0.0-M6.jar:1.0.0-M6]
4.1、原因是openAI的embedding的dimensions默认就是1536,三种embedding方式都是该维度,而我的PgVector向量数据库的维度是384。
4.2 解决思路:目前openAI的dimensions:1536更该也会报错,只能让我们的向量数据库的维度类型修改为1536来适配它才可。
ALTER TABLE vector_storeALTER COLUMN embedding TYPE vector(1536);