文档

自定义文本库

本文介绍了如何使用PHP SDK管理自定义文本库,以满足文本反垃圾检测场景的个性化需求。

功能描述

根据文本类型的不同,文本库分为关键词文本库和相似文本库;根据管控目的不同,文本库分为白名单、黑名单、疑似名单。关于参数的详细信息,请参见自定义文本库API文档

您需要使用内容安全的API接入地址,调用本SDK接口。关于API接入地址的信息,请参见接入地址(Endpoint)

前提条件

已安装PHP依赖。关于安装PHP依赖的具体操作,请参见安装PHP依赖

说明

请一定按照安装PHP依赖页面中的版本安装,否则会导致调用失败。

查询文本库列表

  • 查询关键词文本库列表

    <?php
    
    use AlibabaCloud\Client\AlibabaCloud;
    use AlibabaCloud\Client\Exception\ClientException;
    use AlibabaCloud\Client\Exception\ServerException;
    use AlibabaCloud\Green\Green;
    
    try {
        /**
         * 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
         * 常见获取环境变量方式:
         * 获取RAM用户AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
         * 获取RAM用户AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
         */
        AlibabaCloud::accessKeyClient('建议从环境变量中获取RAM用户AccessKey ID', '建议从环境变量中获取RAM用户AccessKey Secret')
            ->timeout(10) // 超时10秒,使用该客户端且没有单独设置的请求都使用此设置
            ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,使用该客户端且没有单独设置的请求都使用此设置
            ->regionId('cn-shanghai')
            ->asDefaultClient();
    
        $response = Green::v20170823()->describeKeywordLib()
            ->timeout(10) // 超时10秒,request超时设置,仅对当前请求有效
            ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,request超时设置,仅对当前请求有效
            ->withServiceModule('open_api')
            ->request();
        print_r($response);
        $allLibs = $response->KeywordLibList;
        $textAntispamKeywordLibs = array();
        foreach ($allLibs as $keywordLib) {
            $libType = $keywordLib->LibType;
            $resourceType = $keywordLib->ResourceType;
            $source = $keywordLib->Source;
            # 查询自定义的关键词文本库。
            if ("textKeyword" == $libType and "TEXT" == $resourceType and "MANUAL" == $source) {
                array_push($textAntispamKeywordLibs, $keywordLib);
            }
            # 查询回流的关键词文本库。
            if ("textKeyword" == $libType and "TEXT" == $resourceType and "FEEDBACK" == $source) {
                array_push($textAntispamKeywordLibs, $keywordLib);
            }
        }
        print_r($textAntispamKeywordLibs);
    } catch (ClientException $exception) {
        echo $exception->getMessage() . PHP_EOL;
    } catch (ServerException $exception) {
        echo $exception->getMessage() . PHP_EOL;
        echo $exception->getErrorCode() . PHP_EOL;
        echo $exception->getRequestId() . PHP_EOL;
        echo $exception->getErrorMessage() . PHP_EOL;
    }
  • 查询相似文本库列表(包含自定义和系统回流的相似文本库)

    <?php
    
    use AlibabaCloud\Client\AlibabaCloud;
    use AlibabaCloud\Client\Exception\ClientException;
    use AlibabaCloud\Client\Exception\ServerException;
    use AlibabaCloud\Green\Green;
    
    try {
        /**
         * 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
         * 常见获取环境变量方式:
         * 获取RAM用户AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
         * 获取RAM用户AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
         */
        AlibabaCloud::accessKeyClient('建议从环境变量中获取RAM用户AccessKey ID', '建议从环境变量中获取RAM用户AccessKey Secret')
            ->timeout(10) // 超时10秒,使用该客户端且没有单独设置的请求都使用此设置
            ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,使用该客户端且没有单独设置的请求都使用此设置
            ->regionId('cn-shanghai')
            ->asDefaultClient();
    
        $response = Green::v20170823()->describeKeywordLib()
            ->timeout(10) // 超时10秒,request超时设置,仅对当前请求有效
            ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,request超时设置,仅对当前请求有效
            ->withServiceModule('open_api')
            ->request();
        print_r($response->toArray());
        $allLibs = $response->KeywordLibList;
        $similarTextLibs = array();
        foreach ($allLibs as $keywordLib) {
            $libType = $keywordLib->LibType;
            $resourceType = $keywordLib->ResourceType;
            $source = $keywordLib->Source;
            # 获取文本反垃圾自定义的关键词文本库。
            if ('similarText' == $libType and 'TEXT' == $resourceType and 'MANUAL' == $source) {
                array_push($similarTextLibs, $keywordLib);
            }
            # 获取文本反垃圾回流的关键词文本库。
            if ('similarText' == $libType and 'TEXT' == $resourceType and 'FEEDBACK' == $source) {
                array_push($similarTextLibs, $keywordLib);
            }
        }
        print_r($similarTextLibs);
    } catch (ClientException $exception) {
        echo $exception->getMessage() . PHP_EOL;
    } catch (ServerException $exception) {
        echo $exception->getMessage() . PHP_EOL;
        echo $exception->getErrorCode() . PHP_EOL;
        echo $exception->getRequestId() . PHP_EOL;
        echo $exception->getErrorMessage() . PHP_EOL;
    }

