laravel 13 引入了全新的应用启动流程、基于闭包的中间件支持以及更直观的 artisan 命令结构,同时通过 laravel ai 包提供了与 openai 等模型的集成能力。开发者只需安装 laravel/ai 包并配置 api 密钥,即可在应用中直接使用 ai::prompt() 方法调用大语言模型。内置的 ai 功能并非完全黑盒,而是通过清晰的接口暴露给业务逻辑,允许开发者自定义提示词和参数。

如何配置并使用 Laravel AI 进行文本生成?
要使用 Laravel 13 的内置 AI 能力,首先需要确保项目已升级到最新版本,并通过 Composer 安装 laravel/ai 依赖。安装完成后,发布配置文件以设置你的 OpenAI API 密钥或其他支持的提供商凭证。核心用法是通过 AI 门面或 AI 类实例调用 prompt() 方法,传入字符串提示词即可获得响应结果。

composer require laravel/ai
php artisan ai:install
// .env 中添加 OPENAI_API_KEY=sk-xxx
use Laravel\AI\Facades\AI;
$response = AI::prompt('Write a short poem about Laravel');
echo $response;
上述代码展示了最基础的调用方式。执行后,$response 将包含模型生成的完整文本。若需指定模型,可在 prompt() 方法中传入第二个参数或使用链式调用配置选项。注意,API 调用受网络环境和密钥配额限制,实际开发中应加入异常处理逻辑。
新启动流程对中间件注册有何影响?
Laravel 13 重构了应用启动顺序,使得中间件的注册更加灵活。现在可以在 bootstrap/app.php 中直接定义基于闭包的中间件,而无需创建独立的类文件。这种变化简化了轻量级中间件的编写,例如用于添加请求头或记录日志的场景。原有的 Kernel.php 配置依然有效,但新项目推荐采用新的注册方式以获得更好的可维护性。
Laravel Cloud(cloud.laravel.com)。此技能用于处理所有 Laravel Cloud 请求,包括搜索和读取数据。只要任务涉及 Laravel Cloud,即使用此技能。

// bootstrap/app.php
$app->middleware([
function ($request, $next) {
$response = $next($request);
$response->headers->set('X-Laravel-Version', '13');
return $response;
}
]);
// 或者在路由中使用
Route::get('/test', function () {
return 'Hello';
})->middleware(function ($request, $next) {
return $next($request);
});
这段代码演示了如何在 bootstrap/app.php 中注册一个匿名中间件。它会在每个请求处理后添加一个自定义响应头。相比传统方式,这种方式减少了文件数量,使中间件逻辑更贴近其使用位置。对于复杂逻辑,仍建议使用类中间件以保持代码结构清晰。
当 AI 模型返回空值或错误时该如何处理?
在实际调用 AI::prompt() 时,可能会遇到网络超时、API 限流或模型返回空内容的情况。此时应捕获 Laravel\AI\Exceptions\AIException 异常,并根据业务需求提供默认值或重试机制。建议在使用 AI 功能前检查环境变量中的密钥是否已正确配置,避免运行时出现未定义行为。
try {
$result = AI::prompt('Generate a random quote');
if (empty($result)) {
throw new Exception('Empty response from AI');
}
} catch (AIException $e) {
Log::error('AI call failed: ' . $e->getMessage());
$result = 'Default quote when AI fails';
}
该示例展示了完整的错误处理流程。首先尝试获取 AI 响应,若结果为空则抛出异常;若发生底层通信错误,则捕获特定异常并记录日志。最终赋予一个默认值以确保程序继续运行。这种模式适用于对可用性要求较高的场景,如自动生成摘要或分类标签。










