Laravel AI 特性详解

摘要

本文详细介绍了 Laravel 12 及以上版本中的 AI 特性和集成方案,包括官方推出的 laravel/ai 库、Laravel Boost 开发工具、MCP 模型上下文协议,以及与第三方 AI 服务的集成。通过本文,您将了解如何在 Laravel 应用中:

  • 使用 laravel/ai 库与 OpenAI、Anthropic、Google Gemini 等 AI 服务无缝集成
  • 利用 Laravel Boost 提高开发效率,自动生成代码和文档
  • 通过 MCP 协议标准化 AI 通信,实现工具调用和上下文管理
  • 构建 AI 驱动的内容管理系统、客服聊天机器人和数据分析工具
  • 遵循 Laravel AI 开发的最佳实践,确保安全性和性能

本文适合希望在 Laravel 项目中集成 AI 功能的开发者,提供了全面的技术指南和实战示例。

1. Laravel AI 生态系统概述

Laravel 已经正式进入 AI 时代,提供了一系列强大的官方工具和集成方案,使开发者能够轻松构建 AI 驱动的应用程序。主要包括:

  • laravel/ai - Laravel 官方 AI 集成库,提供与各种 AI 服务的无缝集成
  • Laravel Boost - Laravel 官方 AI 辅助开发工具
  • Laravel MCP - Laravel 模型上下文协议,标准化 AI 通信
  • 第三方 AI 包集成 - 与各种 AI 服务的扩展集成

如果您还不熟悉 Laravel 的基本概念,可以参考我们的 Laravel 12 教程 - Web 开发实战入门 文章,了解 Laravel 的核心功能和使用方法。

2. laravel/ai 官方库

2.1 Laravel AI 特性介绍

laravel/ai 是 Laravel 官方推出的 AI 集成库,提供了与各种 AI 服务的统一接口,使开发者能够:

  • 与多种 AI 模型提供商无缝集成(OpenAI、Anthropic、Google Gemini 等)
  • 统一的 API 接口,简化代码实现
  • 内置的缓存和错误处理机制
  • 与 Laravel 生态系统深度集成

2.2 Laravel AI 安装方法

1
composer require laravel/ai

2.3 Laravel AI 配置与使用

Laravel AI 基本配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// config/ai.php
return [
'default' => env('AI_DEFAULT_PROVIDER', 'openai'),

'providers' => [
'openai' => [
'api_key' => env('OPENAI_API_KEY'),
'model' => env('OPENAI_MODEL', 'gpt-4o'),
],
'anthropic' => [
'api_key' => env('ANTHROPIC_API_KEY'),
'model' => env('ANTHROPIC_MODEL', 'claude-3-opus-20240229'),
],
'gemini' => [
'api_key' => env('GEMINI_API_KEY'),
'model' => env('GEMINI_MODEL', 'gemini-1.5-pro'),
],
],
];

Laravel AI 基本使用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use Laravel\Ai\Facades\Ai;

// Laravel AI 文本生成
$response = Ai::generate('写一篇关于 Laravel AI 集成的文章');

// Laravel AI 聊天完成
$response = Ai::chat()
->message('你好,我是 Laravel 开发者')
->message('作为 AI,你能帮我什么?', role: 'user')
->send();

// Laravel AI 图像生成
$image = Ai::image()
->prompt('Laravel 徽标与 AI 元素结合的创意设计')
->size('1024x1024')
->generate();

// Laravel AI 文本嵌入
$embedding = Ai::embed('Laravel 是一个优雅的 PHP Web 框架');

2.4 Laravel AI 核心功能

  1. Laravel AI 文本生成

    • 支持多种模型和参数配置
    • 流式输出支持
    • 上下文管理
  2. Laravel AI 聊天功能

    • 多轮对话支持
    • 角色管理
    • 工具调用能力
  3. Laravel AI 图像生成

    • 多种尺寸支持
    • 风格控制
    • 图像编辑功能
  4. Laravel AI 文本嵌入

    • 用于语义搜索
    • 相似性比较
    • 推荐系统
  5. Laravel AI 语音处理

    • 语音转文本
    • 文本转语音
    • 语音合成

2.5 Laravel AI 高级特性

Laravel AI 链式调用

1
2
3
4
5
6
7
$response = Ai::chat()
->model('gpt-4o')
->temperature(0.7)
->maxTokens(1000)
->message('你是一个 Laravel 专家')
->message('如何优化 Laravel 应用性能?', role: 'user')
->send();

