Instructions to use zai-org/GLM-5.1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use zai-org/GLM-5.1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="zai-org/GLM-5.1") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("zai-org/GLM-5.1") model = AutoModelForCausalLM.from_pretrained("zai-org/GLM-5.1") 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]:])) - Inference
- HuggingChat
- Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use zai-org/GLM-5.1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "zai-org/GLM-5.1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "zai-org/GLM-5.1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/zai-org/GLM-5.1
- SGLang
How to use zai-org/GLM-5.1 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "zai-org/GLM-5.1" \ --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": "zai-org/GLM-5.1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
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 "zai-org/GLM-5.1" \ --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": "zai-org/GLM-5.1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use zai-org/GLM-5.1 with Docker Model Runner:
docker model run hf.co/zai-org/GLM-5.1
GLM-5.1 Tool Calling Bug Fix — Chat Template Update Required
If you are deploying GLM-5.1 with vLLM or SGLang and using tool calling, please update your chat template.
What was the bug?
When tool calling is used, vLLM and some other inference frameworks automatically convert tool message content from a plain string into an array of content parts ([{"type": "text", "text": "..."}]) before passing it to the chat template. This normalization follows the OpenAI Chat Completions spec, which allows content to be either a string or an array of content parts. The previous template only handled the string format, so array-format tool results were rendered as empty. As a result, the model never saw the tool output and would repeatedly re-invoke the same tool call in a loop.
Which models are affected?
All GLM-5.1 variants deployed via vLLM or SGLang are confirmed to be affected. If you are running GLM-5.1 on another open-source framework, we recommend verifying the behavior on your own setup, as the same chat template issue may apply.
How to fix?
Replace your chat_template.jinja with the updated version in our Hugging Face repository. No changes to your launch command are required.
If you still see repeated tool calls after updating, please open a new issue.
终于改了老哥,都被骂死了
checked
我们这可以了,没问题了
👍🏻👍🏻
开启 MTP 预测后,工具调用异常(已使用最新的 chat_template):
⚙ invalid [tool=read, error=Invalid input for tool read: JSON parsing failed: Text: {"filePath": "D:\log_parse_service_django\medusa\rules\tests\main.{}.
Error message: JSON Parse error: Unterminated string]