Cómo Integrar la API de Deepseek en Laravel
Tutorial sencillo
En este tutorial crearemos una aplicación web responsive usando Laravel que interactúa con la API de Deepseek para obtener respuestas inteligentes. Ideal para implementar un chatbot con diseño adaptable.
Requisitos Previos
- PHP 8.1+
- Composer instalado
- Node.js (para compilar assets)
- Cuenta en Deepseek (para obtener API key)
- Conocimientos básicos de Laravel
Paso 1: Configuración Inicial del Proyecto
Crea un nuevo proyecto Laravel:
composer create-project laravel/laravel deepseek-chat
cd deepseek-chat
Instala Guzzle para peticiones HTTP:
composer require guzzlehttp/guzzle
Paso 2: Crear Controlador y Rutas
Genera el controlador:
php artisan make:controller DeepSeekController
app/Http/Controllers/DeepSeekController.php:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use GuzzleHttp\Client;
class DeepSeekController extends Controller
{
public function index()
{
return view('chat');
}
public function ask(Request $request)
{
$request->validate(['question' => 'required|string|max:500']);
$client = new Client();
try {
$response = $client->post('https://api.deepseek.com/v1/chat/completions', [
'headers' => [
'Authorization' => 'Bearer ' . env('DEEPSEEK_API_KEY'),
'Content-Type' => 'application/json',
],
'json' => [
'model' => 'deepseek-chat',
'messages' => [
['role' => 'user', 'content' => $request->question]
]
]
]);
$responseData = json_decode($response->getBody(), true);
return response()->json([
'answer' => $responseData['choices'][0]['message']['content']
]);
} catch (\Exception $e) {
return response()->json([
'error' => 'Error al conectar con la API: ' . $e->getMessage()
], 500);
}
}
}
routes/web.php:
use App\Http\Controllers\DeepSeekController;
Route::get('/chat', [DeepSeekController::class, 'index'])->name('chat');
Route::post('/ask', [DeepSeekController::class, 'ask'])->name('ask');
Paso 3: Crear Vista Responsive
resources/views/chat.blade.php:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Chat con Deepseek</title>
@vite(['resources/css/app.css', 'resources/js/app.js'])
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-gray-100 min-h-screen">
<div class="container mx-auto p-4 max-w-4xl">
<div class="bg-white rounded-lg shadow-lg p-6">
<h1 class="text-2xl font-bold mb-6 text-gray-800">Chat con Deepseek</h1>
<div id="chat-container" class="mb-4 h-96 overflow-y-auto bg-gray-50 p-4 rounded-lg">
<div id="responses" class="space-y-4"></div>
</div>
<form id="chat-form" class="flex gap-2">
@csrf
<input type="text" id="question"
class="flex-1 p-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500"
placeholder="Escribe tu pregunta..." autocomplete="off">
<button type="submit"
class="bg-blue-500 text-white px-6 py-2 rounded-lg hover:bg-blue-600 transition-colors">
Enviar
</button>
</form>
<div id="loading" class="hidden mt-4 text-gray-500">
Procesando...
</div>
</div>
</div>
<script>
// JavaScript del chat aquí...
</script>
</body>
</html>
Paso 4: Configurar Variables de Entorno
Añade esta línea a tu archivo .env de Laravel:
DEEPSEEK_API_KEY=tu_api_key_aquí
Diseño Responsive
La interfaz utiliza Tailwind CSS con:
- Contenedores con ancho máximo adaptable
- Espacios responsivos (p-4, md:p-6)
- Altura de chat ajustable
- Elementos flexibles para móviles
Consejos Finales
- Usa HTTPS en producción
- Implementa límite de solicitudes
- Añade un indicador de escritura
- Prueba con diferentes modelos de IA
¡Ahora tienes un chatbot inteligente con diseño profesional! ¿Qué preguntas le harás a tu nueva IA?