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


Las Mejoras Destacadas en Laravel 11

Laravel 11, la última versión del popu


📝 Cómo Crear un Blog Optimizado para SEO con Laravel

Laravel permite construir un blo


Ejecute Bash Shell en Docker de 5 formas diferentes

La respuesta cortaPara iniciar un shell


¿Qué es el marketing omnicanal?

Si usted es como muchos especialistas en


Cómo optimizar las descripciones de los vídeos de YouTube para el SEO

YouTube, el gigante del contenido de vid


¿Cómo puede Headless CMS ayudar a una empresa?

Cuando se trata de la web, los avances t