sharpapi/sharpapi-php-client

SharpAPI.com - AI驱动的瑞士军刀API。节省无数编码时间,用2行代码将AI功能超级增强您的应用。

v1.2.0 2024-08-26 17:18 UTC

This package is auto-updated.

Last update: 2024-09-27 11:41:17 UTC


README

SharpAPI GitHub cover

SharpAPI PHP客户端SDK

🚀 使用AI API自动化工作流程

利用AI API简化电子商务、营销、内容管理、HR技术、旅游等领域的工作流程。

Latest Version on Packagist Total Downloads

节省在重复内容分析和生成任务上的时间,这些任务是您的应用用户每天执行的。

更多请访问 SharpAPI.com网站»

如果您正在寻找Laravel版本 - 请在此查看»

要求

  • PHP >= 8.1

⛲ 它能为您做什么?

  • 🛒 电子商务
    • 快速生成引人入胜的产品介绍以吸引客户。
    • 自动创建个性化的感谢邮件以提升客户体验。
    • 简化产品分类以构建有序的目录。
    • 情感分析:理解并分析产品评论中的情感,以进行数据驱动的决策。
  • 📝️ 内容与营销自动化
    • 轻松翻译文本以适应全球受众。
    • 改写和校对任何文本(包括语法检查)
    • 垃圾内容检测:有效地识别和过滤垃圾内容。
    • 联系信息提取:从非标准格式中提取电话号码和电子邮件地址以实现流畅的通信。
    • 生成简洁的摘要和独特的关键词/标签以改善内容消费。
    • 通过基于内容的自动生成META标签来提高SEO效果。
  • ‍💻 HR技术
    • 轻松生成复杂的职位描述,节省招聘过程中的时间。
    • 技能和职位洞察:识别相关的职位和技能以简化招聘。
    • 自动简历解析:有效地解析和从简历文件中提取信息以方便处理。
  • ✈️ 旅游、旅游和酒店
    • 分析旅游评论中的情感以改善服务。
    • 简化旅游、活动和酒店产品的分类。

功能

请参考官方

  • API文档
  • 多语言支持:支持每个内容或数据分析API端点的80种语言。 查看列表
  • 易于使用的RESTful格式:具有标准化的端点集 - 通过分析端点获取宝贵见解,涵盖产品类别、技能和职位,提供相关分数。
  • 始终如一、干净的格式:所有返回数据均采用一致、可预测的JSON格式。无需担心模糊的AI数据。
  • 技术支持:由开发者为开发者打造,我们将在您的整个旅程中提供持续的帮助。

安装

  1. 您可以通过composer安装此包
composer require sharpapi/sharpapi-php-client
  1. SharpAPI.com 注册并获取API密钥。

  2. 就是这样!

使用方法

简单示例

$sharpApi = new \SharpAPI\SharpApiService\SharpApiService(SHARP_API_KEY);

$statusUrl = $sharpApi->productCategories(
        'Lenovo Chromebook Laptop (2023), 14" FHD Touchscreen Slim 3, 
        8-Core MediaTek Kompanio 520 CPU, 4GB RAM, 128GB Storage',
        'German', // optional language
        400, // optional quantity
        'optional neutral voice tone', // optional voice tone
        'optional current e-store categories'     // optional context, current categories to match
    );

$resultSharpApiJob = $sharpApi->fetchResults($statusUrl);

var_dump($resultSharpApiJob->getResultJson());

典型用例需要以下步骤

  1. 调度可用的AI处理方法之一(这将返回作业处理状态URL)
  2. 运行 fetchResults($statusUrl) 方法,该方法在轮询模式下操作,每隔10秒发送一次请求,持续180秒(这些值可以自定义,请检查 SharpApiService 源代码)。
  3. 将返回 SharpApiJob 对象。
  4. 对于以 success 状态完成的任务,您可以使用以下方法之一获取结果,例如 $jobResultJson = $jobResult->getResultJson()

每个分发的任务通常需要几秒钟到一分钟的时间。

