sharpapi/sharpapi-laravel-client

SharpAPI.com - AI-Powered Swiss Army Knife API. 只需2行代码即可节省大量编码时间,并使用AI能力大幅提升您的应用程序。

This package is auto-updated.

Last update: 2024-09-28 14:46:35 UTC


README

SharpAPI GitHub cover

SharpAPI Laravel 客户端 SDK

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

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

Latest Version on Packagist Total Downloads

更多信息请访问 SharpAPI.com 网站 »

要求

  • PHP >= 8.1
  • Laravel >= 9.0

如果您不使用Laravel,则可以在此处找到通用SharpAPI PHP客户端

安装

  1. 您可以通过 composer 安装此软件包
composer require sharpapi/sharpapi-laravel-client
php artisan vendor:publish --tag=sharpapi-laravel-client
  1. SharpAPI.com 注册并获取API密钥。

  2. .env 中设置API密钥

SHARP_API_KEY=key

这就完了!

⛲ 它能为您做什么?

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

功能

请参阅官方

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

用法

您可以注入 SharpApiService 类或使用外观 \SharpApiService 单例。

我们建议您使用Laravel队列系统来优化派发的作业和检查结果的过程,特别是如果您处理大量数据批次。

典型用例需要以下步骤

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

每个调度作业通常需要几秒钟到一分钟的时间。

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

我们的API保证每次都返回正确的格式。SharpAPI使用的AI引擎在极少数情况下有误操作、超时或返回错误数据的趋势。在这种情况下,作业的返回状态将为failed。您可以在这种情况下重新运行相同的作业请求。

只要作业仍然由我们的引擎处理,它就会保持返回pending状态。

控制器使用示例

<?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"
            }
        ]
         */
    }
}

Guzzle异常

底层HTTP请求由Laravel 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 voice tone'    // optional voice tone
      );
    // $statusUrl example value: 'http://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();

可选的自定义配置

因此,您可以使用.env设置覆盖这些值

SHARP_API_KEY=XXX_key_XXX
SHARP_API_JOB_STATUS_POLLING_WAIT=200
SHARP_API_JOB_STATUS_USE_POLLING_INTERVAL=true
SHARP_API_JOB_STATUS_POLLING_INTERVAL=5
SHARP_API_BASE_URL=MOCK_SERVER

📋 API方法/端点列表

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

对于具有language参数的方法,您还可以使用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
  );

🛒 电子商务

⭐ 产品评论情感

解析客户的商品评论,并提供了其情感(POSITIVE/NEGATIVE/NEUTRAL)以及介于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 参数来设置您喜欢的写作风格。它可以是一些形容词,如 funny 或 joyous,甚至可以是一位著名作家的名字。

此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 参数来设置您喜欢的写作风格。它可以是一些形容词,如 funny 或 joyous,甚至可以是一位著名作家的名字。

还有一个可选的 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)。请参阅 许可文件 了解更多信息。