创建文本库

  • 创建关键词文本库

    <?php
    
    use AlibabaCloud\Client\AlibabaCloud;
    use AlibabaCloud\Client\Exception\ClientException;
    use AlibabaCloud\Client\Exception\ServerException;
    use AlibabaCloud\Green\Green;
    
    try {
        /**
         * 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
         * 常见获取环境变量方式:
         * 获取RAM用户AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
         * 获取RAM用户AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
         */
        AlibabaCloud::accessKeyClient('建议从环境变量中获取RAM用户AccessKey ID', '建议从环境变量中获取RAM用户AccessKey Secret')
            ->timeout(10) // 超时10秒,使用该客户端且没有单独设置的请求都使用此设置
            ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,使用该客户端且没有单独设置的请求都使用此设置
            ->regionId('cn-shanghai')
            ->asDefaultClient();
    
        $response = Green::v20170823()->createKeywordLib()
            ->timeout(10) // 超时10秒,request超时设置,仅对当前请求有效
            ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,request超时设置,仅对当前请求有效
            ->withServiceModule('open_api')
            ->withName('自定义的关键词文本库')
            ->withResourceType('TEXT')
            ->withLibType('textKeyword')
            ->withCategory('BLACK')
            ->request();
        print_r($response->toArray());
    } catch (ClientException $exception) {
        echo $exception->getMessage() . PHP_EOL;
    } catch (ServerException $exception) {
        echo $exception->getMessage() . PHP_EOL;
        echo $exception->getErrorCode() . PHP_EOL;
        echo $exception->getRequestId() . PHP_EOL;
        echo $exception->getErrorMessage() . PHP_EOL;
    }
  • 创建相似文本库

    <?php
    
    use AlibabaCloud\Client\AlibabaCloud;
    use AlibabaCloud\Client\Exception\ClientException;
    use AlibabaCloud\Client\Exception\ServerException;
    use AlibabaCloud\Green\Green;
    
    try {
        /**
         * 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
         * 常见获取环境变量方式:
         * 获取RAM用户AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
         * 获取RAM用户AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
         */
        AlibabaCloud::accessKeyClient('建议从环境变量中获取RAM用户AccessKey ID', '建议从环境变量中获取RAM用户AccessKey Secret')
            ->timeout(10) // 超时10秒,使用该客户端且没有单独设置的请求都使用此设置
            ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,使用该客户端且没有单独设置的请求都使用此设置
            ->regionId('cn-shanghai')
            ->asDefaultClient();
    
        $response = Green::v20170823()->createKeywordLib()
            ->timeout(10) // 超时10秒,request超时设置,仅对当前请求有效
            ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,request超时设置,仅对当前请求有效
            ->withServiceModule('open_api')
            ->withName('测试相似文本库')
            ->withResourceType('TEXT')
            ->withLibType('similarText')
            ->withCategory('BLACK')
            ->request();
        print_r($response->toArray());
    } catch (ClientException $exception) {
        echo $exception->getMessage() . PHP_EOL;
    } catch (ServerException $exception) {
        echo $exception->getMessage() . PHP_EOL;
        echo $exception->getErrorCode() . PHP_EOL;
        echo $exception->getRequestId() . PHP_EOL;
        echo $exception->getErrorMessage() . PHP_EOL;
    }

修改文本库

更新文本库库名以及修改文本库所适用的业务场景(BizType)。

<?php

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;

