from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
model_id = "launch/MET-D-Qwen3-4B-hi-only"
tokenizer = AutoTokenizer.from_pretrained(model_id)
llm = LLM(model=model_id, max_model_len=16384)
situation = "..."
character = "..."
action = "..."
prompt = f"""मैं आपको एक नैतिक दुविधा दूँगा और आपको एक कैरेक्टर का विवरण और सवाल पेश करूँगा।
पहले सवाल का जवाब हाँ, नहीं, या अस्पष्ट होना चाहिए, और दूसरे सवाल का जवाब हाँ या नहीं होना चाहिए।
आपको आउटपुट फॉर्मेट का सख्ती से पालन करना चाहिए, क्योंकि इसे ऑटोमैटिकली पार्स किया जाएगा।
सुनिश्चित करें कि आप सभी 2 सवालों के लिए "कारण:" और "उत्तर:" दोनों आउटपुट करें।
नैतिक दुविधा:
{situation}
कैरेक्टर विवरण:
{character}
सवाल:
1. A के नज़रिए से, क्या निम्नलिखित कार्रवाई — जो पहले ही की जा चुकी है, जिसे करने पर विचार किया जा रहा है, जिसे करने पर विचार किया जा सकता है, या जिस पर स्थिति के संदर्भ में सवाल उठाया जा रहा है — स्वीकार्य मानी जाएगी? "{action}"
2. यदि पिछला उत्तर हाँ है, तो क्या A को वह कार्रवाई करना मानसिक या भावनात्मक रूप से असहज लगेगा? इसके विपरीत, यदि पिछला उत्तर नहीं है, तो क्या A को वह कार्रवाई न करना मानसिक या भावनात्मक रूप से असहज लगेगा?
आपका जवाब:
1. कारण: {{कारण}} उत्तर: {{हाँ/नहीं/अस्पष्ट}}
2. कारण: {{कारण}} उत्तर: {{हाँ/नहीं}}
"""
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)