# BAML ## Docs - [Client Registry](https://mintlify.wiki/BoundaryML/baml/advanced/client-registry.md): Dynamically modify LLM clients and parameters at runtime - [Collectors](https://mintlify.wiki/BoundaryML/baml/advanced/collectors.md): Track LLM usage, inspect raw requests/responses, and monitor performance metrics - [Dynamic Types with TypeBuilder](https://mintlify.wiki/BoundaryML/baml/advanced/dynamic-types.md): Create and modify types at runtime for dynamic schemas and user-provided structures - [Optimization Techniques](https://mintlify.wiki/BoundaryML/baml/advanced/optimization.md): Advanced strategies for improving prompt performance, reducing costs, and optimizing BAML functions - [Prompt Caching](https://mintlify.wiki/BoundaryML/baml/advanced/prompt-caching.md): Reduce costs and latency by caching prompt segments across LLM requests - [LLM Clients](https://mintlify.wiki/BoundaryML/baml/concepts/clients.md): Configure LLM providers and models in BAML - [BAML Functions](https://mintlify.wiki/BoundaryML/baml/concepts/functions.md): Understanding BAML functions - the core building blocks for AI-powered workflows - [Prompts and Jinja](https://mintlify.wiki/BoundaryML/baml/concepts/prompts.md): Master BAML's prompt templating with Jinja syntax - [Testing BAML Functions](https://mintlify.wiki/BoundaryML/baml/concepts/testing.md): Test and validate your BAML functions with built-in testing tools - [Types and Schemas](https://mintlify.wiki/BoundaryML/baml/concepts/types-and-schemas.md): Understanding BAML's type system for structured LLM outputs - [AWS Deployment](https://mintlify.wiki/BoundaryML/baml/deployment/aws.md): Deploy BAML applications to AWS Lambda using SST - [Docker Deployment](https://mintlify.wiki/BoundaryML/baml/deployment/docker.md): Deploy BAML applications using Docker with proper client generation - [Environment Variables](https://mintlify.wiki/BoundaryML/baml/deployment/environment-variables.md): Configure BAML with environment variables for API keys, Boundary Studio, and deployment settings - [Chatbot Implementation](https://mintlify.wiki/BoundaryML/baml/examples/chatbot.md): Build conversational AI applications with BAML - from simple chat to multi-turn conversations with memory - [Classification Examples](https://mintlify.wiki/BoundaryML/baml/examples/classification.md): Learn how to build classification systems with BAML - from simple spam detection to multi-label classification - [Data Extraction Examples](https://mintlify.wiki/BoundaryML/baml/examples/extraction.md): Extract structured data from unstructured text using BAML - receipts, resumes, documents, and more - [Retrieval-Augmented Generation (RAG)](https://mintlify.wiki/BoundaryML/baml/examples/rag.md): Build RAG systems with BAML - combine vector databases with LLMs for accurate, grounded responses - [Tool Calling Examples](https://mintlify.wiki/BoundaryML/baml/examples/tool-calling.md): Enable your LLM to call functions and APIs - from simple tool selection to complex agentic workflows - [Error Handling Strategies](https://mintlify.wiki/BoundaryML/baml/guides/error-handling.md): Handle errors gracefully in BAML applications - [Multimodal Inputs](https://mintlify.wiki/BoundaryML/baml/guides/multimodal.md): Use images, audio, video, and PDFs in your BAML prompts - [Prompting Best Practices](https://mintlify.wiki/BoundaryML/baml/guides/prompting.md): Learn best practices for writing effective prompts with BAML - [Retry Policies and Fallbacks](https://mintlify.wiki/BoundaryML/baml/guides/retries-and-fallbacks.md): Build resilient LLM applications with retries, fallbacks, and timeouts - [Streaming Responses](https://mintlify.wiki/BoundaryML/baml/guides/streaming.md): Stream structured JSON output from LLMs as it comes in - [Switching Between LLM Models](https://mintlify.wiki/BoundaryML/baml/guides/switching-models.md): Learn how to switch between different LLM providers and models in BAML - [Go Setup](https://mintlify.wiki/BoundaryML/baml/installation/go.md): Install and configure BAML for Go projects - [REST API & Other Languages](https://mintlify.wiki/BoundaryML/baml/installation/other-languages.md): Use BAML with any language via REST API and OpenAPI - [Python Setup](https://mintlify.wiki/BoundaryML/baml/installation/python.md): Install and configure BAML for Python projects - [Ruby Setup](https://mintlify.wiki/BoundaryML/baml/installation/ruby.md): Install and configure BAML for Ruby projects - [Rust Setup](https://mintlify.wiki/BoundaryML/baml/installation/rust.md): Install and configure BAML for Rust projects - [TypeScript Setup](https://mintlify.wiki/BoundaryML/baml/installation/typescript.md): Install and configure BAML for TypeScript and JavaScript projects - [VSCode Extension](https://mintlify.wiki/BoundaryML/baml/installation/vscode.md): Install and use the BAML VSCode extension for syntax highlighting, testing, and code generation - [Introduction to BAML](https://mintlify.wiki/BoundaryML/baml/introduction.md): The easiest way to build reliable AI workflows and agents with structured outputs from LLMs - [Quick Start](https://mintlify.wiki/BoundaryML/baml/quickstart.md): Get started with BAML in under 5 minutes - [baml dev](https://mintlify.wiki/BoundaryML/baml/reference/cli/dev.md): Start a development server with hot reload and automatic code regeneration - [baml generate](https://mintlify.wiki/BoundaryML/baml/reference/cli/generate.md): Generate type-safe client code from your BAML functions - [baml init](https://mintlify.wiki/BoundaryML/baml/reference/cli/init.md): Initialize a new BAML project with configuration and starter files - [baml serve](https://mintlify.wiki/BoundaryML/baml/reference/cli/serve.md): Start a production HTTP server to expose BAML functions as REST API endpoints - [baml test](https://mintlify.wiki/BoundaryML/baml/reference/cli/test.md): Run BAML function tests with filtering, parallelization, and assertion support - [Calling Functions](https://mintlify.wiki/BoundaryML/baml/reference/client/calling-functions.md): How to call BAML functions from your code - [Error Types](https://mintlify.wiki/BoundaryML/baml/reference/client/errors.md): BAML error types and error handling patterns - [Client Options](https://mintlify.wiki/BoundaryML/baml/reference/client/options.md): Configure BAML function calls with runtime options - [Streaming API](https://mintlify.wiki/BoundaryML/baml/reference/client/streaming.md): Stream LLM responses with partial, structured data - [class](https://mintlify.wiki/BoundaryML/baml/reference/language/class.md): Define structured data types for AI inputs and outputs - [client](https://mintlify.wiki/BoundaryML/baml/reference/language/client.md): Configure LLM providers and model settings - [enum](https://mintlify.wiki/BoundaryML/baml/reference/language/enum.md): Define enumerated values for classification and constrained outputs - [function](https://mintlify.wiki/BoundaryML/baml/reference/language/function.md): Define type-safe AI functions with prompts and return types - [BAML Language Overview](https://mintlify.wiki/BoundaryML/baml/reference/language/overview.md): Complete reference for the BAML language syntax and structure - [test](https://mintlify.wiki/BoundaryML/baml/reference/language/test.md): Define test cases for AI functions with assertions and type builders - [Anthropic Provider](https://mintlify.wiki/BoundaryML/baml/reference/providers/anthropic.md): Configure BAML to use Anthropic's Claude models - [AWS Bedrock Provider](https://mintlify.wiki/BoundaryML/baml/reference/providers/aws-bedrock.md): Configure BAML to use AWS Bedrock models - [Azure OpenAI Provider](https://mintlify.wiki/BoundaryML/baml/reference/providers/azure.md): Configure BAML to use Azure OpenAI Service - [Google AI Provider](https://mintlify.wiki/BoundaryML/baml/reference/providers/google.md): Configure BAML to use Google's Gemini models - [OpenAI Provider](https://mintlify.wiki/BoundaryML/baml/reference/providers/openai.md): Configure BAML to use OpenAI's GPT models - [OpenAI-Compatible Providers](https://mintlify.wiki/BoundaryML/baml/reference/providers/openai-compatible.md): Configure BAML to use OpenAI-compatible APIs (Ollama, OpenRouter, Groq, etc.) - [Array Types](https://mintlify.wiki/BoundaryML/baml/reference/types/arrays.md): Working with collections and lists in BAML - [Map Types](https://mintlify.wiki/BoundaryML/baml/reference/types/maps.md): Working with key-value dictionaries in BAML - [Media Types](https://mintlify.wiki/BoundaryML/baml/reference/types/media.md): Working with images, audio, video, and PDF files in BAML - [Primitive Types](https://mintlify.wiki/BoundaryML/baml/reference/types/primitives.md): Basic data types in BAML - string, int, float, bool, and null - [Union Types](https://mintlify.wiki/BoundaryML/baml/reference/types/unions.md): Defining types that can hold multiple possible types in BAML - [Why Use BAML?](https://mintlify.wiki/BoundaryML/baml/why-baml.md): Learn why BAML is the best way to build reliable AI applications with structured outputs