PageSourceSearch

https://lmql.ai/

html lmql.ai collected 2026-10-02 05:09:26 UTC 44,732 bytes, 119 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-US" dir="ltr">
3  <head>
4    <meta charset="utf-8">
5    <meta name="viewport" content="width=device-width,initial-scale=1">
6    <title>LMQL is a programming language for LLM interaction. | LMQL</title>
7    <meta name="description" content="Language Model Query Language">
8    <link rel="preload stylesheet" href="/assets/style.aa6b8dc6.css" as="style">
9    
10    
10<script type="module" src="/assets/app.7a112693.js"></script>
10
11    <link rel="preload" href="/assets/inter-roman-latin.2ed14f66.woff2" as="font" type="font/woff2" crossorigin="">
12    <link rel="modulepreload" href="/assets/chunks/framework.980cae92.js">
13    <link rel="modulepreload" href="/assets/chunks/theme.908ddb20.js">
14    <link rel="modulepreload" href="/assets/chunks/VersionSwitch.5d3190fc.js">
15    <link rel="modulepreload" href="/assets/chunks/lmql.17cc0505.js">
16    <link rel="modulepreload" href="/assets/index.md.3b2473f1.lean.js">
17    
17<script async src="/promptdown.js"></script>
17
18    
18<script src="https://static.cloudflareinsights.com/beacon.min.js?token=f7d2a6b1a0624c51ae4dab9a4239b77d&amp;spa=false"></script>
18
19    
19<script async src="https://buttons.github.io/buttons.js"></script>
19
20    
20<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
20
21    
21<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
21
22  </head>
23  <body>
24    <div id="app"><div class="Layout" data-v-9d8abc1e><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8291ffa></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8291ffa> Skip to content </a><!--]--><!----><header class="VPNav" data-v-9d8abc1e data-v-7ad780c2><div class="VPNavBar top" data-v-7ad780c2 data-v-f1abbc6e><div class="container" data-v-f1abbc6e><div class="title" data-v-f1abbc6e><div class="VPNavBarTitle" data-v-f1abbc6e data-v-2973dbb4><a class="title" href="/" data-v-2973dbb4><!--[--><!--]--><!--[--><img class="VPImage logo" src="/lmql.svg" alt data-v-ab19afbb><!--]--><!--[-->LMQL<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-f1abbc6e><div class="curtain" data-v-f1abbc6e></div><div class="content-body" data-v-f1abbc6e><!--[--><!--]--><div class="VPNavBarSearch search" data-v-f1abbc6e><!--[--><!----><div id="docsearch"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg class="DocSearch-Search-Icon" width="20" height="20" viewBox="0 0 20 20" aria-label="search icon"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-f1abbc6e data-v-f732b5d0><span id="main-nav-aria-label" class="visually-hidden" data-v-f732b5d0>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/" tabindex="0" data-v-f732b5d0 data-v-cb318fec><!--[--><span data-v-cb318fec>Home</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/blog/" tabindex="0" data-v-f732b5d0 data-v-cb318fec><!--[--><span data-v-cb318fec>Blog</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/research/index.html" tabindex="0" data-v-f732b5d0 data-v-cb318fec><!--[--><span data-v-cb318fec>Research</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/docs/" tabindex="0" data-v-f732b5d0 data-v-cb318fec><!--[--><span data-v-cb318fec>Docs</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/playground/" target="_blank" tabindex="0" data-v-f732b5d0 data-v-cb318fec><!--[--><span data-v-cb318fec>▶ Playground</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-f1abbc6e data-v-283b26e9><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-283b26e9 data-v-3329432d data-v-1c29e291><span class="check" data-v-1c29e291><span class="icon" data-v-1c29e291><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-3329432d><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-3329432d><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-f1abbc6e data-v-ef6192dc data-v-e71e869c><!--[--><a class="VPSocialLink no-icon" href="https://github.com/eth-sri/lmql" aria-label="github" target="_blank" rel="noopener" data-v-e71e869c data-v-16cf740a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink no-icon" href="https://discord.gg/5djae9gJVB" aria-label="discord" target="_blank" rel="noopener" data-v-e71e869c data-v-16cf740a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Discord</title><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 
240 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-f1abbc6e data-v-c8c2ae4b data-v-aa8de344><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-aa8de344><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-aa8de344><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-aa8de344><div class="VPMenu" data-v-aa8de344 data-v-e42ed9b3><!----><!--[--><!--[--><!----><div class="group" data-v-c8c2ae4b><div class="item appearance" data-v-c8c2ae4b><p class="label" data-v-c8c2ae4b>Appearance</p><div class="appearance-action" data-v-c8c2ae4b><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-c8c2ae4b data-v-3329432d data-v-1c29e291><span class="check" data-v-1c29e291><span class="icon" data-v-1c29e291><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-3329432d><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-3329432d><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-c8c2ae4b><div class="item social-links" data-v-c8c2ae4b><div class="VPSocialLinks social-links-list" data-v-c8c2ae4b data-v-e71e869c><!--[--><a class="VPSocialLink no-icon" href="https://github.com/eth-sri/lmql" aria-label="github" target="_blank" rel="noopener" data-v-e71e869c data-v-16cf740a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink no-icon" href="https://discord.gg/5djae9gJVB" aria-label="discord" target="_blank" rel="noopener" data-v-e71e869c data-v-16cf740a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Discord</title><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 
240 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-f1abbc6e data-v-6bee1efd><span class="container" data-v-6bee1efd><span class="top" data-v-6bee1efd></span><span class="middle" data-v-6bee1efd></span><span class="bottom" data-v-6bee1efd></span></span></button></div></div></div></div><!----></header><!----><!----><div class="VPContent is-home" id="VPContent" data-v-9d8abc1e data-v-3cf691b6><div class="VPHome" data-v-3cf691b6 data-v-20eabd3a><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--><!----><!--[--><!--]--><div style="position:relative;" data-v-20eabd3a><div><div class="banner"><p>Help shape the next major version of LMQL by filling out the <a href="https://forms.gle/pGvAicNpUhS1rAkK9" target="_blank" rel="noreferrer">LMQL developer survey</a></p></div><div class="hero" data-v-fb660782><img src="/assets/lmql.6950db7a.svg" alt="LMQL" data-v-fb660782><div data-v-fb660782><h1 data-v-fb660782><img src="/assets/lmql.6950db7a.svg" alt="LMQL" data-v-fb660782><!--[-->LMQL is a programming language for LLMs.<!--]--><br data-v-fb660782></h1><h2 class="tagline" data-v-fb660782><!--[-->Robust and modular LLM prompting using <b>types, templates, constraints and an optimizing runtime.</b><!--]--></h2><div class="buttons" data-v-fb660782><a class="primary btn" href="/docs/" data-v-fb660782> Get Started </a><a class="btn" href="https://github.com/eth-sri/lmql#contribute&#39;)" data-v-fb660782> Contribute </a></div></div></div><!--[--><div><div class="feature code" data-v-9d5b0837><div data-v-9d5b0837><h1 data-v-9d5b0837><!--[--> <!--]--><!----></h1><p data-v-9d5b0837><!--[--><div><div class="language-lmql vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">lmql</span><pre class="hljs"><code><span class="line"><div class="window-controls"><div class="window-control window-control-close"></div><div class="window-control window-control-minimize"></div><div class="window-control window-control-maximize"></div></div><span class="hljs-meta">@lmql.query</span>
25<span class="hljs-keyword">def</span> <span class="hljs-title function_">meaning_of_life</span>():
26    <span class="hljs-inline-lmql"><span class='inline-lmql-delim'>&#x27;&#x27;&#x27;lmql</span>
27    <span class="hljs-comment"># top-level strings are prompts</span>
28    <span class="hljs-string">&quot;Q: What is the answer to life, the \
29     universe and everything?&quot;</span>
30
31    <span class="hljs-comment"># generation via (constrained) variables</span>
32    <span class="hljs-string">&quot;A: <span class="hljs-placeholder">[ANSWER]</span>&quot;</span> <span class="hljs-keyword">where</span> \
33        <span class="hljs-built_in">len</span>(ANSWER) &lt; 120 <span class="hljs-keyword">and</span> STOPS_AT(ANSWER, <span class="hljs-string">&quot;.&quot;</span>)
34
35    <span class="hljs-comment"># results are directly accessible</span>
36    <span class="hljs-built_in">print</span>(<span class="hljs-string">&quot;LLM returned&quot;</span>, ANSWER)
37
38    <span class="hljs-comment"># use typed variables for guaranteed </span>
39    <span class="hljs-comment"># output format</span>
40    <span class="hljs-string">&quot;The answer is <span class="hljs-placeholder">[NUM: <span class="hljs-built_in">int</span>]</span>&quot;</span>
41
42    <span class="hljs-comment"># query programs are just functions </span>
43    <span class="hljs-keyword">return</span> NUM
44    <span class='inline-lmql-delim'>&#x27;&#x27;&#x27;</span></span>
45
46<span class="hljs-comment"># so from Python, you can just do this</span>
47meaning_of_life() <span class="hljs-comment"># 42</span>
48</span></code></pre>
49</div><br/>
50<center style="font-size: 10pt">
51<p>Created by the <a href="http://sri.inf.ethz.ch/" target="_blank" rel="noreferrer">SRI Lab</a> @ ETH Zurich and <a href="https://github.com/eth-sri/lmql" target="_blank" rel="noreferrer">contributors</a>.</p>
52<br/>
53<div class="github-star">
54    <a class="github-button" href="https://github.com/eth-sri/lmql" data-color-scheme="light" data-show-count="true" aria-label="Star LMQL on GitHub">Star</a>
55</div>
56</center>
57</div><!--]--></p></div><code class="reveal" data-v-9d5b0837><!--[--><!--]--></code></div></div><div><div class="feature side-by-side" data-v-9d5b0837><div data-v-9d5b0837><h1 data-v-9d5b0837><!--[-->
57Nested Queries bring Procedural Programming to Prompting <!--]--><span class="badge" data-v-9d5b0837>NEW</span></h1><p data-v-9d5b0837><!--[--><div><p>LMQL now supports nested queries, enabling modularized local instructions and re-use of prompt components.</p>
58<br/>
59<a class="btn" href="../docs/language/nestedqueries.html">
60Learn more
61</a>
62</div><!--]--></p></div><code class="reveal" data-v-9d5b0837><!--[--><div><div class="language-promptdown vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">promptdown</span><pre animate="true" pd-text="# Execution Trace
63
64![_|Q: When was Obama born?][@wait|200][@begin|incontext][dateformat|(respond in DD/MM/YYYY)][@end|incontext][@wait|200][ANSWER|04/08/1961][@wait|200][@fade|incontext][@wait|200][@hide|incontext][@wait|200]
65![_|Q: When was Bruno Mars born?][@wait|200][@begin|incontext1][dateformat|(respond in DD/MM/YYYY)][@end|incontext1][@wait|200][ANSWER|08/10/1985][@wait|200][@fade|incontext1][@wait|200][@hide|incontext1][@wait|200]
66![_|Q: When was Dua Lipa born?][@wait|200][@begin|incontext2][dateformat|(respond in DD/MM/YYYY)][@end|incontext2][@wait|200][ANSWER|22/08/1995][@wait|200][@fade|incontext2][@wait|200][@hide|incontext2][@wait|200]
67
68[_|Out of these, who was born last?][LAST|Dua Lipa]
69[:replay]" __animate="true" animate-speed="50" class="promptdown promptdown-compiled" style="opacity: 1;"><h1 pd-shadow-id="2364" text=" "> Execution Trace</h1><p pd-shadow-id="2366" text="
70" pd-insertion-point="true">
71<span pd-shadow-id="2368" pd-instant="true" text="" class="promptdown-var color-none"><span pd-shadow-id="2369" text="" class="promptdown-var-name" style="display: none;"></span>Q: When was Obama born?</span><span pd-shadow-id="2372" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-pink"><span pd-shadow-id="2373" text="w" class="promptdown-var-name" style="display: none;">wait</span>200</span><span pd-shadow-id="2377" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-yellow"><span pd-shadow-id="2378" text="b" class="promptdown-var-name" style="display: none;">begin</span>incontext</span><p pd-shadow-id="2382" id="incontext" text="" pd-ignore-whitespace="true" class="promptdown-container faded" style="display: none;"><span pd-shadow-id="2383" pd-instant="false" text="" class="promptdown-var color-yellow"><span pd-shadow-id="2384" text="d" class="promptdown-var-name">dateformat</span>(respond in DD/MM/YYYY)</span><span pd-shadow-id="2388" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-orange"><span pd-shadow-id="2389" text="e" class="promptdown-var-name" style="display: none;">end</span>incontext</span></p><span pd-shadow-id="2393" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-pink"><span pd-shadow-id="2394" text="w" class="promptdown-var-name" style="display: none;">wait</span>200</span><span pd-shadow-id="2398" pd-instant="false" text="" class="promptdown-var color-ochre"><span pd-shadow-id="2399" text="A" class="promptdown-var-name">ANSWER</span>04/08/1961</span><span pd-shadow-id="2403" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-pink"><span pd-shadow-id="2404" text="w" class="promptdown-var-name" style="display: none;">wait</span>200</span><span pd-shadow-id="2408" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-red"><span pd-shadow-id="2409" text="f" class="promptdown-var-name" style="display: none;">fade</span>incontext</span><span pd-shadow-id="2413" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-pink"><span pd-shadow-id="2414" text="w" class="promptdown-var-name" style="display: none;">wait</span>200</span><span pd-shadow-id="2418" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-ochre"><span pd-shadow-id="2419" text="h" class="promptdown-var-name" style="display: none;">hide</span>incontext</span><span pd-shadow-id="2423" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-pink"><span pd-shadow-id="2424" text="w" class="promptdown-var-name" style="display: none;">wait</span>200</span>
72<span pd-shadow-id="2429" pd-instant="true" text="" class="promptdown-var c
72olor-none"><span pd-shadow-id="2430" text="" class="promptdown-var-name" style="display: none;"></span>Q: When was Bruno Mars born?</span><span pd-shadow-id="2433" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-pink"><span pd-shadow-id="2434" text="w" class="promptdown-var-name" style="display: none;">wait</span>200</span><span pd-shadow-id="2438" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-yellow"><span pd-shadow-id="2439" text="b" class="promptdown-var-name" style="display: none;">begin</span>incontext1</span><p pd-shadow-id="2443" id="incontext1" text="" pd-ignore-whitespace="true" class="promptdown-container faded" style="display: none;"><span pd-shadow-id="2444" pd-instant="false" text="" class="promptdown-var color-yellow"><span pd-shadow-id="2445" text="d" class="promptdown-var-name">dateformat</span>(respond in DD/MM/YYYY)</span><span pd-shadow-id="2449" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-orange"><span pd-shadow-id="2450" text="e" class="promptdown-var-name" style="display: none;">end</span>incontext1</span></p><span pd-shadow-id="2454" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-pink"><span pd-shadow-id="2455" text="w" class="promptdown-var-name" style="display: none;">wait</span>200</span><span pd-shadow-id="2459" pd-instant="false" text="" class="promptdown-var color-ochre"><span pd-shadow-id="2460" text="A" class="promptdown-var-name">ANSWER</span>08/10/1985</span><span pd-shadow-id="2464" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-pink"><span pd-shadow-id="2465" text="w" class="promptdown-var-name" style="display: none;">wait</span>200</span><span pd-shadow-id="2469" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-red"><span pd-shadow-id="2470" text="f" class="promptdown-var-name" style="display: none;">fade</span>incontext1</span><span pd-shadow-id="2474" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-pink"><span pd-shadow-id="2475" text="w" class="promptdown-var-name" style="display: none;">wait</span>200</span><span pd-shadow-id="2479" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-ochre"><span pd-shadow-id="2480" text="h" class="promptdown-var-name" style="display: none;">hide</span>incontext1</span><span pd-shadow-id="2484" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-pink"><span pd-shadow-id="2485" text="w" class="promptdown-var-name" style="display: none;">wait</span>200</span>
73<span pd-shadow-id="2490" pd-instant="true" text="" class="promptdown-var color-none"><span pd-shadow-id="2491" text="" class="promptdown-var-name" style="display: none;"></span>Q: When was Dua Lipa born?</span><span pd-shadow-id="2494" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-pink"><span pd-shadow-id="2495" text="w" class="promptdown-var-name" style="display: none;">wait</span>200</span><span pd-shadow-id="2499" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-yellow"><span pd-shadow-id="2500" text="b" class="promptdown-var-name" style="display: none;">begin</span>incontext2</span><p pd-shadow-id="2504" id="incontext2" text="" pd-ignore-whitespace="true" class="promptdown-container faded" style="display: none;"><span pd-shadow-id="2505" pd-instant="false" text="" class="promptdown-var color-yellow"><span pd-shadow-id="2506" text="d" class="promptdown-var-name">dateformat</span>(respond in DD/MM/YYYY)</span><span pd-shadow-id="2510" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-orange"><span pd-shadow-id="2511" text="e" class="promptdown-var-name" style="display: none;">end</span>incontext2</span></p><span pd-shadow-id="2515" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-pink"><span pd-shadow-id="2516" text="w" class="promptdown-var-name" style="display: none;">wait</span>200</span><span pd-shadow-id="2520" pd-instant="false" text="" class="promptdown-var color-ochre"><span pd-shadow-id="2521" text="A" class="promptdown-var-name">ANSWER</span>22/08/1995</span><span pd-shadow-id="2525" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-pink"><span pd-shadow-id="2526" text="w" class="promptdown-var-name" style="display: none;">wait</span>200</span><span pd-shadow-id="2530" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-red"><span pd-shadow-id="2531" text="f" class="promptdown-var-name" style="display: none;">fade</span>incontext2</span><span pd-shadow-id="2535" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-pink"><span pd-shadow-id="2536" text="w" class="promptdown-var-name" style="display: none;">wait</span>200</span><span pd-shadow-id="2540" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-ochre"><span pd-shadow-id="2541" text="h" class="promptdown-var-name" style="display: none;">hide</span>incontext2</span><span pd-shadow-id="2545" pd-instant="false" pd-cmd="true" text="" class="promptdown-var cmd color-pink"><span pd-shadow-id="2546" text="w" class="promptdown-var-name" style="display: none;">wait</span>200</span>
74
75<span pd-shadow-id="2551" pd-instant="false" text="" class="promptdown-var c
75olor-none"><span pd-shadow-id="2552" text="" class="promptdown-var-name" style="display: none;"></span>Out of these, who was born last?</span><span pd-shadow-id="2555" pd-instant="false" text="" class="promptdown-var color-pink"><span pd-shadow-id="2556" text="L" class="promptdown-var-name">LAST</span>Dua Lipa</span>
76</p><button onclick="pd(this.parentElement)" class="promptdown-button-replay">↺ Replay</button></pre>
77</div></div><!--]--></code></div></div><div><div class="feature middle" data-v-9d5b0837><div data-v-9d5b0837><h1 data-v-9d5b0837><!--[-->Works Across Backends <!--]--><!----></h1><p data-v-9d5b0837><!--[--><div><p>LMQL automatically makes your LLM code portable across several backends. You can switch between them with a single line of code.</p>
78<div class="cards">
79    <a href="../docs/models/llama.cpp.html">
80        <span style="font-size: 3.0em;">🦙</span>
81        <h1>llama.cpp</h1>
82    </a>
83    <a href="../docs/models/openai.html">
84        <img src="/openai.svg" alt="OpenAI" class="invert"/>
85        <h1>OpenAI</h1>
86    </a>
87    <a href="../docs/models/hf.html">
88        <span style="font-size: 3.0em;">🤗</span>
89        <h1>Transformers</h1>
90    </a>
91</div>
92</div><!--]--></p></div><code class="reveal" data-v-9d5b0837><!--[--><!--]--></code></div></div><!--]--><div class="examples" data-v-96cfe14a><div style="margin-top:60pt;" data-v-96cfe14a></div><h1 data-v-96cfe14a><!--[-->Explore LMQL<!--]--></h1><div class="btn-group" role="group" aria-label="Basic example" data-v-96cfe14a><!--[--><button class="active btn btn-primary" data-v-96cfe14a>🌴 Packing List</button><button class="btn btn-primary" data-v-96cfe14a>⛓️ Constrained LLMs</button><button class="btn btn-primary" data-v-96cfe14a>🔢 Types and Regex</button><button class="btn btn-primary" data-v-96cfe14a>🧠 Multi-Part Prompts</button><button class="btn btn-primary" data-v-96cfe14a>📐 Measure Distributions</button><button class="btn btn-primary" data-v-96cfe14a>🐍 Python Support</button><button class="btn btn-primary" data-v-96cfe14a>🌳 Meta Prompting</button><button class="btn btn-primary" data-v-96cfe14a>🌎 Tool Augmentation</button><button class="btn btn-primary" data-v-96cfe14a>💬 Chatbots</button><!--]--></div><div class="description" data-v-96cfe14a><p>Prompt construction and generation is implemented via expressive <em>Python control flow and string interpolation</em>.</p>
93</div><div class="code-by-code" data-v-96cfe14a><div class="left"><!--[--><h2 data-v-96cfe14a>LMQL</h2><div data-v-96cfe14a><div class="language-lmql vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">lmql</span><pre class="hljs"><code><span class="line"><span class="hljs-comment"># top level strings are prompts</span>
94<span class="hljs-string">&quot;My packing list for the trip:&quot;</span>
95
96<span class="hljs-comment"># use loops for repeated prompts</span>
97<span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">4</span>):
98    <span class="hljs-comment"># &#x27;where&#x27; denotes hard constraints enforced by the runtime</span>
99    <span class="hljs-string">&quot;- <span class="hljs-placeholder">[THING]</span> \n&quot;</span> <span class="hljs-keyword">where</span> THING <span class="hljs-keyword">in</span> \ 
100        [<span class="hljs-string">&quot;Volleyball&quot;</span>, <span class="hljs-string">&quot;Sunscreen&quot;</span>, <span class="hljs-string">&quot;Bathing Suit&quot;</span>]
101</span></code></pre>
102</div></div><!--]--></div><div class="right"><!--[--><h2 data-v-96cfe14a>Model Output</h2><div data-v-96cfe14a><div class="language-promptdown vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">promptdown</span><pre pd-text="My packing list for the trip:
103
104- [THING| Volleyball]
105- [THING| Bathing Suit]
106- [THING| Sunscreen]
107- [THING| Volleyball]
108" animate="true" __animate="true" animate-speed="50" class="promptdown promptdown-compiled" style="opacity: 1;"><p pd-shadow-id="2708" text="M" pd-insertion-point="true">My packing list for the trip:
109
110- <span pd-shadow-id="2710" pd-instant="false" text="" class="promptdown-var c
110olor-lightorange"><span pd-shadow-id="2711" text="T" class="promptdown-var-name">THING</span> Volleyball</span>
111- <span pd-shadow-id="2716" pd-instant="false" text="" class="promptdown-var color-lightorange"><span pd-shadow-id="2717" text="T" class="promptdown-var-name">THING</span> Bathing Suit</span>
112- <span pd-shadow-id="2722" pd-instant="false" text="" class="promptdown-var color-lightorange"><span pd-shadow-id="2723" text="T" class="promptdown-var-name">THING</span> Sunscreen</span>
113- <span pd-shadow-id="2728" pd-instant="false" text="" class="promptdown-var color-lightorange"><span pd-shadow-id="2729" text="T" class="promptdown-var-name">THING</span> Volleyball</span>
114</p></pre>
115</div></div><!--]--></div></div></div></div></div></div></div><!----><!--[--><!--]--></div></div>
116    
116<script>window.__VP_HASH_MAP__=JSON.parse("{\"docs_development_docker-setup.md\":\"0e3e1b2c\",\"docs_language_decorators.md\":\"9a3eb9c2\",\"docs_installation.md\":\"8739ce92\",\"docs_language_decoding.md\":\"0469ec27\",\"readme.md\":\"82e2e066\",\"docs_language_scripted-prompting.md\":\"1a472d51\",\"blog_posts_developer-survey.md\":\"9ee0ba44\",\"blog_index.md\":\"ff9d28cf\",\"docs_latest_development_docker-setup.md\":\"fa59e371\",\"docs_language_tools.md\":\"9aaa96de\",\"docs_development_documentation.md\":\"b9530bbc\",\"docs_latest_development_documentation.md\":\"c26b8856\",\"blog_posts_release-0.0.6.6.md\":\"958a76e8\",\"docs_language_nestedqueries.md\":\"3fc05b78\",\"docs_latest_installation.md\":\"4aae67b7\",\"docs_index.md\":\"526a0692\",\"docs_latest_language_overview.md\":\"7387dad8\",\"blog_posts_release-0.0.5.md\":\"6f3e470e\",\"blog_posts_release-0.0.6.3.md\":\"a170b883\",\"blog_posts_release-0.0.6.1.md\":\"120a8d77\",\"blog_posts_release-0.0.6.md\":\"2111a972\",\"docs_latest_index.md\":\"45032e16\",\"docs_latest_language_decoding.md\":\"018937f6\",\"blog_posts_release-0.0.6.4.md\":\"a07e6028\",\"docs_latest_language_reference.md\":\"a23db647\",\"docs_language_overview.md\":\"4e5dda69\",\"docs_latest_language_constraints.md\":\"c042157c\",\"docs_latest_language_constraints_custom-constraints.md\":\"a673b22d\",\"docs_latest_language_nestedqueries.md\":\"815f2dd9\",\"blog_posts_release-0.0.6.5.md\":\"a82e82a9\",\"docs_lib_inference-certificates.md\":\"9a213cfe\",\"docs_lib_integrations.md\":\"f23c2c07\",\"docs_lib_integrations_langchain.md\":\"82a1a8ce\",\"docs_latest_development_dev-setup.md\":\"18f17674\",\"docs_lib_output.md\":\"6e90a5e7\",\"blog_posts_release-0.7.md\":\"c15b0585\",\"docs_lib_python.md\":\"bc95434a\",\"docs_development_dev-setup.md\":\"94c94af5\",\"docs_lib_integrations_llama_index.md\":\"f3803dc1\",\"docs_latest_models_azure.md\":\"7c6396b6\",\"docs_language_constraints_custom-constraints.md\":\"f81b18dd\",\"docs_latest_lib_integrations_pandas.md\":\"9b6d3f34\",\"docs_latest_lib_chat.md\":\"00476b1d\",\"docs_lib_chat_defend.md\":\"c253ac92\",\"docs_models_azure.md\":\"167a3758\",\"docs_lib_chat.md\":\"f8be0cb3\",\"docs_models_hf.md\":\"00577347\",\"docs_lib_generations.md\":\"4968526e\",\"docs_models_index.md\":\"7dc07083\",\"docs_latest_lib_output.md\":\"4442e9f8\",\"docs_latest_lib_integrations_llama_index.md\":\"4f2fe1b9\",\"docs_latest_lib_python.md\":\"1c370ca3\",\"docs_latest_models_hf.md\":\"d19b7949\",\"docs_models_openai.md\":\"39ade1fd\",\"docs_models_llama.cpp.md\":\"89effe2c\",\"features_2-nested.md\":\"3c4c00f3\",\"features_1-code.md\":\"356f0c36\",\"features_3-models.md\":\"eaf28c02\",\"features__1-types.md\":\"2e12a0c5\",\"features_examples_1-packing-list.md\":\"fe8669f0\",\"features_examples_2-constraining.md\":\"cda9d411\",\"features_examples_2.5-data-types.md\":\"7dcc82ab\",\"docs_models_replicate.md\":\"c1a2236a\",\"features_examples_3-multi-part.md\":\"8bbbe3a5\",\"features_examples_3.6-python.md\":\"376501ff\",\"features_examples_3.5-distributions.md\":\"9d7164a2\",\"features_examples_4-meta-prompting.md\":\"19152cd4\",\"features_examples_5-wikipedia.md\":\"0f7e4309\",\"features_examples_6-chat.md\":\"cc86c446\",\"research_index.md\":\"2696fbba\",\"docs_language_reference.md\":\"93969594\",\"docs_latest_models_index.md\":\"d5054f5a\",\"docs_latest_models_llama.cpp.md\":\"9e418aff\",\"docs_latest_models_replicate.md\":\"4762e61c\",\"docs_latest_lib_integrations.md\":\"eb75ecfa\",\"docs_latest_lib_generations.md\":\"a63039e2\",\"docs_latest_lib_chat_overview.md\":\"aa834f5b\",\"docs_latest_lib_chat_serving.md\":\"c33c8e48\",\"docs_lib_chat_internal.md\":\"865e3c38\",\"docs_latest_lib_chat_internal.md\":\"fc68f234\",\"docs_latest_language_decorators.md\":\"53bd4b02\",\"docs_latest_lib_integrations_langchain.md\":\"42ff678a\",\"docs_latest_lib_inference-certificates.md\":\"414275b7\",\"docs_latest_lib_chat_defend.md\":\"5cbe2338\",\"docs_latest_language_tools.md\":\"2379781a\",\"docs_lib_chat_overview.md\":\"6114091f\",\"docs_lib_chat_serving.md\":\"36ddd098\",\"docs_latest_language_scripted-prompting.md\":\"12afea6e\",\"docs_latest_models_openai.md\":\"0ecf2534\",\"index.md\":\"3b2473f1\",\"docs_language_constraints.md\":\"43fe4757\",\"docs_lib_integrations_pandas.md\":\"f1409ba3\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"LMQL\",\"description\":\"Language Model Query Language\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"Blog\",\"link\":\"/blog/\",\"activeMatch\":\"^/blog/\"},{\"text\":\"Research\",\"link\":\"/research/index.html\"},{\"text\":\"Docs\",\"link\":\"/docs/\",\"activeMatch\":\"^/docs/\"},{\"text\":\"▶ Playground\",\"link\":\"/playground/\",\"target\":\"_blank\"}],\"search\":{\"provider\":\"algolia\",\"options\":{\"appId\":\"TCP95GVDMD\",\"apiKey\":\"f7b4c9cd024536f8085f160045c3aafe\",\"
116indexName\":\"lmql\"}},\"logo\":\"/lmql.svg\",\"sidebar\":{\"docs/\":[{\"text\":\"\",\"collapsable\":true,\"collapsed\":false,\"base\":\"/docs/\",\"items\":[{\"text\":\"Getting Started\",\"link\":\"/index.md\"},{\"text\":\"Installation Instructions\",\"link\":\"/installation.md\"}]},{\"text\":\"Language\",\"collapsable\":true,\"collapsed\":false,\"base\":\"/docs/language\",\"items\":[{\"text\":\"Overview\",\"link\":\"/overview.md\"},{\"text\":\"Scripted Prompting\",\"link\":\"/scripted-prompting.md\"},{\"text\":\"Constraints\",\"link\":\"/constraints.md\",\"activeMatch\":\"^/docs/language/constraints/\",\"collapsable\":true,\"collapsed\":true,\"items\":[{\"text\":\"Custom Constraints\",\"link\":\"/constraints/custom-constraints.md\"}]},{\"text\":\"Decoders\",\"link\":\"/decoding.md\"},{\"text\":\"Decorators\",\"link\":\"/decorators.md\"},{\"text\":\"Nested Queries <span class=\\\"badge\\\">NEW</span>\",\"link\":\"/nestedqueries.md\"},{\"text\":\"Tool Augmentation\",\"link\":\"/tools.md\"},{\"text\":\"Language Reference\",\"link\":\"/reference.md\"}]},{\"text\":\"Model Support\",\"collapsable\":true,\"collapsed\":false,\"base\":\"/docs/models\",\"items\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"Local Models / Transformers\",\"link\":\"/hf.md\"},{\"text\":\"llama.cpp\",\"link\":\"/llama.cpp.md\"},{\"text\":\"OpenAI\",\"link\":\"/openai.md\"},{\"text\":\"Azure\",\"link\":\"/azure.md\"},{\"text\":\"Replicate\",\"link\":\"/replicate.md\"}]},{\"text\":\"Library\",\"collapsable\":true,\"collapsed\":false,\"base\":\"/docs/lib\",\"items\":[{\"text\":\"Chat\",\"link\":\"/chat.md\",\"activeMatch\":\"^/docs/lib/chat/\",\"collapsable\":true,\"collapsed\":true,\"items\":[{\"text\":\"Your First Chatbot\",\"link\":\"/chat/overview.md\"},{\"text\":\"Serving\",\"link\":\"/chat/serving.md\"},{\"text\":\"Internal Reasoning\",\"link\":\"/chat/internal.md\"},{\"text\":\"Defending Against Prompt Injections\",\"link\":\"/chat/defend.md\"}]},{\"text\":\"Generations API <span class=\\\"badge\\\">NEW</span>\",\"link\":\"/generations.md\"},{\"text\":\"Inference Certificates\",\"link\":\"/inference-certificates.md\"},{\"text\":\"Output Streaming\",\"link\":\"/output.md\"},{\"text\":\"Python Integration\",\"link\":\"/python.md\"},{\"text\":\"Other Integrations\",\"link\":\"/integrations.md\",\"activeMatch\":\"^/docs/lib/integrations/\",\"collapsable\":true,\"collapsed\":true,\"items\":[{\"text\":\"LangChain\",\"link\":\"/integrations/langchain.md\"},{\"text\":\"LlamaIndex\",\"link\":\"/integrations/llama_index.md\"},{\"text\":\"Pandas\",\"link\":\"/integrations/pandas.md\"}]}]},{\"text\":\"Development\",\"collapsable\":true,\"collapsed\":false,\"base\":\"/docs/development\",\"items\":[{\"text\":\"Development Environment\",\"link\":\"/dev-setup.md\"},{\"text\":\"LMQL in Docker\",\"link\":\"/docker-setup.md\"},{\"text\":\"Documentation\",\"link\":\"/documentation.md\"}]}],\"docs/latest/\":[{\"text\":\"\",\"collapsable\":true,\"collapsed\":false,\"base\":\"/docs/latest/\",\"items\":[{\"text\":\"Getting Started\",\"link\":\"/index.md\"},{\"text\":\"Installation Instructions\",\"link\":\"/installation.md\"}]},{\"text\":\"Language\",\"collapsable\":true,\"collapsed\":false,\"base\":\"/docs/latest/language\",\"items\":[{\"text\":\"Overview\",\"link\":\"/overview.md\"},{\"text\":\"Scripted Prompting\",\"link\":\"/scripted-prompting.md\"},{\"text\":\"Constraints\",\"link\":\"/constraints.md\",\"activeMatch\":\"^/docs/latest/language/constraints/\",\"collapsable\":true,\"collapsed\":true,\"items\":[{\"text\":\"Custom Constraints\",\"link\":\"/constraints/custom-constraints.md\"}]},{\"text\":\"Decoders\",\"link\":\"/decoding.md\"},{\"text\":\"Decorators\",\"link\":\"/decorators.md\"},{\"text\":\"Nested Queries <span class=\\\"badge\\\">NEW</span>\",\"link\":\"/nestedqueries.md\"},{\"text\":\"Tool Augmentation\",\"link\":\"/tools.md\"},{\"text\":\"Language Reference\",\"link\":\"/reference.md\"}]},{\"text\":\"Model Support\",\"collapsable\":true,\"collapsed\":false,\"base\":\"/docs/latest/models\",\"items\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"Local Models / Transformers\",\"link\":\"/hf.md\"},{\"text\":\"llama.cpp\",\"link\":\"/llama.cpp.md\"},{\"text\":\"OpenAI\",\"link\":\"/openai.md\"},{\"text\":\"Azure\",\"link\":\"/azure.md\"},{\"text\":\"Replicate\",\"link\":\"/replicate.md\"}]},{\"text\":\"Library\",\"collapsable\":true,\"collapsed\":false,\"base\":\"/docs/latest/lib\",\"items\":[{\"text\":\"Chat\",\"link\":\"/chat.md\",\"activeMatch\":\"^/docs/latest/lib/chat/\",\"collapsable\":true,\"collapsed\":true,\"items\":[{\"text\":\"Your First Chatbot\",\"link\":\"/chat/overview.md\"},{\"text\":\"Serving\",\"link\":\"/chat/serving.md\"},{\"text\":\"Internal Reasoning\",\"link\":\"/chat/internal.md\"},{\"text\":\"Defending Against Prompt Injections\",\"link\":\"/chat/defend.md\"}]},{\"text\":\"Generations API <span class=\\\"badge\\\">NEW</span>\",\"link\":\"/generations.md\"},{\"text\":\"Inference Certificates\",\"link\":\"/inference-certificates.md\"},{\"text\":\"Output Streaming\",\"link\":\"/output.md\"},{\"text\":\"Python Integration\",\"link\":\"/python.md\"},{\"text\":\"Other Integrations\",\"link\":\"/integrations.md\",\"activeMatch\":\"^/docs/latest/lib/integrations/\",\"collapsable\":true,\"collapsed\":true,\"items\":[{\"text\":\"LangChain\",\"link\":\"/integrations/langchain.md\"},{\"text\":\"LlamaIndex\",\"link\":\"/integrations/llama_index.md\"},{\"text\":\"Pandas\",\"link\":\"/integrations/pandas.md\"}]}]},{\"text\":\"Development\",\"collapsable\":true,\"collapsed\":false,\"base\":\"/docs/latest/development\",\"items\":[{\"text\":\"Development Environment\",\"link\":\"/dev-setup.md\"},{\"text\":\"LMQL in Docker\",\"link\":\"/docker-setup.md\"},{\"text\":\"Documentation\",\"link\":\"/documentation.md\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/eth-sri/lmql\"},{\"icon\":\"discord\",\"link\":\"https://discord.gg/5djae9gJVB\"}]},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}");</script>
116
117    
118  </body>
119</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.