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.
Pricing
Section titled “Pricing”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.
First request
Section titled “First request”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.
Reasoning
Section titled “Reasoning”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.
Streaming
Section titled “Streaming”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)Unsupported fields
Section titled “Unsupported fields”- A request with
toolsreturns 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 inllmtr_dropped_parameters. If you need a format, describe it in your prompt and validate the answer yourself. nabove 1 is removed and reported the same way; the response carries one choice.- Reasoning fields such as
enable_thinking,thinkingand thereasoningobject have no effect either; they are removed and reported the same way. A suffix on the model id, such as:low, returns 400.
Usage notes
Section titled “Usage notes”- Write your question with its context. On very short prompts with no context the answer can be off-topic.
stopalso applies to the reasoning text. If the sequence appears during reasoning, the request ends before any answer andcontentcomes back empty. Choose a sequence unlikely to appear in reasoning.- Your
systemmessage 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.