try {
    /**
     * 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
     * 常见获取环境变量方式:
     * 获取RAM用户AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * 获取RAM用户AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    AlibabaCloud::accessKeyClient('建议从环境变量中获取RAM用户AccessKey ID', '建议从环境变量中获取RAM用户AccessKey Secret')
        ->timeout(10) // 超时10秒,使用该客户端且没有单独设置的请求都使用此设置
        ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,使用该客户端且没有单独设置的请求都使用此设置
        ->regionId('cn-shanghai')
        ->asDefaultClient();

    $response = Green::v20170823()->updateKeywordLib()
        ->timeout(10) // 超时10秒,request超时设置,仅对当前请求有效
        ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,request超时设置,仅对当前请求有效
        ->withId('文本库ID')
        ->withName('文本库修改名称')
        ->request();
    print_r($response->toArray());
} catch (ClientException $exception) {
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}

删除文本库

重要

删除文本库也将删除文本库下的文本。系统回流的文本库不允许删除。

<?php

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;

try {
   /**
     * 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
     * 常见获取环境变量方式:
     * 获取RAM用户AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * 获取RAM用户AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    AlibabaCloud::accessKeyClient('建议从环境变量中获取RAM用户AccessKey ID', '建议从环境变量中获取RAM用户AccessKey Secret')
        ->timeout(10) // 超时10秒,使用该客户端且没有单独设置的请求都使用此设置
        ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,使用该客户端且没有单独设置的请求都使用此设置
        ->regionId('cn-shanghai')
        ->asDefaultClient();

    $response = Green::v20170823()->deleteKeywordLib()
        ->timeout(10) // 超时10秒,request超时设置,仅对当前请求有效
        ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,request超时设置,仅对当前请求有效
        ->withId('文本库ID')
        ->request();
    print_r($response->toArray());
} catch (ClientException $exception) {
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}

查找文本

默认分页查询所有文本。如果设置了Keyword字段,将模糊查找包含该字段值的文本。

<?php

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;

try {
    /**
     * 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
     * 常见获取环境变量方式:
     * 获取RAM用户AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * 获取RAM用户AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    AlibabaCloud::accessKeyClient('建议从环境变量中获取RAM用户AccessKey ID', '建议从环境变量中获取RAM用户AccessKey Secret')
        ->timeout(10) // 超时10秒,使用该客户端且没有单独设置的请求都使用此设置
        ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,使用该客户端且没有单独设置的请求都使用此设置
        ->regionId('cn-shanghai')
        ->asDefaultClient();

    $response = Green::v20170823()->describeKeyword()
        ->timeout(10) // 超时10秒,request超时设置,仅对当前请求有效
        ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,request超时设置,仅对当前请求有效
        ->withKeywordLibId('文本库ID')
        ->request();
    print_r($response->toArray());
} catch (ClientException $exception) {
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}

添加文本

<?php
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;

try {
    /**
     * 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
     * 常见获取环境变量方式:
     * 获取RAM用户AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * 获取RAM用户AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    AlibabaCloud::accessKeyClient('建议从环境变量中获取RAM用户AccessKey ID', '建议从环境变量中获取RAM用户AccessKey Secret')
        ->timeout(10) // 超时10秒,使用该客户端且没有单独设置的请求都使用此设置
        ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,使用该客户端且没有单独设置的请求都使用此设置
        ->regionId('cn-shanghai')
        ->asDefaultClient();

    $response = Green::v20170823()->createKeyword()
        ->timeout(10) // 超时10秒,request超时设置,仅对当前请求有效
        ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,request超时设置,仅对当前请求有效
        ->withKeywordLibId(0)
        ->withKeywords('[\'文本ID_1\',\'文本ID_2\']')// 单条文本长度20~10000个字符,一个文本库最多10000条文本。单次添加最多支持加10条文本。
        ->request();
    print_r($response->toArray());
} catch (ClientException $exception) {
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}

删除文本

<?php

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;

try {
    /**
     * 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
     * 常见获取环境变量方式:
     * 获取RAM用户AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * 获取RAM用户AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    AlibabaCloud::accessKeyClient('建议从环境变量中获取RAM用户AccessKey ID', '建议从环境变量中获取RAM用户AccessKey Secret')
        ->timeout(10) // 超时10秒,使用该客户端且没有单独设置的请求都使用此设置
        ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,使用该客户端且没有单独设置的请求都使用此设置
        ->regionId('cn-shanghai')
        ->asDefaultClient();

    $response = Green::v20170823()->deleteKeyword()
        ->timeout(10) // 超时10秒,request超时设置,仅对当前请求有效
        ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,request超时设置,仅对当前请求有效
        ->withKeywordLibId('文本库ID')
        ->withIds('[\'文本ID_1\',\'文本ID_2\']')
        ->request();
    print_r($response->toArray());
} catch (ClientException $exception) {
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}
  • 本页导读 (0)
文档反馈