Proyecto 3: API de Análisis de Sentimientos con Transformador Ajustado
Paso 4: Construir la Aplicación FastAPI
Desarrollar una API basada en FastAPI para servir el modelo ajustado. FastAPI es un marco web moderno y rápido para construir APIs con Python que ofrece varias ventajas para nuestro servicio de análisis de sentimientos:
- Documentación automática de API usando OpenAPI (Swagger) y ReDoc
- Validación de solicitudes y verificación de tipos incorporada
- Alto rendimiento con soporte asíncrono
- Fácil integración con modelos de aprendizaje automático
Nuestra API manejará las solicitudes entrantes que contengan datos de texto, los procesará a través de nuestro modelo de análisis de sentimientos ajustado y devolverá respuestas estructuradas con predicciones de sentimientos y puntuaciones de confianza.
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from transformers import pipeline
# Initialize FastAPI
app = FastAPI()
# Load fine-tuned model and pipeline
sentiment_pipeline = pipeline("sentiment-analysis", model="./results")
# Define request model
class SentimentRequest(BaseModel):
text: str
# Define API endpoint
@app.post("/predict")
def predict_sentiment(request: SentimentRequest):
try:
prediction = sentiment_pipeline(request.text)
return {"text": request.text, "sentiment": prediction[0]["label"], "confidence": prediction[0]["score"]}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
Analicemos este código:
1. Importaciones y Configuración
- El código importa FastAPI para crear la API, HTTPException para el manejo de errores, BaseModel de pydantic para la validación de solicitudes, y el pipeline de transformers para el análisis de sentimientos
2. Inicialización de la API
- Crea una nueva instancia de la aplicación FastAPI
- Inicializa el pipeline de análisis de sentimientos usando el modelo ajustado desde el directorio "./results"
3. Definición del Modelo de Solicitud
- Define una clase SentimentRequest usando BaseModel de Pydantic
- Especifica que las solicitudes deben contener un campo 'text' como cadena de texto
4. Punto Final de la API
- Crea un punto final POST en "/predict"
- Toma un objeto SentimentRequest como entrada
- Devuelve tres elementos de información:
- El texto original de entrada
- La etiqueta de sentimiento predicha
- Un puntaje de confianza para la predicción
5. Manejo de Errores
- Implementa manejo de errores try-catch
- Devuelve un código de estado 500 con detalles del error si algo sale mal
Esta API puede ser probada localmente usando el servidor uvicorn, y puedes enviar solicitudes de prueba usando herramientas como curl o Postman.
Paso 4: Construir la Aplicación FastAPI
Desarrollar una API basada en FastAPI para servir el modelo ajustado. FastAPI es un marco web moderno y rápido para construir APIs con Python que ofrece varias ventajas para nuestro servicio de análisis de sentimientos:
- Documentación automática de API usando OpenAPI (Swagger) y ReDoc
- Validación de solicitudes y verificación de tipos incorporada
- Alto rendimiento con soporte asíncrono
- Fácil integración con modelos de aprendizaje automático
Nuestra API manejará las solicitudes entrantes que contengan datos de texto, los procesará a través de nuestro modelo de análisis de sentimientos ajustado y devolverá respuestas estructuradas con predicciones de sentimientos y puntuaciones de confianza.
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from transformers import pipeline
# Initialize FastAPI
app = FastAPI()
# Load fine-tuned model and pipeline
sentiment_pipeline = pipeline("sentiment-analysis", model="./results")
# Define request model
class SentimentRequest(BaseModel):
text: str
# Define API endpoint
@app.post("/predict")
def predict_sentiment(request: SentimentRequest):
try:
prediction = sentiment_pipeline(request.text)
return {"text": request.text, "sentiment": prediction[0]["label"], "confidence": prediction[0]["score"]}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
Analicemos este código:
1. Importaciones y Configuración
- El código importa FastAPI para crear la API, HTTPException para el manejo de errores, BaseModel de pydantic para la validación de solicitudes, y el pipeline de transformers para el análisis de sentimientos
2. Inicialización de la API
- Crea una nueva instancia de la aplicación FastAPI
- Inicializa el pipeline de análisis de sentimientos usando el modelo ajustado desde el directorio "./results"
3. Definición del Modelo de Solicitud
- Define una clase SentimentRequest usando BaseModel de Pydantic
- Especifica que las solicitudes deben contener un campo 'text' como cadena de texto
4. Punto Final de la API
- Crea un punto final POST en "/predict"
- Toma un objeto SentimentRequest como entrada
- Devuelve tres elementos de información:
- El texto original de entrada
- La etiqueta de sentimiento predicha
- Un puntaje de confianza para la predicción
5. Manejo de Errores
- Implementa manejo de errores try-catch
- Devuelve un código de estado 500 con detalles del error si algo sale mal
Esta API puede ser probada localmente usando el servidor uvicorn, y puedes enviar solicitudes de prueba usando herramientas como curl o Postman.
Paso 4: Construir la Aplicación FastAPI
Desarrollar una API basada en FastAPI para servir el modelo ajustado. FastAPI es un marco web moderno y rápido para construir APIs con Python que ofrece varias ventajas para nuestro servicio de análisis de sentimientos:
- Documentación automática de API usando OpenAPI (Swagger) y ReDoc
- Validación de solicitudes y verificación de tipos incorporada
- Alto rendimiento con soporte asíncrono
- Fácil integración con modelos de aprendizaje automático
Nuestra API manejará las solicitudes entrantes que contengan datos de texto, los procesará a través de nuestro modelo de análisis de sentimientos ajustado y devolverá respuestas estructuradas con predicciones de sentimientos y puntuaciones de confianza.
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from transformers import pipeline
# Initialize FastAPI
app = FastAPI()
# Load fine-tuned model and pipeline
sentiment_pipeline = pipeline("sentiment-analysis", model="./results")
# Define request model
class SentimentRequest(BaseModel):
text: str
# Define API endpoint
@app.post("/predict")
def predict_sentiment(request: SentimentRequest):
try:
prediction = sentiment_pipeline(request.text)
return {"text": request.text, "sentiment": prediction[0]["label"], "confidence": prediction[0]["score"]}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
Analicemos este código:
1. Importaciones y Configuración
- El código importa FastAPI para crear la API, HTTPException para el manejo de errores, BaseModel de pydantic para la validación de solicitudes, y el pipeline de transformers para el análisis de sentimientos
2. Inicialización de la API
- Crea una nueva instancia de la aplicación FastAPI
- Inicializa el pipeline de análisis de sentimientos usando el modelo ajustado desde el directorio "./results"
3. Definición del Modelo de Solicitud
- Define una clase SentimentRequest usando BaseModel de Pydantic
- Especifica que las solicitudes deben contener un campo 'text' como cadena de texto
4. Punto Final de la API
- Crea un punto final POST en "/predict"
- Toma un objeto SentimentRequest como entrada
- Devuelve tres elementos de información:
- El texto original de entrada
- La etiqueta de sentimiento predicha
- Un puntaje de confianza para la predicción
5. Manejo de Errores
- Implementa manejo de errores try-catch
- Devuelve un código de estado 500 con detalles del error si algo sale mal
Esta API puede ser probada localmente usando el servidor uvicorn, y puedes enviar solicitudes de prueba usando herramientas como curl o Postman.
Paso 4: Construir la Aplicación FastAPI
Desarrollar una API basada en FastAPI para servir el modelo ajustado. FastAPI es un marco web moderno y rápido para construir APIs con Python que ofrece varias ventajas para nuestro servicio de análisis de sentimientos:
- Documentación automática de API usando OpenAPI (Swagger) y ReDoc
- Validación de solicitudes y verificación de tipos incorporada
- Alto rendimiento con soporte asíncrono
- Fácil integración con modelos de aprendizaje automático
Nuestra API manejará las solicitudes entrantes que contengan datos de texto, los procesará a través de nuestro modelo de análisis de sentimientos ajustado y devolverá respuestas estructuradas con predicciones de sentimientos y puntuaciones de confianza.
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from transformers import pipeline
# Initialize FastAPI
app = FastAPI()
# Load fine-tuned model and pipeline
sentiment_pipeline = pipeline("sentiment-analysis", model="./results")
# Define request model
class SentimentRequest(BaseModel):
text: str
# Define API endpoint
@app.post("/predict")
def predict_sentiment(request: SentimentRequest):
try:
prediction = sentiment_pipeline(request.text)
return {"text": request.text, "sentiment": prediction[0]["label"], "confidence": prediction[0]["score"]}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
Analicemos este código:
1. Importaciones y Configuración
- El código importa FastAPI para crear la API, HTTPException para el manejo de errores, BaseModel de pydantic para la validación de solicitudes, y el pipeline de transformers para el análisis de sentimientos
2. Inicialización de la API
- Crea una nueva instancia de la aplicación FastAPI
- Inicializa el pipeline de análisis de sentimientos usando el modelo ajustado desde el directorio "./results"
3. Definición del Modelo de Solicitud
- Define una clase SentimentRequest usando BaseModel de Pydantic
- Especifica que las solicitudes deben contener un campo 'text' como cadena de texto
4. Punto Final de la API
- Crea un punto final POST en "/predict"
- Toma un objeto SentimentRequest como entrada
- Devuelve tres elementos de información:
- El texto original de entrada
- La etiqueta de sentimiento predicha
- Un puntaje de confianza para la predicción
5. Manejo de Errores
- Implementa manejo de errores try-catch
- Devuelve un código de estado 500 con detalles del error si algo sale mal
Esta API puede ser probada localmente usando el servidor uvicorn, y puedes enviar solicitudes de prueba usando herramientas como curl o Postman.