LMQL is a query language designed specifically for large language models (LLMs). It combines the natural language prompts with the expressiveness of Python to facilitate the interaction with LLMs.
The tool provides various features such as constraints, debugging, retrieval, control flow, and support for 🤗 Transformers, which make it easier to prompt responses from the LLM.
LMQL offers a broad range of pre-built prompts for tasks such as telling a joke, generating a packing list, searching Wikipedia, and chatting with a bot.
In addition to providing high-level constraints, LMQL also allows users to control the generation process programmatically by supporting regular Python control flow statements.
The tool generates the required tokens automatically and validates the produced sequence as soon as the provided validation condition is definitively violated.LMQL also supports arbitrary Python code in the prompt clause, enabling dynamic prompts and text processing.
The Scripted Beam Search feature decodes the expert name and answer jointly, exploring multiple possible answers. LMQL supports Python’s assert to check the correctness of the generated output, which can be useful for evaluating data sets.
Overall, LMQL is a powerful tool that simplifies the interaction with LLMs and enables Python developers to work with natural language prompts more efficiently.