LMQL:用于 LLM 交互的编程语言

LMQL

3.5 | 288 | 0
类型:
开源项目
最后更新:
2025/10/15
资源描述:
LMQL 是一种用于 LLM 的编程语言,可以使用类型、模板和约束来实现强大的提示。它支持多个后端,并提供嵌套查询和 Python 集成等功能。
分享:
LLM 编程
提示工程
约束生成

LMQL 概述

什么是 LMQL?

LMQL(语言模型查询语言)是一种专门为与大型语言模型(LLM)交互而设计的编程语言。它为 LLM 提示提供了一种稳健且模块化的方法,利用类型、模板、约束和一个优化运行时来确保可靠和可控的结果。LMQL 旨在弥合传统编程范式与 LLM 的概率性质之间的差距,使开发人员能够构建更复杂和可预测的 AI 应用程序。

LMQL 如何工作?

LMQL 的工作方式是允许开发人员将提示定义为代码,其中包含变量、约束和控制流。这种方法与传统的基于字符串的提示形成对比,后者结构性较差,更难管理。以下是 LMQL 的主要功能分解:

  • 类型化变量: LMQL 允许您定义具有特定数据类型(例如,intstr)的变量,确保 LLM 的输出符合预期的格式。此功能对于构建需要结构化数据的应用程序至关重要。
  • 模板: LMQL 支持模板,从而可以创建可重用的提示组件。可以使用变量对模板进行参数化,从而可以轻松生成动态提示。
  • 约束: LMQL 允许您指定 LLM 输出的约束,例如最大长度或特定关键字。这些约束由 LMQL 运行时强制执行,确保 LLM 的响应满足您的要求。
  • 嵌套查询: LMQL 支持嵌套查询,允许您模块化提示并重用提示组件。此功能对于需要与 LLM 进行多个步骤交互的复杂任务特别有用。
  • 多个后端:LMQL 可以自动使您的 LLM 代码在多个后端之间移植。您可以通过单行代码在它们之间切换。

示例

@lmql.query
def meaning_of_life():
    '''lmql
    # top-level strings are prompts
    "Q: What is the answer to life, the \
     universe and everything?"

    # generation via (constrained) variables
    "A: [ANSWER]" where \
        len(ANSWER) < 120 and STOPS_AT(ANSWER, ".")

    # results are directly accessible
    print("LLM returned", ANSWER)

    # use typed variables for guaranteed 
    # output format
    "The answer is [NUM: int]"

    # query programs are just functions 
    return NUM
    '''

## so from Python, you can just do this
meaning_of_life() # 42

如何使用 LMQL?

  1. 安装

    使用 pip 安装 LMQL:

    pip install lmql
    
  2. 定义查询

    使用 @lmql.query 装饰器编写 LMQL 查询。这些查询可以包括提示、变量和约束。

  3. 运行查询

    像常规 Python 函数一样执行 LMQL 查询。LMQL 运行时将处理与 LLM 的交互并强制执行指定的约束。

  4. 访问结果

    通过 LMQL 查询中定义的变量访问 LLM 的输出。

为什么选择 LMQL?

  • 稳健性: LMQL 的类型和约束有助于确保 LLM 的输出可靠且一致。
  • 模块化: LMQL 的模板和嵌套查询有助于代码重用和模块化。
  • 可移植性: LMQL 可跨多个 LLM 后端工作,使您可以轻松地在不同模型之间切换。
  • 表达性: LMQL 的 Python 集成使您可以利用 Python 的全部功能进行提示构建和后处理。

LMQL 适合哪些人?

LMQL 适合希望构建需要精确控制 LLM 行为的 AI 应用程序的开发人员。它特别适用于以下任务:

  • 数据提取: 从文本中提取结构化数据。
  • 代码生成: 基于自然语言描述生成代码。
  • 聊天机器人: 构建具有可预测和一致响应的聊天机器人。
  • 问题解答: 根据结构化知识回答问题。