Laravel AI 流式响应

1
2
3
4
5
6
Ai::chat()
->message('写一个 Laravel 控制器示例')
->stream(function ($chunk) {
echo $chunk->content;
flush();
});

Laravel AI 工具调用

1
2
3
4
5
6
7
8
9
10
$response = Ai::chat()
->message('获取今天的天气并生成一份报告')
->tool('getWeather', function ($location) {
// 调用天气 API
return [
'temperature' => 25,
'condition' => '晴天',
];
})
->send();

3. Laravel Boost

3.1 Laravel Boost 特性介绍

Laravel Boost 是 Laravel 官方推出的 AI 辅助开发工具,提供:

  • MCP 服务器实现
  • 15+ 专用 AI 工具
  • Laravel 生态的 AI 编程指南
  • 文档 API 支持

3.2 Laravel Boost 安装方法

1
composer require laravel/boost

3.3 Laravel Boost 配置与使用

Laravel Boost 基本配置

1
2
3
4
5
6
7
8
9
10
11
// config/boost.php
return [
'api_key' => env('BOOST_API_KEY'),
'model' => env('BOOST_MODEL', 'gpt-4o'),
'tools' => [
'enabled' => true,
'list' => [
// 启用的工具列表
],
],
];

Laravel Boost 基本使用示例

1
2
3
4
5
6
7
8
9
10
use Laravel\Boost\Boost;

// Laravel Boost 生成代码
$code = Boost::generateCode('创建一个用户注册控制器,包含验证和存储逻辑');

// Laravel Boost 优化现有代码
$optimizedCode = Boost::optimizeCode('function calculateTotal($items) { /* 现有代码 */ }');

// Laravel Boost 生成文档
$documentation = Boost::generateDocumentation('App\Models\User');

3.4 Laravel Boost 核心功能

  1. Laravel Boost 代码生成

    • 控制器、模型、迁移文件生成
    • 路由和中间件配置
    • 测试用例生成
  2. Laravel Boost 代码优化

    • 性能优化建议
    • 代码风格改进
    • 安全性增强
  3. Laravel Boost 文档生成

    • API 文档自动生成
    • 代码注释完善
    • 使用示例创建
  4. Laravel Boost 问题诊断

    • 错误分析和修复建议
    • 性能瓶颈识别
    • 安全漏洞检测

4. Laravel MCP (Model Context Protocol)

4.1 Laravel MCP 特性介绍

Laravel MCP 引入了模型上下文协议,这是一种在 Laravel 应用和 AI 模型之间进行通信的标准化方式。

4.2 Laravel MCP 安装方法

1
composer require laravel/mcp

4.3 Laravel MCP 核心概念

  1. Laravel MCP 工具定义 - 注册可供 AI 调用的函数
  2. Laravel MCP 上下文管理 - 维护 AI 对话的上下文信息
  3. Laravel MCP 安全边界 - 控制 AI 可以访问的资源

4.4 Laravel MCP 配置与使用

Laravel MCP 服务提供者配置

1
2
3
4
5
6
7
8
9
10
11
12
13
// app/Providers/McpServiceProvider.php
use Laravel\Mcp\Mcp;

public function boot()
{
Mcp::registerTool('getUser', function ($userId) {
return User::find($userId);
});

Mcp::registerTool('createPost', function ($title, $content) {
return Post::create(['title' => $title, 'content' => $content]);
});
}

Laravel MCP 使用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use Laravel\Mcp\Mcp;

// Laravel MCP 与 AI 模型交互
$response = Mcp::ask(
'创建一个标题为"Laravel AI 教程"的博客文章,内容包括 MCP 的使用方法',
['createPost'] // 允许使用的工具
);

// Laravel MCP 处理 AI 响应
if ($response->hasToolCalls()) {
foreach ($response->toolCalls() as $call) {
$result = Mcp::executeToolCall($call);
$response = $response->withToolResult($call->id, $result);
}

$finalResponse = Mcp::ask($response->nextPrompt());
}

4.5 Laravel MCP 工具开发

Laravel MCP 创建自定义工具

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// app/Mcp/Tools/WeatherTool.php
namespace App\Mcp\Tools;

use Laravel\Mcp\Tool;

class WeatherTool extends Tool
{
public function name(): string
{
return 'getWeather';
}

public function description(): string
{
return '获取指定城市的天气信息';
}

public function parameters(): array
{
return [
'city' => [
'type' => 'string',
'description' => '城市名称',
'required' => true,
],
];
}

public function execute(array $parameters)
{
$city = $parameters['city'];
// 调用天气 API 获取数据
return [
'city' => $city,
'temperature' => 25,
'condition' => '晴天',
];
}
}

