0 Comments

Bienvenidos,

para crear un chatbot en Django utilizando Python y Anaconda implica varios pasos, desde configurar el entorno hasta implementar las funcionalidades del chatbot. Sin embargo, he reducido los pasos y les he ajustado para que se vea lo mas simple posible.

Aquí te dejo una guía paso a paso para que puedas construir un chatbot básico en Django.

Paso 1: Configuración del Entorno

  1. Instalar Anaconda: Si no tienes Anaconda instalado, puedes descargarlo e instalarlo desde Anaconda.
  2. Crear un entorno virtual: Abre Anaconda Prompt y crea un entorno virtual para tu proyecto.

conda create --name chatbot_env python=3.10
conda activate chatbot_env

3. Dentro de la terminal se debe instalar Django:

pip install django

Paso 2: Crear un Proyecto Django

  1. Crear el proyecto: Dentro de la terminal se debe crear el proyecto django, para poder tener el entorno de trabajo disponible para usar el python.

django-admin startproject chatbot_project

cd chatbot_project

2. Creamos una aplicación:

python manage.py startapp chatbot

3. Agregar la aplicación al archivo settings.py:

INSTALLED_APPS = [

...

'chatbot',

]

Paso 3: Crear el Chatbot

  1. Crear un modelo para el chatbot: En el archivo models.py de la aplicación chatbot:

from django.db import models

class ChatMessage(models.Model):

user_message = models.CharField(max_length=255)

bot_response = models.CharField(max_length=255)

def __str__(self):

  return f'User: {self.user_message} - Bot: {self.bot_response}'

2. Migrar el modelo: Aquí se crearán las tablas en base de datos para poder ser usadas por el sistema, ya que esto se debe usar.

python manage.py makemigrations
python manage.py migrate

Crear vistas para el chatbot:

En el archivo views.py de la aplicación chatbot:

from django.shortcuts import render
from django.http import JsonResponse
from .models import ChatMessage

def chat(request):
return render(request, 'chatbot/chat.html')

def get_response(request):
user_message = request.GET.get('message')
bot_response = generate_response(user_message)
ChatMessage.objects.create(user_message=user_message, bot_response=bot_response)
return JsonResponse({'response': bot_response})

def generate_response(user_message):
# Lógica simple de respuesta del chatbot
if 'hello' in user_message.lower():
return 'Hello! How can I help you?'
elif 'bye' in user_message.lower():
return 'Goodbye! Have a nice day!'
else:
return 'I am sorry, I do not understand that.'

4. Configurar las URLs:

En el archivo urls.py de la aplicación chatbot:

from django.urls import path
from . import views

urlpatterns = [
path('', views.chat, name='chat'),
path('get_response/', views.get_response, name='get_response'),
]

Y en el archivo urls.py del proyecto principal:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
path('admin/', admin.site.urls),
path('chatbot/', include('chatbot.urls')),
]

Paso 4: Crear Plantillas HTML

Aquí se va a crear la plantilla para la interfaz del chatbot:
Se crea un directorio templates/chatbot dentro de la aplicación chatbot y agrega un archivo chat.html:

<!DOCTYPE html>
<html>
<head>
<title>Chatbot</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<h1>Chatbot</h1>
<div id="chat-box">
<div id="chat-log"></div>
<input type="text" id="user-message" placeholder="Type your message...">
<button id="send-message">Send</button>
</div>

<script>
$(document).ready(function() {
$('#send-message').click(function() {
var userMessage = $('#user-message').val();
$.get('/chatbot/get_response/', {message: userMessage}, function(data) {
$('#chat-log').append('<div>User: ' + userMessage + '</div>');
$('#chat-log').append('<div>Bot: ' + data.response + '</div>');
$('#user-message').val('');
});
});
});
</script>
</body>
</html>

Paso 5: Ejecutar el Servidor y Probar el Chatbot

  1. Ejecutar el servidor de desarrollo:

python manage.py runserver

2. Abre tu navegador web y ve a http://127.0.0.1:8000/chatbot/ para interactuar con el chatbot.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Related Posts