File size: 1,986 Bytes
bb66c2b
3599e1f
 
4e7cbb0
3599e1f
 
c03822b
4e7cbb0
 
c2e1751
 
 
 
 
 
 
 
4e7cbb0
3599e1f
c03822b
 
 
 
c2e1751
 
 
 
 
c03822b
 
 
 
0a520be
 
 
 
 
 
70a22b1
 
 
0a520be
 
3599e1f
4e7cbb0
 
3599e1f
4e7cbb0
 
 
 
3599e1f
4e7cbb0
bb66c2b
70a22b1
c2e1751
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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}