Construye un Profesor de Inglés Personal con Python - Fase 1

Aprende a crear un profesor de inglés con Python desde cero usando FastAPI. En esta Fase 1 construimos un chatbot local, escalable y profesional paso a paso.

Construye un Profesor de Inglés Personal con Python - Fase 1

En esta serie vamos a construir un chatbot profesor de inglés 100% local, sin depender de servicios externos de pago, que podrá:

  • Corregir tus frases en inglés
  • Recordar tu progreso y personalizar tus lecciones
  • Lo haremos paso a paso, aprendiendo Python y técnicas profesionales mientras construimos un proyecto real.

Cuando digo local, me refiero a que el sistema se ejecutará en tu propio ordenador o servidor, sin enviar datos a servicios externos.

🛠 Herramientas y librerías que usaremos

Para este proyecto utilizaremos varias herramientas y librerías que nos permitirán crear un chatbot profesional y escalable:

Herramienta / LibreríaUso
Python 3.11+Lenguaje principal del proyecto
FastAPIFramework para crear el backend / endpoints
UvicornServidor para ejecutar la API localmente
GPT4AllModelo de IA local para respuestas inteligentes (Fase 2)
LanguageToolCorrección gramatical automática (Fase 2)
requestsEnvío de mensajes al endpoint para pruebas

Todas estas herramientas se usarán de manera local, sin depender de APIs externas de pago.


📚 Tabla de Contenidos



1️⃣ Roadmap del proyecto (Fases):

FaseDescripción
Fase 1Endpoint básico: recibir y responder mensajes
Fase 2Corrección gramatical con LanguageTool
Fase 3Guardar historial y progreso del usuario
Fase 4IA local con GPT4All (respuestas personalizadas)
Fase 4.1Memoria avanzada con vector storage y embeddings: el bot aprende de tus errores y tu progreso

Aunque todavía no implementemos todas las fases, este roadmap muestra el objetivo final del proyecto.


2️⃣ Qué aprenderás en la Fase 1

  • Crear un entorno virtual profesional en Python
  • Instalar FastAPI y librerías básicas
  • Crear un endpoint que reciba y devuelva mensajes
  • Probarlo en consola o con Postman
  • Preparar la base para integrar IA y corrección más adelante


3️⃣ Fase 1 – Endpoint básico

Paso 0: Crear la carpeta del proyecto

cd ~/Projects
mkdir englishTutor     
cd englishTutor        

Paso 1: Preparar el entorno virtual

python -m venv .venv

  • python -m venv: Le dice a Python que cree un entorno virtual.
  • venv: Es el nombre del entorno virtual que se va a crear. Puedes usar otro nombre si quieres.

Propósito: Un entorno virtual es como una “caja aislada” para tu proyecto. Dentro de esta caja puedes instalar librerías sin afectar tu instalación global de Python. Esto evita conflictos entre proyectos.

Paso 1.1: Activar el entorno virtual
#En Linux o Mac:
source .venv/bin/activate

#En Windows:
venv\Scripts\activate

  • Esto activa el entorno virtual que acabas de crear.
  • Verás que tu terminal cambia y muestra algo como (venv) al inicio de la línea. Eso significa que estás dentro del entorno virtual.

Propósito:

  • Todo lo que instales con pip ahora se instalará dentro de este entorno y no globalmente en tu computadora.
  • Esto activa el entorno virtual que acabas de crear.
  • Verás que tu terminal cambia y muestra algo como (venv) al inicio de la línea. Eso significa que estás dentro del entorno virtual.

Paso 2: Estructura profesional del proyecto

englishTutor
/
├── app
 ├── __init__.py
 └── main.py
├── requirements.txt
└── venv

💡 Nota sobre __init__.py
Este archivo puede estar vacío. Su función es indicar que la carpeta app es un paquete Python.
Es una buena práctica en proyectos profesionales, ya que permite imports claros y una arquitectura escalable cuando el proyecto crece.

Paso 2.1: Actualizar requirements.txt

Para que el proyecto sea reproducible y profesional, vamos a crear un archivo requirements.txt con todas las librerías necesarias hasta la Fase 1:

fastapi==0.127.1
uvicorn==0.39.0
requests==2.32.0
  • fastapi: Es el framework web que se usa para crear la API.
  • uvicorn: Es un servidor que ejecuta la aplicación FastAPI. Es rápido y compatible con ASGI.

Esto permite que cualquiera pueda instalar todas las dependencias con un solo comando:

pip install -r requirements.txt

A medida que avancemos en las siguientes fases (por ejemplo, LanguageTool en Fase 2 o GPT4All en Fase 3), iremos agregando nuevas librerías al requirements.txt, manteniendo el proyecto siempre reproducible y limpio.

Paso 3: Crear el primer endpoint

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class Message(BaseModel):
    text: str


@app.post("/sendMessage")
async def send_message(msg: Message):
    return {"reply": f"Recibí tu mensaje: {msg.text}"}

🔹 ¿Qué es Pydantic?

Pydantic es una librería de Python que sirve para definir modelos de datos con validación y tipado automático. En pocas palabras: Ayuda a asegurar que los datos que se reciben o se envían cumplen con la forma que se espera.

  • Es muy usada con FastAPI, porque FastAPI la integra automáticamente para:
    • Validar los datos que recibes en JSON.
    • Convertirlos en objetos de Python.
    • Generar documentación automática para tu API.

Paso 4: Probar el endpoint

uvicorn app.main:app --reload
  • Postman o script Python:
import requests
url = "http://127.0.0.1:8000/sendMessage"
data = {"text": "Hola bot"}
response = requests.post(url, json=data)
print(response.json())
  • Resultado esperado:
{
  "reply": "Recibí tu mensaje: Hola bot"
}

🚀 ¿Qué sigue?

En la 🔗 fase 2 integraremos corrección gramatical automática usando LanguageTool, para que el bot no solo responda, sino que también te ayude a mejorar tu inglés.

Este endpoint es la base sobre la que construiremos todo lo demás.

Si quieres ir a la fase 2 haz click aquí