通过使用 LMQL,开发人员可以构建更可靠、更模块化和更可移植的 AI 应用程序,从而利用 LLM 的强大功能。

使用 LMQL 的最佳方法是查看文档并从简单的示例开始,然后逐渐增加提示的复杂性以适合您的需求。

"LMQL"的最佳替代工具

Pretty Prompt
暂无图片
21 0

Pretty Prompt是Chrome浏览器扩展,被称为“提示词的Grammarly”。它将任何文本优化为ChatGPT、Gemini、Claude和Perplexity等AI工具的完美提示词。一键改进提升AI输出,15k+安装量,100+评论4.9/5分。有免费版。

提示工程
提示润色
LLM优化器
Lunary
暂无图片
235 0

Lunary 是一个开源 LLM 工程平台,提供可观测性、提示管理和分析功能,用于构建可靠的 AI 应用程序。它提供调试、跟踪性能和确保数据安全的工具。

LLM 监控
AI 可观测性
BuildOwn.AI
暂无图片
331 0

BuildOwn.AI: 开发者构建基于大语言模型(LLM)的真实AI应用的指南。

AI开发
大语言模型
GPT Prompt Lab
暂无图片
383 0

GPT Prompt Lab 是一款免费 AI 提示生成器,帮助内容创作者从任何主题为 ChatGPT、Gemini 等生成高质量提示。几秒钟内生成、测试和优化博客、邮件、代码和 SEO 内容提示。

提示生成
内容优化
AI写作提示
Query Vary
暂无图片
241 0

Query Vary 是一个无需代码的平台,允许团队协作训练 AI 并构建 AI 驱动的自动化。 它集成了生成式 AI,无需编程即可优化工作流程并提高生产力。

无代码 AI
工作流程自动化
Prompt Engineering Institute
暂无图片
362 0

Prompt Engineering Institute提供AI洞察、提示工程策略、培训和资源,用于现实世界的AI应用。在人工智能领域保持领先。

AI训练
提示工程
LLM
Generellem
暂无图片
395 0

Generellem 是一款 AI 工具,让您在 1 小时内使用生成式 AI 与您的文档聊天。 导入您的文档并通过基于 Web 的聊天进行交互。 无需代码。

文档分析
AI聊天
数据导入
Agent Zero
暂无图片
443 0

Agent Zero是一个开源AI框架,用于构建能够有机学习和成长的自主代理。具有多代理协作、代码执行和可定制工具的特点。

自主代理
多代理框架
代码执行
Vibe Coding
暂无图片
472 0

探索Vibe Coding,一个使用自然语言生成代码的AI编码工具平台。探索顶级AI工具和专家指南,更快地构建项目。

AI代码生成
AI编码助手
Weco AI
暂无图片
360 0

Weco AI使用AIDE ML技术自动化机器学习实验,通过AI驱动的代码评估和系统化实验优化ML管道,提高准确性和性能指标。

ML自动化
代码优化
GPU加速
Paird.ai
暂无图片
409 0

Paird.ai 是一个协同 AI 代码生成平台,允许团队使用节点和简单意图快速构建原型和解决问题。功能包括多种 LLM 支持、AI 代码评分和实时协作。

AI代码助手
协同编码
提示工程
Drawing Prompt
暂无图片
381 0

Drawing Prompt是一个免费的AI驱动平台,用于生成、扩展和可视化绘画提示。今天就用AI艺术生成释放你的创造力!

AI艺术生成器
绘画灵感
创意AI
Nuanced
暂无图片
332 0

Nuanced 通过静态分析和精确的 TypeScript 调用图增强 Cursor 和 Claude Code 等 AI 编码工具,可将令牌支出降低 33%,并提升构建成功率,实现高效、准确的代码生成。

调用图
静态分析
代码映射
Devika AI
暂无图片
467 0

Devika AI是一个开源AI软件工程师,它可以理解高级指令,将其分解为步骤,研究相关信息,并使用Claude 3、GPT-4、GPT-3.5和本地LLM生成代码。

AI编码助手
代码生成
开源AI