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

LMQL

3.5 | 514 | 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 的最佳方法是查看文档并从简单的示例开始,然后逐渐增加提示的复杂性以适合您的需求。

相关文章
loading

"LMQL"的最佳替代工具

loading

与LMQL相关的标签

loading