在此期间之后,返回的任务通常具有 success 状态,其结果可用于进一步处理。每个API方法返回不同的返回格式。请参阅下面的API方法/端点列表以获取详细信息»

我们的API保证每次都返回正确的格式。 SharpAPI使用的AI引擎在罕见情况下可能会出现异常行为、超时或返回错误数据。在这种情况下,任务的返回 status 将为 failed。您可以在这种情况下重新运行相同的任务请求。

只要任务仍在我们的引擎中处理,它将继续返回 pending 状态。

Guzzle异常

底层HTTP请求由Guzzle提供支持,因此检查典型的Guzzle异常是个好主意

use GuzzleHttp\Exception\ClientException;

// Step 1: dispatch the job to the API with one of the methods, for example:
try {
    $statusUrl = \SharpApiService::summarizeText(
        $text, 
        'German' // optional language
        500, // optional length
        'neutral'  // optional voice tone
      );
    // $statusUrl example value: 'https://sharpapi.com/api/v1/job/status/75acb6dc-a975-4969-9ef1-c62cebc511cb'
} catch (ClientException $e) {
     $e->getResponse()
}

// Step 2: request to check job status in polling mode and wait for the result
$jobResult = \SharpApiService::fetchResults($statusUrl);

// Step 3: get results of dispatched API job, f.e. this returns job result as a prettied JSON
$jobResultJson = $jobResult->getResultJson();
// ..or PHP array:
$jobResultArray = $jobResult->getResultArray();
// ..or PHP stdClass:
$jobResultObject = $jobResult->getResultObject();

框架控制器使用示例

<?php

namespace App\Http\Controllers;

use GuzzleHttp\Exception\GuzzleException;
use SharpAPI\SharpApiService\SharpApiService;

class SharpTest extends Controller
{
    public function __construct(public SharpApiService $sharpApiService)
    {
    }

    /**
     * @throws GuzzleException
     */
    public function detect_phones(): void
    {
        $statusUrl = $this->sharpApiService->detectPhones(
            'Where to find us? Call with a sales tech advisor:
            Call: 1800-394-7486 or our Singapore office +65 8888 8888'
        );
        
        $result = $this->sharpApiService->fetchResults($statusUrl);
        
        dd($result->getResultJson());
        /* returned:
        [
            {
                "detected_number": "1800-394-7486",
                "parsed_number": "+18003947486"
            },
            {
                "detected_number": "+65 8888 8888",
                "parsed_number": "+6588888888"
            }
        ]
         */
    }
}

📋 API方法/端点列表

每个方法始终返回 SharpApiJob 对象,其中其 getResultJson / getResultArray / getResultObject 方法将返回不同的数据结构。请参阅SharpAPI.com上提供的详细示例。

对于具有语言参数的方法,您还可以使用 SharpApiLanguages 枚举值来使您的代码更易于阅读。

🧑‍💻 HR

⭐ 解析简历/CV文件

从多种格式(PDF/DOC/DOCX/TXT/RTF)解析简历(CV)文件,并返回一个包含大量数据点的对象。

还可以提供可选的输出语言参数(默认值为English)。

$statusUrl = \SharpApiService::parseResume('/test/resume.pdf', 'English');

⭐ 生成职位描述

根据提供的详细参数列表,此端点在响应格式中提供简洁的职位详情,包括简短描述、职位要求和职责。唯一的必填参数是 name

此功能利用一个专门的 DTO 类(Data Transfer Object)参数,名为 JobDescriptionParameters,以帮助验证输入参数。此 DTO 构造函数中唯一的必填参数是 name

您可以通过提供 voice_tone 参数来设置您首选的写作风格。它可以是一个形容词,如 funnyjoyous,甚至可以是一个著名作家的名字。

此API方法还提供了一个可选的上下文参数,可以用于为内容处理提供额外的灵活指令。

