更新时间:2023-11-21 GMT+08:00
分享

搜索数据示例

本章节对搜索数据AK/SK方式使用SDK进行示例说明。

搜索示例代码只需将AK/SK信息替换为实际AK/SK,代码中可以使用初始化SearchParam中的image_url、search_type、custom_tags、keywords、optional_params配置服务的输入参数,其中optionl_params为服务可选输入参数,配置完成后运行即可。

  1. 搜索数据调用示例代码如下:
    # coding: utf-8
     
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdkcore.region.region import Region as coreRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdkimagesearch.v2 import *
     
    if __name__ == "__main__":
        # 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;
        # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。
        ak = os.getenv("HUAWEICLOUD_SDK_AK")
        sk = os.getenv("HUAWEICLOUD_SDK_SK")
        iamEndpoint = "https://iam.cn-north-4.myhuaweicloud.com"
        endpoint = "https://mms.cn-north-4.myhuaweicloud.com"
        projectId = "project_id"
     
        credentials = BasicCredentials(ak, sk, projectId) \
                .with_iam_endpoint(iamEndpoint)
     
        # 初始化客户端
        client = ImageSearchClient.new_builder() \
            .with_credentials(credentials) \
            # 设置region, 示例中为北京四
            .with_region(coreRegion(id="cn-north-4", endpoint=endpoint)) \
            .build()
     
        try:
            request = RunSearchRequest()
            request.service_name = "service_name"
            optionalParamsbody = SearchOptionalParam(
                do_det=True,
                box="135,489,1117,1341",
                do_cls=True
            )
            listCustomTagsCustomTags = [
                "value1",
                "value2",
                "value3"
            ]
            listCustomTagsbody = {
                "key": listCustomTagsCustomTags
            }
            request.body = SearchParam(
                optional_params=optionalParamsbody,
                # 替换为公网可以访问的图片地址
                image_url="https://bucketname.obs.cn-north-4.myhuaweicloud.com/image/test1.jpg
    ",
                custom_tags=listCustomTagsbody,
                offset=0,
                limit=30,
                search_type="CATEGORY"
            )
            response = client.run_search(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
  2. 执行示例代码文件,控制台输出搜索数据结果即表示程序执行成功。
    {
        "result": "success",
        "data": {
            "items": [
                {
                    "id": "item_id",
                    "score": 1.0,
                    "source": {
                        "custom_tags": {
                            "key": "value"
                        }
                    }
                }
            ],
            "search_info": {
                "total_num": 1,
                "return_num": 1,
                "search_time": 969
            },
            "image_info": {
                "box": "135,489,1117,1341",
                "category": 0,
                "category_name": "others",
                "objects": [
                    {
                        "box": "135,489,1117,1341",
                        "category": 0,
                        "category_name": "others"
                    }
                ]
            }
        }
    }

相关文档