lmql (language model query language)
**LMQL (Language Model Query Language)** is a specialized **programming language** designed for interacting with large language models in a structured, controllable way. It combines natural language prompting with **programmatic constraints** and **control flow**, giving developers precise control over LLM generation.
**Key Concepts**
- **Query Syntax**: LMQL uses a SQL-like syntax where you write prompts as queries with embedded **constraints** on the generated output.
- **Constraints**: You can specify rules like "output must be one of [list]", "output length must be < N tokens", or "output must match a regex pattern" — and LMQL enforces these during generation.
- **Control Flow**: Supports **Python-like control flow** (if/else, for loops) within prompts, enabling dynamic, branching conversations.
- **Scripted Interaction**: Multi-turn interactions can be scripted as a single LMQL program rather than managing state manually.
**Example Capabilities**
- **Type Constraints**: Force outputs to be valid integers, booleans, or selections from enumerated options.
- **Length Control**: Limit generation to a specific number of tokens or characters.
- **Decoder Control**: Specify decoding strategies (beam search, sampling with temperature) per generation step.
- **Nested Queries**: Compose complex prompts from simpler sub-queries.
**Advantages Over Raw Prompting**
- **Reliability**: Constraints guarantee output format compliance, eliminating the need for post-hoc parsing and retry logic.
- **Efficiency**: Token-level constraint checking can **prune invalid tokens** before they're generated, saving compute.
- **Debugging**: LMQL programs are structured and testable, unlike ad-hoc prompt strings.
**Integration**
LMQL supports multiple backends including **OpenAI**, **HuggingFace Transformers**, and **llama.cpp**. It can be used as a **Python library** or through its own interactive playground.
LMQL represents the trend toward treating LLM interaction as a **programming discipline** rather than an art of prompt crafting.