Laravel MCP 注册自定义工具

1
2
3
4
5
6
7
8
// app/Providers/McpServiceProvider.php
use App\Mcp\Tools\WeatherTool;
use Laravel\Mcp\Mcp;

public function boot()
{
Mcp::registerToolClass(WeatherTool::class);
}

5. Laravel 第三方 AI 包集成

5.1 Laravel OpenAI 集成

Laravel OpenAI 安装

1
composer require openai-php/laravel

Laravel OpenAI 配置

1
2
3
// .env
OPENAI_API_KEY=your-api-key
OPENAI_ORGANIZATION=your-organization-id

Laravel OpenAI 使用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use OpenAI\Laravel\Facades\OpenAI;

// Laravel OpenAI 文本生成
$response = OpenAI::completions()->create([
'model' => 'gpt-4o',
'prompt' => '写一篇关于 Laravel AI 集成的文章',
'max_tokens' => 1000,
]);

// Laravel OpenAI 聊天完成
$response = OpenAI::chat()->create([
'model' => 'gpt-4o',
'messages' => [
['role' => 'user', 'content' => '如何在 Laravel 中使用 AI?'],
],
]);

5.2 Laravel Anthropic (Claude) 集成

Laravel Anthropic 安装

1
composer require anthropic-php/laravel

Laravel Anthropic 使用示例

1
2
3
4
5
6
7
8
9
use Anthropic\Laravel\Facades\Anthropic;

// Laravel Anthropic 聊天完成
$response = Anthropic::messages()->create([
'model' => 'claude-3-opus-20240229',
'messages' => [
['role' => 'user', 'content' => '解释 Laravel MCP 的工作原理'],
],
]);

5.3 Laravel Google Gemini 集成

Laravel Google Gemini 安装

1
composer require google/generative-ai

Laravel Google Gemini 使用示例

1
2
3
4
5
6
7
use Google\GenerativeAI\GenerativeAI;

$genAI = new GenerativeAI(env('GOOGLE_API_KEY'));
$model = $genAI->getGenerativeModel('gemini-1.5-pro');

// Laravel Google Gemini 生成内容
$response = $model->generateContent('创建一个 Laravel 命令行工具');

6. Laravel AI 实战应用示例

6.1 Laravel AI 驱动的内容管理系统

Laravel AI 控制器实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// app/Http/Controllers/AIContentController.php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Laravel\Boost\Boost;

class AIContentController extends Controller
{
public function generate(Request $request)
{
$request->validate([
'topic' => 'required|string',
'length' => 'required|integer|min:100|max:5000',
'format' => 'required|string|in:article,summary,list',
]);

$content = Boost::generateContent(
$request->topic,
$request->length,
$request->format
);

return response()->json(['content' => $content]);
}

public function optimize(Request $request)
{
$request->validate([
'content' => 'required|string',
'target_audience' => 'required|string',
]);

$optimized = Boost::optimizeContent(
$request->content,
$request->target_audience
);

return response()->json(['content' => $optimized]);
}
}

Laravel AI 路由配置

1
2
3
4
5
// routes/api.php
Route::prefix('ai')->group(function () {
Route::post('/generate', [AIContentController::class, 'generate']);
Route::post('/optimize', [AIContentController::class, 'optimize']);
});

6.2 Laravel AI 客服聊天机器人

Laravel AI 实现方案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// app/Services/AIChatService.php
namespace App\Services;

use Laravel\Mcp\Mcp;

class AIChatService
{
public function handleMessage(string $message, int $userId)
{
// 获取用户上下文
$context = $this->getUserContext($userId);

// 与 AI 模型交互
$response = Mcp::ask(
$message,
['getUserOrder', 'getProductInfo', 'createSupportTicket'],
$context
);

// 处理工具调用
if ($response->hasToolCalls()) {
foreach ($response->toolCalls() as $call) {
$result = Mcp::executeToolCall($call);
$response = $response->withToolResult($call->id, $result);
}

$finalResponse = Mcp::ask($response->nextPrompt());
$responseText = $finalResponse->content();
} else {
$responseText = $response->content();
}

// 保存对话上下文
$this->saveUserContext($userId, $message, $responseText);

return $responseText;
}

private function getUserContext(int $userId)
{
// 从数据库或缓存获取用户对话历史
return [];
}

private function saveUserContext(int $userId, string $message, string $response)
{
// 保存对话到数据库或缓存
}
}

