endritvs / laravel-ai-toolkit
一个针对 Laravel 应用程序的全面 AI 工具包,可与流行的 AI 模型(如 OpenAI 的 GPT 和 AWS 的 Claude)集成。
v1.0.6
2024-09-05 21:11 UTC
Requires
- php: >=8.1
- aws/aws-sdk-php: ^3.304
- illuminate/support: ^10.0|^11.0
- openai-php/laravel: ^0.7.0
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(): 执行查询并基于指定的参数检索结果。
🛠️ 贡献
欢迎贡献!如果您想为此包做出贡献,请遵循以下步骤
- Fork仓库。
- 创建一个新分支 (
git checkout -b feature/new-feature
)。 - 提交您的更改 (
git commit -m 'Add new feature'
)。 - 将更改推送到分支 (
git push origin feature/new-feature
)。 - 打开一个pull请求。
🛡️ 安全漏洞
如果您在此包中发现安全漏洞,请发送电子邮件至 [endritsaiti8@gmail.com]。所有安全漏洞都将得到及时解决。
📄 许可证
此包采用MIT许可证。有关更多信息,请参阅LICENSE文件。
💡 小贴士 & 技巧
- 使用特定于环境的配置来调整AI模型的行为,具体取决于您的部署环境。
- 监控AI模型的使用情况和响应时间以优化性能。
- 尝试不同的AI模型以找到最适合您应用程序需求的一个。
📬 支持
如果您有任何问题或需要进一步的帮助,请随时通过电子邮件或GitHub上的问题进行联系。