endritvs/laravel-ai-toolkit

一个针对 Laravel 应用程序的全面 AI 工具包,可与流行的 AI 模型(如 OpenAI 的 GPT 和 AWS 的 Claude)集成。

v1.0.6 2024-09-05 21:11 UTC

This package is auto-updated.

Last update: 2024-09-23 13:14:37 UTC


README

Laravel AI Toolkit 是一个强大的包,旨在将 AI 模型(如 OpenAI 的 GPT 和 AWS 的 Claude)无缝集成到您的 Laravel 应用程序中。具有易于使用的界面,此工具包使开发者能够轻松地将 AI 驱动的功能添加到他们的项目中。

🚀 功能

  • 简单集成 OpenAI 和 AWS Claude。
  • 可配置 AI 提供商。
  • 可自定义 AI 模型的查询构建器。
  • 异常处理和错误报告。
  • 支持多个 AI 模型和提供商,具有回退功能。

📋 要求

  • PHP 8.1 或更高版本
  • Laravel 10.x 到 11.x
  • openai-php/laravel
  • aws/aws-sdk-php

🛠️ 安装

要安装此包,请使用 Composer

composer require endritvs/laravel-ai-toolkit

安装包后,发布配置文件

php artisan vendor:publish --provider="Endritvs\LaravelAIToolkit\AIServiceProvider" --tag="config"

这将创建一个配置文件在 config/ai.php

⚙️ 配置

环境变量

请确保您已在您的 .env 文件中设置了以下环境变量

# OpenAI Configuration
OPENAI_API_KEY=your-openai-api-key
GPT_MODEL="gpt-4o-mini"
GPT_MAX_TOKENS=4000

# Default Provider
AI_DEFAULT_PROVIDER="claude"

# Claude AI Configuration
CLAUDE_MAX_TOKENS=6000
CLAUDE_MODEL="anthropic.claude-v2"

# AWS Configuration
AWS_ACCESS_KEY_ID=your-aws-access-key
AWS_SECRET_ACCESS_KEY=your-aws-secret-key
AWS_REGION=us-west-2

配置文件

config/ai.php 配置文件包含包的默认设置。您可以根据需要自定义这些设置

return [

    'default_provider' => env('AI_DEFAULT_PROVIDER', 'claude'),

    'providers' => [
        'gpt' => [
            'class' => \Endritvs\LaravelAIToolkit\Providers\GPTProvider::class,
            'model' => env('GPT_MODEL', 'gpt-4o-mini'),
            'max_tokens' => env('GPT_MAX_TOKENS', 4000),
        ],
        'claude' => [
            'class' => \Endritvs\LaravelAIToolkit\Providers\ClaudeProvider::class,
            'model' => env('CLAUDE_MODEL', 'anthropic.claude-v2'),
            'max_tokens' => env('CLAUDE_MAX_TOKENS', 6000),
            'region' => env('AWS_REGION', 'us-west-2'),
            'credentials' => [
                'key' => env('AWS_ACCESS_KEY_ID'),
                'secret' => env('AWS_SECRET_ACCESS_KEY'),
            ],
        ],
    ],

    'defaults' => [
        'temperature' => 0.7,
        'max_tokens' => 4000,
        'top_p' => 1.0,
    ],
];

💻 使用方法

基本用法示例

您可以使用该包与 AI 模型交互,如下所示

use Endritvs\LaravelAIToolkit\Models\Prompt;

$prompt = new Prompt();
$prompt->addContent('What is the capital of France?')
       ->setModel('gpt-4o-mini')
       ->setMaxTokens(50);

$response = $prompt->execute();

echo $response; // Output will be the AI's response.

说明

  • addContent('法国的首都是什么?'): 为 AI 模型设置要处理的问题内容。
  • setModel('gpt-4o-mini'): 指定要使用的 AI 模型。
  • setMaxTokens(50): 将响应限制在最多 50 个标记。
  • execute(): 将请求发送到 AI 模型并检索响应。

