LMQL
代码编程与辅助面向大语言模型交互的查询编程语言,用类型、模板与约束描述输出,配优化运行时,让提示词更稳健、更可复用,跨本地与云端后端。
界面预览
详细介绍
LMQL(Language Model Query Language)是一门面向大语言模型交互的编程语言,官网把它定义为「Robust and modular LLM prompting using types, templates, constraints and an optimizing runtime」——用类型、模板、约束与一个带优化能力的运行时来写提示词。它把提示词从「拼字符串」升级为「写程序」:先描述清楚期望的输出,再交给运行时去执行,从而让模型输出更可控、更稳健、更可复用。代码风格类似 Python 装饰器——在函数上用 @lmql.query 声明一段带约束的查询,约束可以是长度、枚举或任意 Python 表达式,随后直接调用;提示与逻辑天然组织在一起,便于复用与版本管理。优化运行时会在生成过程中按约束裁剪搜索空间,而不是生成后再校验,这是它与普通模板提示在机制上的关键差异,也是输出稳定的来源。
核心能力
- 约束式生成:对生成结果施加类型与格式约束(如长度、枚举、正则等),从源头减少解析失败与乱答,不必依赖正则与重试兜底。
- 模板与模块化提示:提示词可以拆成带类型的模块,大型提示逻辑可维护、可复用,团队协作时不再靠复制粘贴与版本混乱。
- 嵌套查询(Nested Queries):官方称之为「把过程式编程带进提示词编写」,允许一个查询内嵌套调用另一个查询,组合出更复杂的多步行为。
- 跨后端运行:同时支持 llama.cpp、OpenAI、Transformers 等后端,本地模型与云端 API 用同一套语言描述,迁移成本低。
- 执行轨迹(Execution Trace):记录提示词的实际执行过程,便于调试「模型为什么这样输出」,把提示词调优从玄学变成可观察的过程。
适合谁
要在生产系统里稳定调用大模型的工程师,尤其是需要严格控制输出结构、又不想靠正则兜底的团队;做提示词工程研究、教学或实验的个人也适合。项目开源,Docs、Blog、Research 与 Playground 齐全,官方还通过开发者调查驱动下一版本的方向,社区参与度高。
注意事项
- 引入了新的语法与概念,学习成本高于纯字符串提示,团队引入需要投入时间。
- 不同后端对约束的支持程度不同,跨后端迁移时个别特性可能失效,需要实测验证。
- 它定位是编程语言与运行时,不是托管服务,模型与算力仍要自己准备。
- 项目处于活跃演进期,接口可能变化,生产使用前请锁定版本,升级前先跑一遍现有查询做回归,避免约束行为变化。
使用建议
先用官方 Playground 试写一条带约束的查询,感受它与纯字符串提示的差异;从「约束输出格式」的小场景切入,跑通后再逐步引入模板与嵌套查询。遇到边界行为先查官方文档再写代码,能省掉不少试错;项目还在征集社区反馈推进下一大版本,关注官方博客与调查,能提前了解接口演进方向。
相似工具

LangChain
LangChain 是构建大模型应用的主流开源框架,配 LangSmith Engine 覆盖 Agent 的构建、测试、部署与监控全周期,掌控模型、上下文与执行框架,被 700
同标签 · LLM

LangGPT
云中江树提出的结构化提示词框架,官方称把提示词拆成 Role、Profile、Goal、Skills、Rules、Workflow 等模块,可复用可扩展,已在 GitHub 开源。
内容相近

AI2sql
基于你真实数据库表结构的 AI SQL 助手,用自然语言生成、解释、修复与优化查询,并支持通过 MCP 让 Claude、Cursor、ChatGPT 等客户端直连数据库。
同分类

Dify
Dify 是面向生产级 Agentic 工作流的开源 LLM 应用开发平台,在统一画布上搭建 Agent、知识管道(RAG)与工作流,支持云端、VPC 或自托管部署。
同标签 · LLM

OpenRouter LLM Rankings
按真实调用量排名的 LLM 使用榜单,基于开发者通过 OpenRouter API 处理的 token 数统计,提供任务、成本与市场份额等多维排名,反映生产环境的真实选择。
同标签 · LLM
