一个关于调用阿里云百炼上大模型与apikey有关的坑bug
首先上来先说结论然后聊细节;
这个坑是关于apikey的,如果你在windows的系统环境变量中设置了百炼的apikey,然后由于某些原因更换apikey重新设置就一定要重启电脑,重启电脑之后才能让修改的apikey在系统环境变量中生效。
细节如下:
如果你使用java的springai来调用大模型的:你多半会在application.yml的配置文件中有类似的配置
server:
port: 8889
servlet:
encoding:
enabled: true
force: true
charset: utf-8
spring:
application:
name: ********
ai:
dashscope:
api-key: ${QWENAPIKEY}
base-url: https://dashscope.aliyuncs.com/compatible-mode/v1
上面的 api-key: ${QWENAPIKEY} 的意思是指从系统得到环境变量中获取你设置的百炼api-key,但是如果你的apikey失效了或者更换了在环境变量中进行了重新设置,又不重启电脑的话就会,idea就会一直使用旧的apikey,这会导致授权相关的错误。
我就被这个坑点浪费了,之前使用的时候一直正常,我担心apikey会泄露就在百炼上把apikey删除了,然后重新添加,把新的apikey更换到我windows的系统环境变量中去,但是这时噩梦就来了,由于没有重新启动电脑,我运行所有与调用百炼相关的服务接口都出现了 500服务内部错误,无法访问,尝试过重启idea编译器但是不起作用,让claude code给我写测试排查错误,他给出的的结论是授权相关的问题,我对比了我的apikey是正确的 。
这时就很恼火了,接下来我就用明文把apikey写到配置中去,然后在配置类去主动的再注入apikey
server:
port: 8889
servlet:
encoding:
enabled: true
force: true
charset: utf-8
spring:
application:
name: ********
ai:
dashscope:
api-key: sk-*********************************************
base-url: https://dashscope.aliyuncs.com/compatible-mode/v1
然后虽然也调通了,但是就是不明白之前的服务都能正常跑通为什么现在不行呢,于是采用了重启大法重启电脑之前没有显式的将apikey卸载代码中的也可以正常运行了。
这里就是一个教训,在设置更改环境变量的值之后尽量重新启动电脑,不然会出现各种各样的令人费解的错误,就像这次这样,之前可以运行的服务,之后就不能运行了。
更多推荐
所有评论(0)