Laravel AI 使用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// app/Http/Controllers/ChatController.php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Services\AIChatService;

class ChatController extends Controller
{
public function sendMessage(Request $request, AIChatService $chatService)
{
$message = $request->input('message');
$userId = auth()->id();

$response = $chatService->handleMessage($message, $userId);

return response()->json(['response' => $response]);
}
}

6.3 Laravel AI 数据分析工具

Laravel AI 实现方案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// app/Services/AIAnalyticsService.php
namespace App\Services;

use Laravel\Boost\Boost;
use Illuminate\Support\Facades\DB;

class AIAnalyticsService
{
public function analyzeSalesData($startDate, $endDate)
{
// 获取销售数据
$salesData = DB::table('sales')
->whereBetween('created_at', [$startDate, $endDate])
->get();

// 转换为数组以便 AI 分析
$dataArray = $salesData->toArray();

// 使用 AI 分析数据
$analysis = Boost::analyzeData(
$dataArray,
'分析销售趋势,识别热销产品,提供改进建议'
);

return $analysis;
}

public function generateReport($analysis)
{
// 生成可视化报告
$report = Boost::generateReport(
$analysis,
'销售数据分析报告',
['charts', 'tables', 'recommendations']
);

return $report;
}
}

7. Laravel AI 最佳实践与建议

7.1 Laravel AI 安全考虑

  1. Laravel AI API 密钥管理

    • 使用环境变量存储 API 密钥
    • 避免在代码中硬编码密钥
    • 定期轮换 API 密钥
  2. Laravel AI 输入验证

    • 对所有用户输入进行严格验证
    • 限制 AI 模型可以访问的数据范围
    • 实施速率限制,防止滥用
  3. Laravel AI 输出过滤

    • 过滤 AI 生成的内容,防止有害输出
    • 对敏感信息进行脱敏处理
    • 实施内容审核机制

7.2 Laravel AI 性能优化

  1. Laravel AI 缓存策略

    • 缓存常见的 AI 响应
    • 使用 Laravel 的缓存系统存储中间结果
    • 实现智能缓存失效策略
  2. Laravel AI 异步处理

    • 对耗时的 AI 操作使用队列
    • 实现后台处理和 WebSocket 实时更新
    • 优化 API 调用频率
  3. Laravel AI 资源管理

    • 合理设置 AI 模型参数,平衡质量和成本
    • 监控 API 使用情况,避免超出配额
    • 实现错误处理和重试机制

7.3 Laravel AI 开发建议

  1. Laravel AI 模块化设计

    • 将 AI 相关功能封装为服务类
    • 使用依赖注入,提高代码可测试性
    • 实现接口抽象,便于切换不同的 AI 服务提供商
  2. Laravel AI 测试策略

    • 为 AI 服务编写单元测试
    • 实现集成测试,验证端到端功能
    • 使用模拟 (mock) 减少对实际 API 的依赖
  3. Laravel AI 监控与日志

    • 记录 AI API 调用和响应
    • 监控性能指标和错误率
    • 实现告警机制,及时发现问题

8. Laravel AI 未来发展趋势

  1. Laravel AI 更深入的框架集成

    • Laravel 核心可能会直接集成 AI 功能
    • 更多开箱即用的 AI 工具和组件
    • 与 Laravel 生态系统的更紧密结合
  2. Laravel AI 本地模型支持

    • 支持在本地部署和运行 AI 模型
    • 混合云-本地 AI 解决方案
    • 更注重数据隐私的实现
  3. Laravel AI 行业特定解决方案

    • 针对不同行业的 AI 工具包
    • 预训练的行业特定模型
    • 垂直领域的最佳实践和模板

9. Laravel AI 总结

Laravel AI 特性为开发者提供了强大的工具,使构建 AI 驱动的应用程序变得更加简单和高效。通过 laravel/ai 官方库、Laravel Boost 和 MCP,开发者可以:

  • 利用 AI 提高开发效率
  • 构建智能、交互式应用
  • 提供个性化的用户体验
  • 自动化繁琐的业务流程

随着 AI 技术的不断发展和 Laravel 生态系统的持续演进,我们可以期待更多创新的 AI 集成方案和工具,为 PHP 开发者带来更多可能性。

10. Laravel AI 参考资料

官方文档

第三方集成

相关教程

技术博客和资源