根据官网的文档,可以在api请求千问大模型的时候设置输出格式,在调用时,设置response_format为{"type": "json_object"},并通过系统消息或用户消息指引模型输出JSON格式即可。
结构化输出功能支持qwen-max-0919、qwen-max-latest、qwen-plus、qwen-plus-0919、qwen-plus-latest、qwen-turbo、qwen-turbo-0919、qwen-turbo-latest模型。

api调用代码示例,我们以php为例
点击查看示例代码
<?php
//适合兼容chatgpt接口的所有流式stream输出的大模型接口,例如千问
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$messages = [["role" => "system",
"content" => "你是一个AI助手chatai,返回json格式{message:data}"]];
$messages[] = ["role" => "user",
"content" => "你好"];
$_postobj = array("model" => "qwen-plus",
"messages" => $messages,
"max_tokens" => 100,
"temperature" => 1,
// "top_p" => 1,
"n" => 1,
"stream" => false,
"response_format"=>["type"=>"json_object"]
//"stream_options"=>["include_usage"=> true]
);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($_postobj, JSON_UNESCAPED_UNICODE));
$certificate = "/data/wwwroot/default/asset/cacert.pem";
curl_setopt($ch, CURLOPT_CAINFO, $certificate);
curl_setopt($ch, CURLOPT_CAPATH, $certificate);
// curl_setopt($ch, CURLOPT_SSLVERSION, 3);
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, 1);
// Set the API key as an HTTP header
$headers = array();
$headers[] = "Content-Type: application/json";
$headers[] = "Authorization: Bearer apikey";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// 处理获得的数据
// Send the request and parse the response
$response = curl_exec($ch);
$response_data = json_decode($response, true);
//echo $response."/n";
if (curl_errno($ch)) {
// If there was an error executing the cURL request, print it out
//echo 'Error: ' . curl_error($ch);
echo curl_error($ch);
curl_close($ch);
} else {
// // Otherwise, print the response from the GPT-3 API
// curl_close($ch);
// // var_dump($response_data);
echo $response_data['choices'][0]['message']['content'];
// var_dump($response_data) ;
}
https://help.aliyun.com/zh/dashscope/developer-reference/qwen-api
网友回复


