Menu iconMenu icon
NLP con Transformadores: Técnicas Avanzadas y Aplicaciones Multimodales

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.