进阶 lmql.ai 2026-10-11 18:10:44 · 52 阅读
第1章 LMQL:面向大语言模型的编程语言
跳转至内容 LMQL GitHub Discord 外观 GitHub Discord 帮助我们通过填写 LMQL 开发者调查来塑造 LMQL 的下一个重要版本。LMQL 是一种面向 LLM 的编程语言。
使用类型、模板、约束和优化运行时实现健壮且模块化的 LLM 提示工程。开始使用 贡献 lmql@lmql.query def meaning_of_life(): '''lmql # 顶级字符串即提示词 "Q: 什么是生命、宇宙及一切的答案?" # 通过(带约束的)变量进行生成 "A: [ANSWER]" where \ len(ANSWER) < 120 and STOPS_AT(ANSWER, ".") # 结果可直接访问 print("LLM 返回", ANSWER) # 使用带类型的变量以保证 # 输出格式 "The answer is [NUM: int]" # 查询程序仅仅是函数 return NUM ''' # 因此,在 Python 中你可以直接这样写 meaning_of_life() # 42
由苏黎世联邦理工学院 SRI 实验室及贡献者创建。
星标 嵌套查询将过程式编程引入提示工程 新增功能 LMQL 现已支持嵌套查询,实现局部指令的模块化及提示组件的复用。
了解更多 promptdown 执行轨迹 Q: 奥巴马是哪天出生的?wait200beginincontext日期格式(按 DD/MM/YYYY 格式回答)endincontextwait200ANSWER04/08/1961wait200fadeincontextwait200hideincontextwait200 Q: Bruno Mars 是哪天出生的?wait200beginincontext1日期格式(按 DD/MM/YYYY 格式回答)endincontext1wait200ANSWER08/10/1985wait200fadeincontext1wait200hideincontext1wait200 Q: Dua Lipa 是哪天出生的?wait200beginincontext2日期格式(按 DD/MM/YYYY 格式回答)endincontext2wait200ANSWER22/08/1995wait200fadeincontext2wait200hideincontext2wait200 他们当中谁出生得最晚?LASTDua Lipa 跨后端运行 LMQL 能让你的 LLM 代码自动兼容多种后端,切换后端只需一行代码。 🦙 llama.cpp OpenAI 🤗 Transformers 探索 LMQL提示词构建和文本生成通过富有表达力的 Python 控制流与字符串插值来实现。 LMQLlmql# 顶层字符串就是提示词 "My packing list for the trip:" # 用循环实现重复提示 for i in range(4): # 'where' 表示由运行时强制执行的硬约束 "- [THING] \n" where THING in \ ["Volleyball", "Sunscreen", "Bathing Suit"] 模型输出promptdownMy packing list for the trip: - THING Volleyball - THING Bathing Suit - THING Sunscreen - THING Volleyball
使用类型、模板、约束和优化运行时实现健壮且模块化的 LLM 提示工程。开始使用 贡献 lmql@lmql.query def meaning_of_life(): '''lmql # 顶级字符串即提示词 "Q: 什么是生命、宇宙及一切的答案?" # 通过(带约束的)变量进行生成 "A: [ANSWER]" where \ len(ANSWER) < 120 and STOPS_AT(ANSWER, ".") # 结果可直接访问 print("LLM 返回", ANSWER) # 使用带类型的变量以保证 # 输出格式 "The answer is [NUM: int]" # 查询程序仅仅是函数 return NUM ''' # 因此,在 Python 中你可以直接这样写 meaning_of_life() # 42
由苏黎世联邦理工学院 SRI 实验室及贡献者创建。
星标 嵌套查询将过程式编程引入提示工程 新增功能 LMQL 现已支持嵌套查询,实现局部指令的模块化及提示组件的复用。
了解更多 promptdown 执行轨迹 Q: 奥巴马是哪天出生的?wait200beginincontext日期格式(按 DD/MM/YYYY 格式回答)endincontextwait200ANSWER04/08/1961wait200fadeincontextwait200hideincontextwait200 Q: Bruno Mars 是哪天出生的?wait200beginincontext1日期格式(按 DD/MM/YYYY 格式回答)endincontext1wait200ANSWER08/10/1985wait200fadeincontext1wait200hideincontext1wait200 Q: Dua Lipa 是哪天出生的?wait200beginincontext2日期格式(按 DD/MM/YYYY 格式回答)endincontext2wait200ANSWER22/08/1995wait200fadeincontext2wait200hideincontext2wait200 他们当中谁出生得最晚?LASTDua Lipa 跨后端运行 LMQL 能让你的 LLM 代码自动兼容多种后端,切换后端只需一行代码。 🦙 llama.cpp OpenAI 🤗 Transformers 探索 LMQL提示词构建和文本生成通过富有表达力的 Python 控制流与字符串插值来实现。 LMQLlmql# 顶层字符串就是提示词 "My packing list for the trip:" # 用循环实现重复提示 for i in range(4): # 'where' 表示由运行时强制执行的硬约束 "- [THING] \n" where THING in \ ["Volleyball", "Sunscreen", "Bathing Suit"] 模型输出promptdownMy packing list for the trip: - THING Volleyball - THING Bathing Suit - THING Sunscreen - THING Volleyball