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.

En esta serie vamos a construir un chatbot profesor de inglés 100% local, sin depender de servicios externos de pago, que podrá:
Cuando digo local, me refiero a que el sistema se ejecutará en tu propio ordenador o servidor, sin enviar datos a servicios externos.
Para este proyecto utilizaremos varias herramientas y librerías que nos permitirán crear un chatbot profesional y escalable:
| Herramienta / Librería | Uso |
|---|---|
| Python 3.11+ | Lenguaje principal del proyecto |
| FastAPI | Framework para crear el backend / endpoints |
| Uvicorn | Servidor para ejecutar la API localmente |
| GPT4All | Modelo de IA local para respuestas inteligentes (Fase 2) |
| LanguageTool | Corrección gramatical automática (Fase 2) |
| requests | Envío de mensajes al endpoint para pruebas |
Todas estas herramientas se usarán de manera local, sin depender de APIs externas de pago.
| Fase | Descripción |
|---|---|
| Fase 1 | Endpoint básico: recibir y responder mensajes |
| Fase 2 | Corrección gramatical con LanguageTool |
| Fase 3 | Guardar historial y progreso del usuario |
| Fase 4 | IA local con GPT4All (respuestas personalizadas) |
| Fase 4.1 | Memoria 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.
cd ~/Projects
mkdir englishTutor
cd englishTutor
python -m venv .venv
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.
#En Linux o Mac:
source .venv/bin/activate
#En Windows:
venv\Scripts\activate
Propósito:
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 carpetaappes un paquete Python.
Es una buena práctica en proyectos profesionales, ya que permite imports claros y una arquitectura escalable cuando el proyecto crece.
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.
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.
uvicorn app.main:app --reload
import requests
url = "http://127.0.0.1:8000/sendMessage"
data = {"text": "Hola bot"}
response = requests.post(url, json=data)
print(response.json())
{
"reply": "Recibí tu mensaje: Hola bot"
}
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í