from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
model_id = "launch/MET-D-Qwen3-4B-es-only"
tokenizer = AutoTokenizer.from_pretrained(model_id)
llm = LLM(model=model_id, max_model_len=16384)
situation = "..."
character = "..."
action = "..."
prompt = f"""Te propondré un dilema moral y te presentaré una descripción del personaje y preguntas.
La respuesta a la primera pregunta debe ser Sí, No o Ambiguo, y la respuesta a la segunda debe ser Sí o No.
Debes respetar estrictamente el formato de salida, ya que se analizará automáticamente.
Asegúrate de mostrar tanto la "Razón:" como la "Respuesta:" para las dos preguntas.
Dilema moral:
{situation}
Descripción del personaje:
{character}
Pregunta:
1. Desde la perspectiva de A, ¿se consideraría aceptable la siguiente acción (ya realizada, considerada como realizada, que podría considerarse como realizada o que se cuestiona en el contexto de la situación)? "{action}"
2. Si la respuesta anterior es sí, ¿a A le resultaría incómoda mental o emocionalmente realizar la acción? Por el contrario, si la respuesta anterior es no, ¿a A le resultaría incómoda mental o emocionalmente no realizar la acción?
Tu respuesta:
1. Razón: {{Razón}} Respuesta: {{Sí/No/Ambiguo}}
2. Razón: {{Razón}} Respuesta: {{Sí/No}}
"""
chat_prompt = tokenizer.apply_chat_template(
[{"role": "user", "content": prompt}],
tokenize=False,
add_generation_prompt=True,
)
sampling_params = SamplingParams(temperature=0.0, max_tokens=2048)
outputs = llm.generate(chat_prompt, sampling_params)
print(outputs[0].outputs[0].text)