1, 'msg' => '腾讯云账号参数不能为空']; } self::$credential = new Credential($setting['secretId'], $setting['secretKey']); self::$client = new TiiaClient(self::$credential, $setting['region']); } /** * 创建图像库 * @param $GroupId * @param $GroupName * @param $MaxCapacity * @return array * User: hankaige * DATE TIME: 2023/1/12 14:13 */ public static function createGroup($GroupId, $GroupName, $MaxCapacity) { try { $request = new CreateGroupRequest(); // 请求需要的参数 $request->deserialize([ 'GroupId' => $GroupId, 'GroupType' => self::$groupType, 'GroupName' => $GroupName, 'MaxCapacity' => $MaxCapacity ]); $req = self::$client->CreateGroup($request); return [ 'code' => 0, 'data' => json_decode($req->toJsonString(), true), ]; } catch (\Exception $e) { return [ 'code' => 1, 'msg' => $e->getMessage(), ]; } } /** * 获取已创建的图像库 * @param $GroupId * @return array * User: hankaige * DATE TIME: 2023/1/12 14:13 */ public static function describeGroup($GroupId) { try { $request = new DescribeGroupsRequest(); // 请求需要的参数 $request->deserialize([ 'GroupId' => $GroupId ]); $req = self::$client->DescribeGroups($request); return [ 'code' => 0, 'data' => json_decode($req->toJsonString(), true), ]; } catch (\Exception $e) { return [ 'code' => 1, 'msg' => $e->getMessage(), ]; } } /** * 上传图片 * @param $GroupId 图库ID * @param $EntityId 物品ID,最多支持64个字符。一个物品ID可以包含多张图片,若EntityId已存在,则对其追加图片。同一个EntityId,最大支持10张图。 * @param $PicName 图片名称,最多支持64个字符,PicName唯一确定一张图片,具有唯一性 * @param $ImageUrl * @return array * User: hankaige * DATE TIME: 2023/1/12 14:16 */ public static function createImage($GroupId, $EntityId, $PicName, $ImageUrl) { try { $request = new CreateImageRequest(); // 请求需要的参数 $request->deserialize([ 'GroupId' => $GroupId, 'EntityId' => $EntityId, 'PicName' => $PicName, 'ImageUrl' => $ImageUrl, 'EnableDetect' => true ]); $req = self::$client->CreateImage($request); \Yii::error(json_encode($req)); return [ 'code' => 0, 'data' => json_decode($req->toJsonString(), true), ]; } catch (\Exception $e) { return [ 'code' => 1, 'msg' => $e->getMessage(), ]; } } /** * 删除图库图片 * @param $GroupId * @param $EntityId * @param $PicName * @return array * User: hankaige * DATE TIME: 2023/1/12 14:20 */ public static function deleteImages($GroupId,$EntityId,$PicName = ''){ try { $request = new DeleteImagesRequest(); // 请求需要的参数 $request->deserialize([ 'GroupId' => $GroupId, 'EntityId' => (string)$EntityId, 'PicName' => $PicName, ]); $req = self::$client->DeleteImages($request); return [ 'code' => 0, 'data' => json_decode($req->toJsonString(), true), ]; } catch (\Exception $e) { return [ 'code' => 1, 'msg' => $e->getMessage(), ]; } } /** * 搜索相似图片 * @param $GroupId 图库ID * @param $ImageUrl 要搜索的图片链接 * @param $Limit 返回数量 默认20 * @param $MatchThreshold 相似度阙值 默认50 只返回相似度50以上的图片 * @return array * User: hankaige * DATE TIME: 2023/1/12 14:23 */ public static function searchImage($GroupId,$Image,$Limit = 20,$MatchThreshold = 50){ try { $request = new SearchImageRequest(); // 请求需要的参数 $request->deserialize([ 'GroupId' => $GroupId, 'ImageBase64' => $Image, 'Limit' => $Limit, 'MatchThreshold' =>$MatchThreshold ]); $req = self::$client->SearchImage($request); return [ 'code' => 0, 'data' => json_decode($req->toJsonString(), true), ]; } catch (\Exception $e) { return [ 'code' => 1, 'msg' => $e->getMessage(), ]; } } }