起因:
申请完api key后想快速测试一下该key是否生效。后面无论在cmd命令提示符还是linux下通过curl命令发送post请求后都会报错。检查了很多遍,最后终于:
报错:
报错信息:
{"error":{"message":"Incorrect API key provided. ","type":"invalid_request_error","param":null,"code":"invalid_api_key"},"request_id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}
注意此时的根域名是不对的,也不是不对,申请国内的key得向国内的域名发请求:
1. windows
2. linux
原因:
先说我的原因吧:api key确实没问题,是根路径写错了。😭
md点到阿里云国际版去了。。。我真是醉了。。。两个调用api的域名不一样。。。用在国内申请的api key去国际的根域名下请求当然会提示api key无效了。(不过大家不科学上网一般也点不到海外版去,权当遇到就记录一下吧)
xdm注意:
阿里云国际版地址英文结构域名是:www.alibabacloud.com
而国内版是拼音结构域名:www.aliyun.com两个文档里说明的调用方式略有不同。
这是国际版的:
文档地址:https://www.alibabacloud.com/help/zh/model-studio/user-guide/first-api-call-to-qwen
注意哈 intl / INTL 是 international 的缩写,表示“国际”。怪我不注意。。。
没截全,再补一张:
这是国内的:
文档地址:https://help.aliyun.com/zh/model-studio/user-guide/first-api-call-to-qwen
正确的API请求示例(OpenAI兼容形式):
1. windows
curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions -H "Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -H "Content-Type: application/json" -d "{\"model\": \"qwen-plus\", \"messages\": [{\"role\": \"system\", \"content\": \"You are a helpful assistant.\"}, {\"role\": \"user\", \"content\": \"你是谁?\"}]}"
curl -X POST "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions" ^
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ^
-H "Content-Type: application/json" ^
-d "{ \"model\": \"qwen-plus\", \"messages\": [ { \"role\": \"system\", \"content\": \"You are a helpful assistant.\" }, { \"role\": \"user\", \"content\": \"你是谁?\" } ] }"
ps:在CMD里换行格式有点问题,所以这里写到一行了。
2. linux
curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-plus",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "你是谁?"
}
]
}'
后记:
还有一个比较🐕的点,这个dashscope到底是什么?这是阿里去年搞的模型服务灵积平台。没用过的朋友肯定很懵,这个灵积和百炼有啥区别嘞?
别纠结有啥区别了,灵积已于2024年9月起升级合并到百炼,升级后,灵积的功能和用户数据将自动合并到百炼,用户可以继续使用原有的功能并试用更多百炼提供的大模型服务。
这个dashscope貌似和openai一样,不仅指一个公司一个产品,还可以说是一种标准,因为openai起步早,所以他搞的东西慢慢成为一种标准了,后面的各家厂商基本都提供兼容openai的api调用形式。【这里说的可能不准确,博主是菜鸟还在研究,如果有理解不对的请大佬指正🙏】
dashscope 方式调用支持百炼所有的文本生成模型,而 LlamIndex 的 OpenAI-like 封装可以用于调用百炼支持 OpenAI 兼容的大模型。
DashScopeLLM_大模型服务平台百炼(Model Studio)-阿里云帮助中心
帮助文档:https://help.aliyun.com/zh/model-studio/model-user-guide/