$jobDescriptionParameters = new JobDescriptionParameters(
    name: "PHP Senior Engineer",
    company_name: "ACME LTD",   // optional
    minimum_work_experience: "5 years",   // optional
    minimum_education: "Bachelor Degree",   // optional
    employment_type: "full time",   // optional
    required_skills: ['PHP8', 'Laravel'],   // optional
    optional_skills: ['AWS', 'Redis'],   // optional
    country: "United Kingdom",   // optional
    remote: true,   // optional
    visa_sponsored: true,   // optional
    voice_tone: 'Professional and Geeky',   // optional voice tone
    context: null,   // optional context, additional AI processing instructions
    language: null   // optional output language
);

$statusUrl = \SharpApiService::generateJobDescription($jobDescriptionParameters);

⭐ 相关技能

生成与相关技能及其权重(浮点值1.0-10.0)的列表,其中10等于100%,是最高的相关性分数。

唯一必需的参数是 name

您可以使用 max_quantity 参数来限制输出。

$statusUrl = \SharpApiService::relatedSkills(
    'MySQL', 
    'English',   // optional language
    10  // optional quantity
  );

⭐ 相关职位

生成与相关职位及其权重(浮点值1.0-10.0)的列表,其中10等于100%,是最高的相关性分数。

唯一必需的参数是 name

您可以使用 max_quantity 参数来限制输出。

$statusUrl = \SharpApiService::relatedJobPositions(
    'Senior PHP Engineer', 
    'English',   // optional language
    10  // optional quantity
  );

🛒 电子商务

⭐ 产品评论情感分析

解析客户的评论并提供其情感(积极/消极/中性)以及0-100%之间的分数。非常适合任何在线商店的情感报告处理。

$statusUrl = \SharpApiService::productReviewSentiment('customer review contents');

⭐ 产品类别

生成与产品及其相关度权重(浮点值1.0-10.0)的列表,其中10等于100%,是最高的相关性分数。提供产品名称及其参数以获得最佳类别匹配。非常适合填充产品目录数据和批量处理产品。

您可以使用 max_quantity 参数来限制输出。

您可以通过提供 voice_tone 参数来设置您首选的写作风格。它可以是一个形容词,如 funnyjoyous,甚至可以是一个著名作家的名字。

在可选参数的上下文中,您可以提供其他类别的列表,这些类别将在映射过程中被考虑(例如您的当前电子商务类别)。

$statusUrl = \SharpApiService::productCategories(
    'Sony Playstation 5', 
    'English',   // optional language
    5,   // optional quantity
    'Tech-savvy',   // optional voice tone
    'Game Console, PS5 Console'    // optional context, current categories to match
  );

⭐ 生成产品简介

生成产品描述的简短版本。提供尽可能多的产品细节和参数,以获得最佳的市场介绍。在填充产品目录数据和批量处理产品时很有用。

您可以使用 max_length 参数来限制输出。请注意,max_length 作为对语言模型的强烈建议,而不是严格的要求,以保持输出的一般意义。

您可以通过提供 voice_tone 参数来设置您首选的写作风格。它可以是一个形容词,如 funnyjoyous,甚至可以是一个著名作家的名字。

$statusUrl = \SharpApiService::generateProductIntro(
    'Sony Playstation 5', 
    SharpApiLanguages::ENGLISH,   // optional language
    300,   // optional length
    'Funny'   // optional voice tone
  );

⭐ 生成感谢邮件

在购买后为客户生成个性化的感谢邮件。响应内容不包含标题、问候语或发件人信息,因此您可以轻松地个性化邮件的其余部分。

您可以使用 max_length 参数来限制输出。请注意,max_length 作为对语言模型的强烈建议,而不是严格的要求,以保持输出的一般意义。

您可以通过提供 voice_tone 参数来设置您首选的写作风格。它可以是形容词,如“有趣”或“欢乐”,甚至是著名作家的名字。

此API方法还提供了一个可选的上下文参数,可以用于为内容处理提供额外的灵活指令。

