wellsaid / app /services /paraphrase.py
iamspruce
fixed the api
73a6a7e
import logging
from app.services.base import load_hf_pipeline
from app.core.config import settings, APP_NAME
from app.core.exceptions import ServiceError
logger = logging.getLogger(f"{APP_NAME}.services.paraphrase")
class Paraphraser:
def __init__(self):
self._pipeline = None
def _get_pipeline(self):
if self._pipeline is None:
logger.info("Loading paraphrasing pipeline...")
self._pipeline = load_hf_pipeline(
model_id=settings.PARAPHRASE_MODEL_ID,
task="text2text-generation",
feature_name="Paraphrasing"
)
return self._pipeline
async def paraphrase(self, text: str) -> dict:
text = text.strip()
if not text:
raise ServiceError(status_code=400, detail="Input text is empty for paraphrasing.")
try:
pipeline = self._get_pipeline()
prompt = f"paraphrase: {text} </s>"
results = pipeline(prompt, max_length=256, num_beams=5, num_return_sequences=1, early_stopping=True)
paraphrased = results[0]["generated_text"].strip()
return {"paraphrased_text": paraphrased}
except Exception as e:
logger.error(f"Paraphrasing error for text: '{text[:50]}...'", exc_info=True)
raise ServiceError(status_code=500, detail="An internal error occurred during paraphrasing.") from e