Skip to content

Alpie Core

169pi/alpie-core is 169Pi's 32-billion-parameter, 4-bit quantized reasoning model. Use it for maths, code and multi-step logic. On LLMTR it is called through the OpenAI-compatible /v1/chat/completions endpoint with your existing LLMTR API key.

Model Context Inputs Input / Output ($/1M)
169pi/alpie-core 65,000 Text 0.15 / 0.40

Image, audio and file inputs are not accepted; a request with an image returns 400. A single response can reach 16,384 tokens.

Prices are in the table above, in dollars per 1 million tokens. Reasoning tokens are billed as output tokens. There is no separate cache price. Streamed and unstreamed requests are billed the same way; the real token count is in the response's usage field.

Terminal window
curl "$LLMTR_BASE_URL/v1/chat/completions" \
-H "Authorization: Bearer llmtr-your_key" \
-H "Content-Type: application/json" \
-d '{
"model": "169pi/alpie-core",
"messages": [
{ "role": "user", "content": "A train covers 240 km in 3 hours. At the same speed, how many hours does 400 km take? Keep the steps short." }
],
"max_tokens": 4096
}'

The answer is in choices[0].message.content and the model's reasoning is separate, in reasoning_content. If you send no max_tokens, the request runs with the 16,384-token limit. The prompt and the output share one window: on a long prompt max_tokens is lowered to the room left, and a prompt over the window returns 400. The last 1,200 tokens or so of the window cannot be used: a prompt reaching that far can return 502, so shorten it.

The model reasons before every answer and this cannot be turned off. The level cannot be chosen either: reasoning_effort and reasoning: false are refused with 400.

The reasoning text is often longer than the answer itself, so do not set max_tokens low. Treat a response with finish_reason: "length" as incomplete: content can be partial or empty, and the reasoning text is in reasoning_content.

With stream: true the reasoning arrives as delta.reasoning_content and the answer as delta.content:

from openai import OpenAI
client = OpenAI(base_url="https://llmtr.com/v1", api_key="llmtr-your_key")
stream = client.chat.completions.create(
model="169pi/alpie-core",
messages=[{"role": "user", "content": "Find the sum of the numbers from 1 to 100."}],
max_tokens=4096,
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
  • A request with tools returns 400; this model has no tool calling. For work that needs tools, see the models on the Tool Calling page.
  • JSON cannot be requested with response_format. The field is removed from the body and reported in llmtr_dropped_parameters. If you need a format, describe it in your prompt and validate the answer yourself.
  • n above 1 is removed and reported the same way; the response carries one choice.
  • Reasoning fields such as enable_thinking, thinking and the reasoning object have no effect either; they are removed and reported the same way. A suffix on the model id, such as :low, returns 400.
  • Write your question with its context. On very short prompts with no context the answer can be off-topic.
  • stop also applies to the reasoning text. If the sequence appears during reasoning, the request ends before any answer and content comes back empty. Choose a sequence unlikely to appear in reasoning.
  • Your system message applies, but the model may still introduce itself as Alpie Core.
  • If you want a Turkish answer, end your prompt with "Türkçe yanıtla."; without it the answer can come back in English. The reasoning text may come in English.
  • Check numeric results in your own code. In maths answers the result can come wrapped in \boxed{}.

Sources for the model: 169Pi's Alpie Core page and its Hugging Face page.