baml: 它是什么,解决了什么问题以及为什么它正受到关注

baml: 它是什么,解决了什么问题以及为什么它正受到关注

它解决了什么问题

BAML 是一种提示词语言,旨在取代在应用程序代码中将提示词作为原始字符串(f-strings)进行管理的混乱过程。它将提示词工程转变为“模式工程”(schema engineering),允许开发者定义返回结构化数据的类型安全函数,从而使 AI 工作流和智能体更加可靠且易于维护。

它是如何工作的

BAML 将每个提示词视为具有定义输入参数和返回类型的函数。一个基于 Rust 的编译器将这些 BAML 定义转换为一个客户端(baml_client),可以通过 Python、TypeScript、Ruby 和 Go 等多种语言进行调用。它使用一种称为 SAP(schema-aligned parsing)的自定义算法,以确保即使是从不支持原生工具调用 API 的模型中也能获得可靠的结构化输出。

它是面向谁的

对于构建 AI 智能体和复杂 LLM 工作流的开发者,他们希望获得类型安全性、通过 IDE 集成实现更快的迭代速度,以及在无需重写应用程序逻辑的情况下在不同 LLM 提供商之间进行切换的能力。

亮点

  • 类型安全的结构化输出:返回定义好的类/类型,而不是原始文本。
  • 跨语言支持:在 BAML 中定义的提示词可以从 Python、TypeScript、Ruby 和 Go 中调用。
  • IDE 集成:为 VS Code 和 JetBrains 提供原生工具,用于快速提示词测试和可视化。
  • 模型无关:支持广泛的提供商(OpenAI、Anthropic、Gemini、Bedrock 等),并内置了重试策略和回退机制。
  • Schema-Aligned Parsing (SAP):能够从任何模型中实现可靠的工具调用和结构化数据提取。
  • 开源:Apache 2 许可证,设计上注重隐私,并使用 Rust 构建以保证性能。

Sources