$statusUrl = \SharpApiService::generateThankYouEmail(
    'Sony Playstation 5', 
    SharpApiLanguages::ENGLISH,    // optional language
    250,    // optional length
    'Neutral',    // optional voice tone
    'Must invite customer to visit again before Holidays'   // optional context
   );

📝️ 内容

⭐ 翻译文本

将提供的文本翻译成选定的语言。支持80种语言。请检查包含的 SharpApiLanguages 枚举 类以获取详细信息。

您可以通过提供 voice_tone 参数来设置您首选的写作风格。它可以是形容词,如“有趣”或“欢乐”,甚至是著名作家的名字。

还有一个可选的 context 参数。它可以用来为翻译文本提供更多上下文,如用例示例或一些额外的解释。

$statusUrl = \SharpApiService::translate(
    'turn', 
    SharpApiLanguages::FRENCH,    // optional language
    'neutral',    // optional voice tone
    'to turn a page'   // optional context
    );

// will result in :
// {"content": "tourner", "to_language": "French", "from_language": "English"}

⭐ 意译/改写

生成提供文本的改写版本。只需 content 参数即可。您可以定义输出语言、最大字符长度和语气。

有关如何处理文本的额外说明可以提供在 context 参数中。请注意,max_length 作为对语言模型的强烈建议,而不是严格的要求,以保持输出的一般意义。

您可以通过提供可选的 voice_tone 参数来设置您首选的写作风格。它可以是形容词,如 funnyjoyous,甚至是著名作家的名字。

此API方法还提供了一个可选的 context 参数,可以用来为内容处理提供额外的灵活说明。

$statusUrl = \SharpApiService::paraphrase(
    $text, 
    SharpApiLanguages::FRENCH,   // optional language
    500, // optional length
    'neutral',    // optional voice tone
    'avoid using abbreviations'   // optional context
    );

⭐ 校对文本 + 语法检查

校对(并检查语法)提供的文本。

$statusUrl = \SharpApiService::proofread($text);

⭐ 检测垃圾邮件

检查提供的内容是否通过垃圾邮件过滤测试。提供信心百分比分数和解释,说明是否被认为是垃圾邮件。此信息对管理员做出最终决定很有用。

$statusUrl = \SharpApiService::detectSpam($text);

⭐ 检测电话号码

解析提供的文本中的任何电话号码,并返回原始检测到的版本及其E.164格式。在处理和验证大量数据以电话号码为例或如果您想检测不应该出现电话号码的地方时可能很有用。

$statusUrl = \SharpApiService::detectPhones($text);

⭐ 检测电子邮件

解析提供的文本中的任何可能的电子邮件。在处理和验证大量数据以电子邮件地址为例或如果您想检测不应该出现电子邮件的地方时可能很有用。

$statusUrl = \SharpApiService::detectEmails($text);

⭐ 生成关键词/标签

根据提供的内容生成唯一的关键词/标签列表。

您可以使用 max_quantity 参数来限制输出。

您可以通过提供 voice_tone 参数来设置您首选的写作风格。

$statusUrl = \SharpApiService::generateKeywords(
    $text, 
    'English',    // optional language
    5,  // optional length
    'Freaky & Curious',    // optional voice tone
    'add emojis!' // optional extra context instructions for content processing
  );

⭐ 摘要文本

生成提供内容的摘要版本。非常适合生成较长的文本的市场介绍。

您可以使用 max_length 参数来限制输出。请注意,max_length 作为对语言模型的强烈建议,而不是严格的要求,以保持输出的一般意义。

您可以通过提供 voice_tone 参数来设置您首选的写作风格。它可以是形容词,如 funnyjoyous,甚至是著名作家的名字。

$statusUrl = \SharpApiService::summarizeText(
    $text, 
    'English',     // optional language
    'David Attenborough',    // optional voice tone
    'add emojis!' // optional extra context instructions for content processing
  );

🗒️ SEO

⭐ 生成SEO标签

根据提供的内容生成所有最重要的META标签。确保包含网站链接和图片URL,以尽可能多地填充标签。

