Aprende a añadir corrección gramatical automática a un chatbot en Python usando LanguageTool. Fase 2: mejora tu profesor de inglés local con FastAPI.

En esta fase agregamos corrección gramatical automática al chatbot usando LanguageTool, una librería open-source que puede ejecutarse localmente. Ahora el bot no solo recibe tu mensaje, sino que también te ayuda a escribir correctamente.
Todas estas herramientas se usarán de manera local, sin depender de APIs externas de pago.
Esta librería puede funcionar con servidor local si quieres evitar internet. Para proyectos simples, el modo por defecto está bien.
Para mantener el proyecto reproducible, vamos a actualizar el archivo requirements.txt con todas las librerías que necesitamos hasta ahora:
fastapi==0.115.0
uvicorn==0.22.0
requests==2.32.0
//Añadimos language-tool-python
language-tool-python==2.9.5
Esto permite instalar todas las dependencias con un solo comando:
pip install -r requirements.txt
En fases futuras, cuando agreguemos GPT4All, pyttsx3, SpeechRecognition o cualquier otra librería, simplemente la añadiremos al requirements.txt y el proyecto seguirá siendo totalmente reproducible.
Ahora vamos a modificar el endpoint para que, además de responder, corrija tu inglés.
# app/main.py
from fastapi import FastAPI
from pydantic import BaseModel, Field
import language_tool_python
app = FastAPI()
tool = language_tool_python.LanguageTool('en-US')
class Message(BaseModel):
text: str = Field(..., min_length=1)
@app.post("/sendMessage")
async def send_message(msg: Message):
matches = tool.check(msg.text)
if not matches:
return {
"original": msg.text,
"corrected": msg.text,
"message": "Your sentence is correct!"
}
corrected_text = language_tool_python.utils.correct(msg.text, matches)
return {
"original": msg.text,
"corrected": corrected_text,
"message": "We found some mistakes and corrected them."
}
import requests
url = "http://127.0.0.1:8000/sendMessage"
data = {"text": "I has a apple"}
response = requests.post(url, json=data)
print(response.json())
{
"original": "I has a apple",
"corrected": "I have an apple"
}
💡 Nota:
En la Fase 3 agregaremos historial de usuario y progreso, además de comenzar a darle respuestas inteligentes con GPT4All.
Si quieres ir a la fase 3 haz click aquí