SatorTenet/storyengine-dataset
Updated • 24
How to use SatorTenet/StoryEngine-2B with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("text-generation", model="SatorTenet/StoryEngine-2B")
messages = [
{"role": "user", "content": "Who are you?"},
]
pipe(messages) # Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("SatorTenet/StoryEngine-2B")
model = AutoModelForCausalLM.from_pretrained("SatorTenet/StoryEngine-2B")
messages = [
{"role": "user", "content": "Who are you?"},
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=40)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:]))How to use SatorTenet/StoryEngine-2B with vLLM:
# Install vLLM from pip:
pip install vllm
# Start the vLLM server:
vllm serve "SatorTenet/StoryEngine-2B"
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "SatorTenet/StoryEngine-2B",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'docker model run hf.co/SatorTenet/StoryEngine-2B
How to use SatorTenet/StoryEngine-2B with SGLang:
# Install SGLang from pip:
pip install sglang
# Start the SGLang server:
python3 -m sglang.launch_server \
--model-path "SatorTenet/StoryEngine-2B" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "SatorTenet/StoryEngine-2B",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'docker run --gpus all \
--shm-size 32g \
-p 30000:30000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env "HF_TOKEN=<secret>" \
--ipc=host \
lmsysorg/sglang:latest \
python3 -m sglang.launch_server \
--model-path "SatorTenet/StoryEngine-2B" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "SatorTenet/StoryEngine-2B",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'How to use SatorTenet/StoryEngine-2B with Docker Model Runner:
docker model run hf.co/SatorTenet/StoryEngine-2B
StoryEngine-2B is a fine-tuned version of Qwen/Qwen3.5-2B for interactive fiction and guided story experiences.
The model guides users through immersive narrative experiences, presenting vivid scenes and meaningful choices at each step.
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "SatorTenet/StoryEngine-2B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, dtype=torch.float16, device_map="auto")
messages = [
{
"role": "system",
"content": (
"You are StoryEngine — an interactive fiction model.\n"
"Genre: Dark Fantasy | Tone: tense, mysterious\n"
"Scene: 1/5\nVitality: 100 | Saga: 0"
),
},
{"role": "user", "content": "Start a new story."},
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=300, temperature=0.8, top_p=0.9, do_sample=True)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
ollama run storyengine:2b
The model was trained on stories spanning multiple genres including:
Apache 2.0 — same as the base model.