查询构建器示例

查询构建器允许您为 AI 模型构建查询

use Endritvs\LaravelAIToolkit\Models\Prompt;

$response = Prompt::query()
    ->setModel('anthropic.claude-v2')
    ->setMaxTokens(100)
    ->addContent('Tell me a joke')
    ->execute();

echo $response; // Output will be the AI's response.

说明

  • Prompt::query(): 使用 AIQueryBuilder 类创建新的查询。
  • setModel('anthropic.claude-v2'): 设置要使用的 AI 模型。
  • setMaxTokens(100): 将响应限制在最多 100 个标记。
  • addContent('讲一个笑话'): 向请求添加内容。
  • execute(): 执行查询并检索结果。

使用不同模型示例

您可以为不同的任务使用不同的 AI 模型

use Endritvs\LaravelAIToolkit\Models\Prompt;

// Using GPT model
$gptPrompt = new Prompt();
$gptPrompt->addContent('Explain quantum computing in simple terms.')
          ->setModel('gpt-4o-mini')
          ->setMaxTokens(150);

$gptResponse = $gptPrompt->execute();
echo 'GPT Response: ' . $gptResponse . PHP_EOL;

// Using Claude model
$claudePrompt = new Prompt();
$claudePrompt->addContent('What are the latest trends in web development?')
             ->setModel('anthropic.claude-v2')
             ->setMaxTokens(150);

$claudeResponse = $claudePrompt->execute();
echo 'Claude Response: ' . $claudeResponse . PHP_EOL;

说明

  • 使用 GPT 模型

    • addContent('用简单的话解释量子计算。'): 为 GPT 设置要解释的内容。
    • setModel('gpt-4o-mini'): 指定要使用的 GPT 模型。
    • setMaxTokens(150): 将响应限制在 150 个标记。
    • execute(): 从 GPT 获取响应。
  • 使用 Claude 模型

    • addContent('最新网页开发趋势是什么?'): 为 Claude 设置要处理的内容。
    • setModel('anthropic.claude-v2'): 指定 Claude 模型。
    • setMaxTokens(150): 将响应限制在 150 个标记。
    • execute(): 从 Claude 获取响应。

使用回退提供商示例

指定在主提供商失败时使用的回退提供商

use Endritvs\LaravelAIToolkit\Models\Prompt;

$prompt = new Prompt();
$prompt->addContent('Summarize the latest news on AI technology.')
       ->setProvider('gpt')
       ->setModel('gpt-4o-mini')
       ->setMaxTokens(150)
       ->fallback('claude'); // Claude will be used if GPT fails

$response = $prompt->execute();

echo $response;

说明

  • addContent('总结关于人工智能技术的最新新闻。'): 为请求设置内容。
  • setProvider('gpt'): 将主提供商设置为 GPT。
  • setModel('gpt-4o-mini'): 指定 GPT 模型。
  • setMaxTokens(150): 将响应限制在 150 个标记。
  • fallback('claude'): 如果 GPT 失败,将 Claude 配置为回退提供商。
  • execute(): 执行请求,如有必要,使用回退提供商。

设置提供商示例

手动为 AI 模型设置不同的提供商

use Endritvs\LaravelAIToolkit\Models\Prompt;

$prompt = new Prompt();
$prompt->setProvider('claude') // Set a different provider
       ->addContent('Describe the principles of machine learning.')
       ->setModel('claude-v2')
       ->setMaxTokens(150);

$response = $prompt->execute();

echo $response; // The response from the specified provider.

说明

  • setProvider('claude'): 手动将 AI 提供商设置为 Claude。
  • addContent('描述机器学习的基本原理。'): 设置要处理的内容。
  • setModel('claude-v2'): 指定 Claude 模型。
  • setMaxTokens(150): 将响应限制在 150 个标记。
  • execute(): 向指定的提供者发送请求并检索响应。

