BAML简介
BAML (Basically, A Made-up Language) 是一种专门为编写和测试LLM (大型语言模型) 函数而设计的领域特定语言。它允许开发者创建具有定义输入变量和特定输出类型(如类、枚举、联合、可选字符串等)的提示模板。BAML LLM函数可以轻松集成到Python、TypeScript等语言中,让开发者能够更专注于工程而非提示工程。
BAML的主要特性
- 多语言支持:可与Python和TypeScript等语言无缝集成
- 类型验证:比Pydantic或Zod更能抵御常见的LLM错误
- 广泛的模型支持:兼容Ollama、OpenAI、Anthropic等,甚至在Llama2等小型模型上也经过测试
- 流式输出:支持结构化部分输出的流式传输
- 实时提示预览:即使存在循环和条件语句,也能实时查看完整提示
- 测试支持:在playground中一键测试函数
- 弹性和故障转移功能:为LLM调用添加重试和冗余机制
- 可观察性平台:使用Boundary Studio可视化函数并一键重放生产请求
快速开始
-
安装BAML:
- Python:
pip install baml-py
- TypeScript:
npm install @boundaryml/baml
- Python:
-
下载VSCode扩展:在VSCode扩展市场搜索"BAML"或点击此处安装
-
将BAML添加到现有项目:
- TypeScript:
npx baml-cli init
- Python:
baml-cli init
- TypeScript:
-
或使用以下启动项目:
BAML工具链
- VSCode扩展:提供BAML文件语法高亮、实时提示预览和测试UI
- Boundary Studio:类型安全的可观察性平台和标注工具
学习资源
- 官方文档
- Discord社区:可以参与每日办公时间(太平洋时间上午9点至中午12点)
- PromptFiddle在线playground:尝试和分享BAML创作
- GitHub仓库:查看源代码和示例
BAML实际应用
多个项目已经在使用BAML,包括:
- Zenfetch:为书签提供ChatGPT功能
- Vetrec:AI驱动的兽医临床笔记
- MagnaPlay:游戏的生产级机器翻译
- Aer Compliance:AI驱动的合规任务
- Haven:使用AI自动化租户沟通
- Muckrock:FOIA请求跟踪和归档
BAML为开发者提供了一个强大而灵活的工具,用于创建和管理LLM函数。无论您是刚开始探索AI应用开发,还是寻求优化现有LLM工作流程,BAML都能为您提供所需的功能和工具。通过其直观的语法、强大的类型系统和丰富的工具链,BAML正在改变开发者与LLM交互的方式,使AI应用开发变得更加高效和可靠。