Cómo integrar ChatGPT con una aplicación Laravel

Inicio   /   Cómo integrar ChatGPT con una aplicación Laravel

Blog Cómo integrar ChatGPT con una aplicación Laravel


Cómo integrar ChatGPT con una aplicación Laravel

Integrar ChatGPT con una aplicación Laravel es más sencillo de lo que parece. En esta guía completa, te mostraré cómo implementar la API de OpenAI en tu proyecto Laravel paso a paso.

Paso 1: Instalar las Dependencias Necesarias

Primero, necesitamos instalar el paquete de OpenAI para PHP. Ejecuta el siguiente comando en tu terminal:
composer require openai-php/laravel

Paso 2: Configurar las Credenciales de OpenAI

Agrega tu API Key de OpenAI en el archivo .env:
OPENAI_API_KEY=tu-api-key-aqui
Publica el archivo de configuración:
php artisan vendor:publish --provider="OpenAI\\Laravel\\ServiceProvider"

Paso 3: Crear un Controlador para ChatGPT

Crea un controlador que manejará las peticiones a ChatGPT:
php artisan make:controller ChatGPTController
Implementa el método para enviar mensajes:
<?php

namespace App\\Http\\Controllers;

use Illuminate\\Http\\Request;
use OpenAI\\Laravel\\Facades\\OpenAI;

class ChatGPTController extends Controller
{
    public function sendMessage(Request $request)
    {
        $request->validate([
            'message' => 'required|string|max:2000'
        ]);

        $result = OpenAI::chat()->create([
            'model' => 'gpt-3.5-turbo',
            'messages' => [
                ['role' => 'user', 'content' => $request->message],
            ],
        ]);

        return response()->json([
            'response' => $result->choices[0]->message->content
        ]);
    }
}

Paso 4: Configurar las Rutas

Agrega las rutas en routes/web.php o routes/api.php:
use App\\Http\\Controllers\\ChatGPTController;

Route::post('/chat', [ChatGPTController::class, 'sendMessage']);

Paso 5: Crear la Vista

Crea una vista sencilla para interactuar con ChatGPT (resources/views/chat.blade.php):
<!DOCTYPE html>
<html>
<head>
    <title>Chat con GPT</title>
    <meta name="csrf-token" content="{{ csrf_token() }}">
</head>
<body>
    <div id="chat-container">
        <div id="messages"></div>
        <input type="text" id="user-input" placeholder="Escribe tu mensaje...">
        <button onclick="sendMessage()">Enviar</button>
    </div>

    <script>
        async function sendMessage() {
            const input = document.getElementById('user-input');
            const message = input.value;
            
            const response = await fetch('/chat', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').content
                },
                body: JSON.stringify({ message: message })
            });
            
            const data = await response.json();
            document.getElementById('messages').innerHTML += 
                `<p><strong>Tú:</strong> ${message}</p>` +
                `<p><strong>ChatGPT:</strong> ${data.response}</p>`;
            input.value = '';
        }
    </script>
</body>
</html>

Ejemplo Avanzado: Chat con Historial de Conversación

Para mantener el contexto de la conversación, puedes usar sesiones:
public function sendMessageWithHistory(Request $request)
{
    $messages = session('chat_history', []);
    
    $messages[] = ['role' => 'user', 'content' => $request->message];
    
    $result = OpenAI::chat()->create([
        'model' => 'gpt-3.5-turbo',
        'messages' => $messages,
    ]);
    
    $messages[] = [
        'role' => 'assistant', 
        'content' => $result->choices[0]->message->content
    ];
    
    session(['chat_history' => $messages]);
    
    return response()->json([
        'response' => $result->choices[0]->message->content
    ]);
}

Consejos de Optimización

- Implementa caché para respuestas frecuentes - Usa colas (queues) para peticiones pesadas - Establece límites de uso por usuario - Maneja errores apropiadamente con try-catch

Conclusión

Integrar ChatGPT en Laravel es un proceso directo que abre muchas posibilidades para tu aplicación. Con estos ejemplos, puedes crear desde chatbots simples hasta asistentes virtuales complejos. ¡Experimenta y crea soluciones increíbles!

Tags: Laravel, api, php, chatgpt, Desarrollo Web, OpenAI, Integración,

Ultimas Noticias


Uso de Laravel Carbon

La mayoría de las aplicaciones web requ


Laravel Livewire vs Inertia: ¿cuál elegir?

Laravel


Top 5 paquetes Laravel que debes conocer si estás empezando en 2025

Laravel es un framework elegante, modern


Como conseguir mas leads en Facebook Ads

La mejor configuración para Facebook Ad


Protege tus Webhooks en Laravel: seguridad con tokens y logs

Los webhooks son una forma poderosa de r


Como atraer trafico de calidad a tu web

&nbsp;Centrarse en generar más tráfico