高级查询构建器示例

动态构建和执行更复杂的查询

use Endritvs\LaravelAIToolkit\Models\Prompt;

$response = Prompt::query()
    ->setModel('gpt-4o-mini')
    ->addContent('What are the implications of quantum computing?')
    ->setMaxTokens(200)
    ->execute();

echo $response; // Outputs the result based on the complex query.

说明

  • setModel('gpt-4o-mini'): 设置要使用的AI模型。
  • addContent('量子计算的意义是什么?'): 向请求中添加额外内容。
  • setMaxTokens(200): 将响应限制为200个标记。
  • execute(): 执行查询并处理响应。

完整示例(包含所有内容)

将所有功能结合成一个综合示例,展示了GPT和Claude模型

use Endritvs\LaravelAIToolkit\Models\Prompt;

// Example using GPT-4
$prompt = new Prompt();
$prompt->addContent('Give a summary of the latest advancements in technology.')
       ->setModel('gpt-4')
       ->setMaxTokens(300)
       ->fallback('claude'); // Fallback to Claude if GPT-4 fails

$response = $prompt->execute();

echo $response; // Outputs the result from GPT-4 or Claude if GPT-4 fails.

// Example using Claude
$claudePrompt = new Prompt();
$claudePrompt->addContent('Discuss the impact of recent technological innovations on society.')
             ->setModel('claude-v2')
             ->setMaxTokens(300);

$claudeResponse = $claudePrompt->execute();

echo 'Claude Response: ' . $claudeResponse . PHP_EOL;

// Example using Query Builder
$response = Prompt::query()
    ->setModel('gpt-4o-mini')
    ->addContent('What is the future of artificial intelligence?')
    ->setMaxTokens(150)
    ->execute();

echo $response; // Outputs the result based on the complex query and fallback.

说明

GPT-4示例

  • addContent('最新技术进步的总结'): 设置GPT-4的内容。
  • setModel('gpt-4'): 将GPT-4指定为主要模型。
  • setMaxTokens(300): 将响应限制为300个标记。
  • fallback('claude'): 如果GPT-4失败,则使用Claude作为后备提供者。
  • execute(): 执行请求,从GPT-4或Claude获取响应。

Claude示例

  • addContent('讨论最近技术创新对社会的影响'): 设置Claude的内容。
  • setModel('claude-v2'): 将Claude指定为模型。
  • setMaxTokens(300): 将响应限制为300个标记。
  • execute(): 执行请求并从Claude获取响应。

查询构建器示例

  • Prompt::query(): 创建一个新的查询构建器实例。
  • setModel('gpt-4o-mini'): 将GPT-4o-mini指定为查询的模型。
  • addContent('人工智能的未来是什么?'): 向查询添加额外内容。
  • setMaxTokens(150): 将响应限制在 150 个标记。
  • execute(): 执行查询并基于指定的参数检索结果。

🛠️ 贡献

欢迎贡献!如果您想为此包做出贡献,请遵循以下步骤

  1. Fork仓库。
  2. 创建一个新分支 (git checkout -b feature/new-feature)。
  3. 提交您的更改 (git commit -m 'Add new feature')。
  4. 将更改推送到分支 (git push origin feature/new-feature)。
  5. 打开一个pull请求。

🛡️ 安全漏洞

如果您在此包中发现安全漏洞,请发送电子邮件至 [endritsaiti8@gmail.com]。所有安全漏洞都将得到及时解决。

📄 许可证

此包采用MIT许可证。有关更多信息,请参阅LICENSE文件。

💡 小贴士 & 技巧

  • 使用特定于环境的配置来调整AI模型的行为,具体取决于您的部署环境。
  • 监控AI模型的使用情况和响应时间以优化性能。
  • 尝试不同的AI模型以找到最适合您应用程序需求的一个。

📬 支持

如果您有任何问题或需要进一步的帮助,请随时通过电子邮件或GitHub上的问题进行联系。