tanuki.py简介
tanuki.py是一个用于轻松构建LLM驱动应用的Python库,它能让LLM应用随着使用变得更快更便宜。其主要特点包括:
- 易于集成 - 只需几秒钟即可将LLM增强功能添加到任何工作流程中
- 类型感知 - 确保LLM输出符合函数的类型约束,避免意外问题
- 对齐输出 - 通过简单的断言语句对齐patched函数的行为
- 降低成本和延迟 - 使用次数越多,成本可降低90%,延迟可降低80%
- 支持主流模型 - 支持OpenAI、Amazon Bedrock、Together AI等流行模型
- RAG支持 - 无缝获取embedding输出,用于下游RAG实现
快速入门
- 安装tanuki.py:
pip install tanuki.py
- 设置OpenAI API密钥:
export OPENAI_API_KEY=sk-...
- 创建一个简单的tanuki.py函数:
import tanuki
@tanuki.patch
def classify_sentiment(msg: str) -> Optional[Literal['Good', 'Bad']]:
"""Classifies a message from the user into Good, Bad or None."""
@tanuki.align
def align_classify_sentiment():
assert classify_sentiment("I love you") == 'Good'
assert classify_sentiment("I hate you") == 'Bad'
assert not classify_sentiment("People from Phoenix are called Phoenicians")
if __name__ == "__main__":
align_classify_sentiment()
print(classify_sentiment("I like you")) # Good
print(classify_sentiment("Apples might be red")) # None
学习资源
-
官方文档 - 详细介绍了tanuki.py的使用方法和概念。
-
示例代码 - 提供了多个使用tanuki.py的实际案例,包括:
- 客户请求重要性分类器
- 冒犯性语言分类功能
- 食品评论应用
- 生成符合数据库模式的数据
-
AWS Bedrock配置指南 - 如何配置和使用AWS Bedrock模型。
-
Together AI配置指南 - 如何配置和使用Together AI模型。
-
嵌入支持文档 - 介绍了如何使用tanuki.py的嵌入功能支持RAG实现。
-
简单的ToDo List应用示例 - 一个使用tanuki.py构建的简单ToDo List应用。
-
Discord社区 - 加入Discord社区,与其他开发者交流学习。
核心概念
-
类型化输出 tanuki.py支持类型化参数和输出,允许您声明patched函数可以返回的数据类型规则。这可以防止LLM的冗长或不一致输出。
-
测试驱动对齐 通过编写封装tanuki-patched函数预期行为的测试,您可以声明函数必须满足的契约。这使您能够验证期望、捕获行为细微差别并迭代开发。
-
扩展和微调 随着数据点数量的增加,tanuki.py会自动为每个patched函数蒸馏较小的模型,从而降低成本和延迟。
常见问题
tanuki.py的FAQ部分回答了许多常见问题,包括:
- tanuki.py与其他框架(如LangChain)的比较
- 如何处理幻觉和偏见
- 蒸馏如何影响性能
- tanuki.py不适合哪些场景
通过深入学习这些资源,您将能够充分利用tanuki.py来构建更快、更便宜、更可靠的LLM应用。随着使用次数的增加,您的应用将变得更加高效和经济。