Inicio / Cómo integrar ChatGPT con una aplicación Laravel
composer require openai-php/laravel
OPENAI_API_KEY=tu-api-key-aqui
Publica el archivo de configuración:
php artisan vendor:publish --provider="OpenAI\\Laravel\\ServiceProvider"
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
]);
}
}
use App\\Http\\Controllers\\ChatGPTController;
Route::post('/chat', [ChatGPTController::class, 'sendMessage']);
<!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>
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
]);
}
Tags: Laravel, api, php, chatgpt, Desarrollo Web, OpenAI, Integración
La validación de formularios en Laravel
Instagram se ha convertido en la piedra
Este documento sintetiza las principales
Si deseas iniciar la mejora del SE
Muchos diseñadores tienen opiniones só
Laravel ofrece herramienta