golem / app.py
golemet's picture
Update app.py
70a22b1 verified
from fastapi import FastAPI, Query
from transformers import pipeline
# Modelo español
model_name = "flax-community/gpt-2-spanish"
# Inicializa Pipeline configurado
generator = pipeline(
"text-generation",
model=model_name, # modelo compatible
max_new_tokens=40, # Suficiente para ~26 palabras sin desbordarse
temperature=1.1, # Favorece creatividad y metáforas
top_p=0.9, # Diversidad controlada
do_sample=True, # Permite variación creativa
repetition_penalty=1.3, # Reduce repeticiones
num_return_sequences=1, # Solo una respuesta
device=-1 # CPU, recomendado en HuggingFace Spaces
)
# Prompt base para moldear el estilo y tono
def generar_respuesta_reflexiva(pregunta):
prompt = f"""
Eres una voz femenina que responde con aire conversacional y reflexivo.
Hablas con metáforas, analogías y comprendes la ley de los contrarios,
estableciendo una síntesis dialéctica profunda. Tu estilo es poesía en
prosa sentenciosa, con un carácter de aforismo y de visión oracular.
Genera exactamente una respuesta breve, cercana a 26 palabras, que
termine en un adjetivo. Evita repeticiones.
Pregunta: {pregunta}
Respuesta:
""".strip()
raw = generator(prompt)[0]["generated_text"]
# (Opcional) Recortar solo la parte tras "Respuesta:"
respuesta = raw.split("Respuesta:")[-1].strip()
# (Opcional) Ajuste leve para intentar aproximar 26 palabras
#palabras = respuesta.split()
#if len(palabras) > 26:
# respuesta = " ".join(palabras[:26])
return respuesta
# Crear app FastAPI
app = FastAPI(title="Golemet API FastAPI")
# Ruta de inicio
@app.get("/")
def root():
return {"message": "Golemet API FastAPI"}
# Ruta reemplazando tu /golemet
@app.get("/golemet")
def procesar_cadena(texto: str = Query("???", description="Texto a generar")):
texto_generado = generar_respuesta_reflexiva(texto)
return {"input": texto, "output": texto_generado}