diff --git a/examples/cls/v20201016/ChatCompletions.php b/examples/cls/v20201016/ChatCompletions.php new file mode 100644 index 0000000000..303d09dc23 --- /dev/null +++ b/examples/cls/v20201016/ChatCompletions.php @@ -0,0 +1,120 @@ +setReqMethod("POST"); // post请求(默认为post请求) + $httpProfile->setReqTimeout(300); // 流式接口可能耗时较长,因此将请求超时时间设置为 300 秒 + // 通过SSE流式调用此接口时,请务必设置请求域名(Endpoint)为 cls.ai.tencentcloudapi.com + $httpProfile->setEndpoint("cls.ai.tencentcloudapi.com"); + + // 实例化一个client选项,可选的,没有特殊需求可以跳过 + $clientProfile = new ClientProfile(); + $clientProfile->setSignMethod("TC3-HMAC-SHA256"); // 指定签名算法(默认为HmacSHA256) + $clientProfile->setHttpProfile($httpProfile); + + // 实例化要请求产品的client对象,clientProfile是可选的 + $client = new ClsClient($cred, "ap-guangzhou", $clientProfile); + + // 构造请求参数 + $req = new ChatCompletionsRequest(); + // 指定要使用的功能,例如 "text2sql" + $req->Model = "text2sql"; + + // 设置对话消息,角色为 "user",内容为用户的提问 + $message = new Message(); + $message->Role = "user"; + $message->Content = "状态码200, 统计日志条数"; + $req->Messages = [$message]; + + // 设置元数据,传递日志主题地域和日志主题 ID + $metaRegion = new MetadataItem(); + $metaRegion->Key = "topic_region"; + $metaRegion->Value = "ap-guangzhou"; + + $metaTopicId = new MetadataItem(); + $metaTopicId->Key = "topic_id"; + $metaTopicId->Value = "xxxxxxxx-xxxx"; + + $req->Metadata = [$metaRegion, $metaTopicId]; + + + // 3. 流式调用 + // CLS ChatCompletions 同时支持流式和非流式两种模式。 + // 将 Stream 参数设置为 true,表示以流式方式获取响应。 + $req->Stream = true; + // 如果响应是SSE-event流,可以设置回调函数逐个处理事件流,否则一次返回所有响应内容 + $client->setSseResponseCallbackFunc('streamProcessResult'); + $client->ChatCompletions($req); + echo PHP_EOL; + echo '[流式] 完成,开始非流式调用...' . PHP_EOL; + + // 4. 非流式调用 + // 通过 Stream=false 参数来指定非 stream 协议,一次性拿到结果。 + $client->setSseResponseCallbackFunc(null); + $req->Stream = false; + $resp = $client->ChatCompletions($req); + if (!empty($resp->Choices[0]->Message->ReasoningContent)) { + echo "思考过程:" . $resp->Choices[0]->Message->ReasoningContent . PHP_EOL; + } + echo "[非流式] 回复内容:" . PHP_EOL . $resp->Choices[0]->Message->Content . PHP_EOL; + +} catch (TencentCloudSDKException $e) { + echo $e; +}