-
Notifications
You must be signed in to change notification settings - Fork 423
Expand file tree
/
Copy pathwelcome.mdx
More file actions
87 lines (70 loc) · 3.16 KB
/
welcome.mdx
File metadata and controls
87 lines (70 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
---
title: 🏠 Welcome
description: The easiest way to use LLMs
slug: home
layout: overview
hide-toc: false
---
**BAML is a domain-specific language to generate structured outputs from LLMs -- with the best developer experience.**
With BAML you can build reliable Agents, Chatbots with RAG, extract data from Pdfs, and more.
### A small sample of features:
1. **An amazingly fast developer experience** for prompting in the BAML VSCode playground
2. **Fully type-safe outputs**, even when streaming structured data (that means autocomplete!)
3. **Flexibility** -- it works with **any LLM**, **any language**, and **any schema**.
4. **State-of-the-art structured outputs** that even [outperform OpenAI with their own models](https://www.boundaryml.com/blog/sota-function-calling?q=0) -- plus it works with OpenSource models.
## Products
<Cards cols={2}>
<Card
title="Guide"
icon="fa-regular fa-pen"
href="/guide/introduction/what-is-baml"
>
Everything you need to know about how to get started with BAML. From installation to prompt engineering techniques.
</Card>
<Card
title="Playground"
icon="fa-regular fa-browser"
href="https://promptfiddle.com"
>
An online interactive playground to playaround with BAML without any installations.
</Card>
<Card
title="Examples"
icon="fa-regular fa-grid-2"
href="/examples"
>
Examples of prompts, projects, and more.
</Card>
<Card
title="Reference"
icon="fa-regular fa-code"
href="/ref"
>
Language docs on all BAML syntax. Quickly learn syntax with simple examples and code snippets.
</Card>
</Cards>
## Motivation
Prompts are more than just f-strings; they're actual functions with logic that can quickly become complex to organize, maintain, and test.
Currently, developers craft LLM prompts as if they're writing raw HTML and CSS in text files, lacking:
- Type safety
- Hot-reloading or previews
- Linting
The situation worsens when dealing with structured outputs. Since most prompts rely on Python and Pydantic, developers must _execute_ their code and set up an entire Python environment just to test a minor prompt adjustment, or they have to setup a whole Python microservice just to call an LLM.
BAML allows you to view and run prompts directly within your editor, similar to how Markdown Preview function -- no additional setup necessary, that interoperates with all your favorite languages and frameworks.
Just as TSX/JSX provided the ideal abstraction for web development, BAML offers the perfect abstraction for prompt engineering. Watch our [demo video](/guide/introduction/what-is-baml#demo-video) to see it in action.
## Comparisons
Here's our in-depth comparison with a couple of popular frameworks:
- [BAML vs Pydantic](/guide/comparisons/baml-vs-pydantic)
- [BAML vs Marvin](/guide/comparisons/baml-vs-marvin)
{/*
<div className="motivation">
Insert something powerful here.
</div>
<ButtonGroup>
<Button href="https://calendly.com/boundary-founders/connect-45" intent="primary" rightIcon="arrow-right" large>
Schedule a demo with our team!
</Button>
<Button href="https://buildwithfern.com/showcase" minimal large>
View our showcase
</Button>
</ButtonGroup> */}