您可以通过提供 voice_tone 参数来设置您首选的写作风格。它可以是形容词,如 funnyjoyous,甚至是著名作家的名字。

$statusUrl = \SharpApiService::generateSeoTags(
    $text, 
    'English',      // optional language
    'David Attenborough'    // optional voice tone
  );

✈️ 旅行、旅游与酒店

⭐ 旅行评论情感

解析旅行/酒店产品评论并提供其情感(正面/负面/中性)以及0-100%的评分。非常适合处理任何在线商店的情感报告。

$statusUrl = \SharpApiService::travelReviewSentiment($text);

⭐ 旅游与活动产品类别

根据相关权重(1.0-10.0,10等于100%为最高相关度评分)生成旅游与活动产品的合适类别列表。提供产品名称及其参数以获取最佳类别匹配。在填充产品目录数据和批量处理产品时非常有用。只需要第一个参数productName

您可以使用 max_quantity 参数来限制输出。

您可以通过提供 voice_tone 参数来设置您首选的写作风格。它可以是一个形容词,如 funnyjoyous,甚至可以是一个著名作家的名字。

在可选的附加参数context中,您可以提供一个列表,这些列表将在映射过程中被考虑(例如您的当前电子商务类别)。

$statusUrl = \SharpApiService::toursAndActivitiesProductCategories(
        'Oasis of the Bay'
        'Ha Long',     // optional city
        'Vietnam',     // optional country
        'English',     // optional language
        10,     // optional quantity
        'Adventurous',     // optional voice tone
        'Bay Hotels, Ha Long Hotels'     // optional context, current categories to match
    );

⭐ 酒店产品类别

根据相关权重(1.0-10.0,10等于100%为最高相关度评分)生成酒店类型产品的合适类别列表。提供产品名称及其参数以获取最佳类别匹配。在填充产品目录数据和批量处理产品时非常有用。只需要第一个参数productName

您可以使用 max_quantity 参数来限制输出。

您可以通过提供 voice_tone 参数来设置您首选的写作风格。它可以是一个形容词,如 funnyjoyous,甚至可以是一个著名作家的名字。

在可选的附加参数context中,您可以提供一个列表,这些列表将在映射过程中被考虑(例如您的当前电子商务类别)。

$statusUrl = \SharpApiService::hospitalityProductCategories(
        'Hotel Crystal 大人専用'
        'Tokyo',     // optional city
        'Japan',    // optional country
        'English',     // optional language
        10,    // optional quantity
        'Adventurous',    // optional voice tone
        'Tokyo Hotels, Crystal Hotels'     // optional context, current categories to match
    );

🤖 技术API端点

⭐ 订阅信息/配额检查

端点用于检查订阅当前期间的详细信息

$statusUrl = \SharpApiService::quota();

将导致

{
    "timestamp": "2024-03-19T12:49:41.445736Z",
    "on_trial": false,
    "trial_ends": "2024-03-17T07:57:46.000000Z",
    "subscribed": true,
    "current_subscription_start": "2024-03-18T12:37:39.000000Z",
    "current_subscription_end": "2024-04-18T12:37:39.000000Z",
    "subscription_words_quota": 100000,
    "subscription_words_used": 9608,
    "subscription_words_used_percentage": 0.1
}

subscription_words_used_percentage是当前月度配额使用的百分比,可能作为用户耗尽信用额的警报。当值超过80%时,建议在https://sharpapi.com/dashboard/credits订阅更多信用额,以避免服务中断。

这些值也可在https://sharpapi.com/dashboard仪表板中查看

⭐ PING

简单的PING端点,用于检查API的可用性和其内部时区(时间戳)。

$statusUrl = \SharpApiService::ping();

将导致

{
  "ping": "pong",
  "timestamp": "2024-03-12T08:50:11.188308Z"
}

你认为我们的API缺少一些明显的功能吗?

请告诉我们」

变更日志

请参阅CHANGELOG以了解最近有哪些更改。

信用额

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。