INTRODUCCIÓN A LARAVEL AI SDK: LA FORMA OFICIAL DE INTEGRAR IA EN LARAVEL

Laravel AI SDK es el paquete oficial de Laravel ("laravel/ai") que permite integrar fácilmente Inteligencia Artificial con: OpenAI, Gemini, Claude, Grok, etc. de forma unificada y elegante.

Instalación

Ejecutar los siguientes comandos en el proyecto Laravel:

composer require laravel/ai
Publicar la configuración y las migraciones:


php artisan vendor:publish --provider="Laravel\Ai\AiServiceProvider"

php artisan migrate
Las migraciones crean tablas para guardar historial de conversaciones.

Configuración (.env)

Agrega las claves API en el fichero ".env":

GEMINI_API_KEY=AIzaSy...                    # Para Gemini
OPENAI_API_KEY=sk-...                       # Si usas OpenAI
ANTHROPIC_API_KEY=sk-ant-...                # Claude
XAI_API_KEY=...                             # Grok

Crear el primer "Agent"

Un "Agent" es como un "asistente inteligente" con personalidad e instrucciones:

php artisan make:agent AsistenteBasico
El comando anterior crea el archivo en "app/Ai/Agents/AsistenteBasico.php":

namespace App\Ai\Agents;

use Laravel\Ai\Contracts\Agent;
use Laravel\Ai\Promptable;

class AsistenteBasico implements Agent
{
    use Promptable;

    public function instructions(): string
    {
        return "Eres un asistente útil, amigable y experto en Laravel. 
                Responde siempre en español de forma clara y con ejemplos cuando sea posible.";
    }

    // Opcional: Forzar un proveedor específico
    public function provider(): string
    {
        return 'gemini';        // gemini, openai, anthropic, etc.
    }
}

Uso Básico en un Controlador

namespace App\Http\Controllers;

use App\Ai\Agents\AsistenteBasico;
use Illuminate\Http\Request;

class AiController extends Controller
{
    public function preguntar(Request $request)
    {
        $request->validate([
            'mensaje' => 'required|string|max:2000',
        ]);

        $respuesta = (new AsistenteBasico())
            ->model('gemini-2.5-flash')     // gemini-2.5-pro, gpt-4o-mini, etc.
            ->prompt($request->mensaje);

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

Crear la Ruta

// routes/web.php o api.php
use App\Http\Controllers\AiController;

Route::post('/ai/preguntar', [AiController::class, 'preguntar']);
Probar con Postman o un formulario:json:

{
    "mensaje": "¿Cómo se crea un modelo en Laravel?"
}

Otras Funciones Básicas Útiles

  • Streaming (respuesta en tiempo real):

    return (new AsistenteBasico())
        ->model('gemini-2.5-flash')
        ->stream($request->mensaje);
    
  • Cambiar modelo fácilmente:

    ->model('gemini-2.5-pro')
    
  • Con historial de conversación (memoria):

    $respuesta = (new AsistenteBasico())
        ->conversation($idConversacion)   // ID de la tabla agent_conversations
        ->prompt($mensaje);
    
  • Generar imagen (básico):

    $imagen = \Laravel\Ai\Image::of('Un logo moderno para una app de tareas con colores azul y blanco')
        ->provider('gemini')
        ->generate();